2010-01-06 70 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將把所有的調試符號放在bin中?這將與.dSYM的調試符號相同? – 2013-08-21 12:50:29

2

查看this post中第一個答案的第二條評論。

它的一個怪癖。也許你可以手動運行「dsymutil」程序來生成dSYM文件。