2010-01-06 8 views
2

gcc 및 gdb를 사용하여 디버그 정보로 응용 프로그램을 컴파일하려고합니다. 나는 다음과 같은 처리를 할 때, 디버그 (.dSYM) 파일이 제대로 생성됩니다gcc가 디버그 파일을 생성하지 않음

gcc -ggdb src/test.c -o build/test 

나는, 그러나,이 같은 컴파일 단계와 링크 단계로이 분할하는 경우 :

gcc -ggdb -c src/test.c -o build/test.o 
gcc -ggdb build/test.o -o dist/bin/test 

... .dSYM 파일이 전혀 생성되지 않으므로 gdb은 크래시가 발생하는 소스 코드 줄을 표시하지 않으므로 디버깅이 훨씬 어려워집니다. 내가 약간의 소스 파일을 가지고 있기 때문에 컴파일과 링크 모두를 하나의 파일에 모두 포함한다. gcc 호출은 불가능하다.

별도의 컴파일 및 링크 단계를 사용할 때 어떻게 gcc가 .dSYM 파일을 생성하도록 할 수 있습니까?

답변

2

컴파일 옵션에서 -g3을 지정하여 gcc가 디버그 심볼을 별도의 파일이 아닌 바이너리에 넣을 수도 있습니다. 그것이 당신이 필요로하는 것인지 확실하지 않습니다.

+0

질문 : -g3을 추가하여 모든 디버그 기호를 보관함에 넣으시겠습니까? 그것은 .dSYM의 디버그 기호와 같습니다. –

2

첫 번째 대답의 두 번째 설명을 this post에서 확인하십시오.

그것의 변덕. dSYM 파일을 생성하기 위해 수동으로 "dsymutil"프로그램을 실행할 수 있습니다.

관련 문제