我想使用gcc和gdb编译带有调试信息的应用程序。当我执行以下操作时,将正确生成调试(.dSYM
)文件:
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
个文件?
答案 0 :(得分:2)
您还可以在编译选项中指定-g3,以便gcc将调试符号放入二进制文件中,而不是放在单独的文件中。不确定这是否是你所需要的。
答案 1 :(得分:2)
检查this post中第一个答案的第二条评论。
这是一个怪癖。也许您可以手动运行“dsymutil”程序来生成dSYM文件。