2009-05-15 12 views
9

Tworzę wspólną bibliotekę przy użyciu gcc i podejrzewam, że mogą wystąpić pewne wycieki pamięci z udostępnianej biblioteki. Aby debugować, muszę włączyć symbole debugowania podczas tworzenia biblioteki współużytkowanej.gcc: Włączanie symboli debugowania w udostępnionej bibliotece

Do kompilacji używam gcc -g ... [-g służy do włączania informacji debugowania] Jednak rozmiar biblioteki [.so] nie zmienia się zarówno dla -g, jak i bez -g. Poza tym nie otrzymuję żadnych przydatnych informacji z narzędzi takich jak VALGRIND.

Czy ktoś może mi wskazać błąd?

+1

Czy umieścisz odpowiednie części pliku Makefile lub inne używane CFLAGS? –

+1

Dodałem -g do CFLAGS i działało, dzięki !!! – Alphaneo

Odpowiedz

16

Musisz użyć "-g" dla wszystkich kroków (kompilacja plików źródłowych i linkowanie).

+0

Upewnij się również, że nie podasz -s podczas łączenia, ponieważ powoduje to usunięcie informacji o debugowaniu. – Manuel

+0

Flaga -g nie jest tak naprawdę potrzebna dla łącznika do gnu, jak podaje strona podręcznika ld: "-g Zignorowane, Dostarczone dla kompatybilności z innymi narzędziami.". Jest wymagany tylko na etapie kompilacji. – aleixrocks

Powiązane problemy