与gcc链接时,为什么可执行文件可能缺少调试符号?

时间:2014-10-22 04:47:26

标签: macos debugging gcc gdb

为什么我的可执行文件缺少其调试符号?

我将源文件编译为目标文件:

g++ -g -O0 -c -std=c++11 -Wall -o build/foo.o src/foo.cpp

然后链接:

g++ -g -L{/path1,/path2,...} -l{bar,baz,qux,...} -framework GLUT -framework OpenGL build/foo.o -o bin/foo

如果我在dwarfdump上运行build/foo.o,我会看到一堆符号。但是dwarfdump bin/foo会返回:

----------------------------------------------------------------------
 File: bin/foo (x86_64)
----------------------------------------------------------------------
.debug_info contents:
< EMPTY >
当我运行gdb时,

No symbol table info available也会抱怨info locals

发生了什么事?为什么链接步骤似乎破坏了调试符号信息?

我正在运行gdb 7.7.1和gcc 4.8.3(均来自MacPorts)。

0 个答案:

没有答案