2009-05-15 2 views
9

gcc를 사용하여 공유 라이브러리를 만들고 공유 라이브러리에서 메모리 누출이있을 수 있습니다. 디버깅하려면 공유 라이브러리를 만들 때 디버그 기호를 활성화해야합니다.gcc : 공유 라이브러리에서 디버그 기호 사용

빌드하려면 gcc -g ... [-g는 디버그 정보를 사용합니다] 그러나 라이브러리 [.so file] 크기는 -g 및 -g 둘 다 변경되지 않습니다. 게다가 VALGRIND와 같은 도구에서 유용한 정보를 얻지 못하고 있습니다.

누구든지 저에게 실수를 지적 할 수 있습니까?

+1

메이크 파일의 관련 부분이나 다른 CFLAGS를 게시 할 수 있습니까? –

+1

-g를 CFLAGS에 추가했는데 감사합니다. – Alphaneo

답변

16

소스 파일을 컴파일하고 링크하는 모든 단계에 "-g"를 사용해야합니다.

+0

또한 링크 할 때 -s를 지정하지 마십시오. 링크가 디버그 정보를 제거하기 때문입니다. – Manuel

+0

ld man 페이지 에서처럼 gnu 링커에는 -g 플래그가 실제로 필요하지 않습니다. "-g 무시 됨. 다른 도구와의 호환성을 위해 제공됩니다.". 컴파일 단계에서만 필요합니다. – aleixrocks

관련 문제