GDB不能与-D_FILE_OFFSET_BITS = 64一起使用

时间:2010-01-24 14:52:19

标签: c++ gdb

我正在Snow Leopard上编译一个i386 C ++应用程序。

当我使用-D_FILE_OFFSET_BITS = 64进行编译时,我不能将二进制文件与gdb一起使用。我收到以下错误消息:

警告:找不到对象文件“/var/folders/kw/kwmH332LGwCIh3GrRREgCk+++TI/-Tmp-//ccZfMAM5.o” - 没有可用于“test.cpp”的调试信息。

1 个答案:

答案 0 :(得分:4)

这可能与-D_FILE_OFFSET_BITS=64毫无关系。

在Mac OS上编译时,调试信息不​​会被拉入可执行文件,但会保留在目标文件中,调试器会在那里查找。

从您的警告消息中,您显示:

g++ -D_FILE_OFFSET_BITS=64 -g test.cpp

这将创建一个临时目标文件(名称为ccZfMAM5.o),将该目标文件链接到可执行文件中,然后删除目标文件。由于调试器无法从不再存在的目标文件中读取调试信息,因此会收到警告。

相反,这样做:

g++ -g -c -D_FILE_OFFSET_BITS=64 test.cpp
g++ -g test.o

这将使test.o目标文件(及其中包含的调试信息)可供调试器使用。