5

我想用来gdb调试代码。当我写命令时:

gdb gdns_processor 

它将从以下位置输出警告消息gdb

<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/local/gdnscenter/bin/gdns_processor...
warning: the debug information found in "/usr/lib/debug//usr/local/gdnscenter/bin/gdns_processor.debug" does not match "/usr/local/gdnscenter/bin/gdns_processor" (CRC mismatch).
warning: the debug information found in "/usr/lib/debug/usr/local/gdnscenter/bin/gdns_processor.debug" does not match "/usr/local/gdnscenter/bin/gdns_processor" (CRC mismatch).

(no debugging symbols found)...done.

我不明白 CRC 不匹配。为什么gdb找不到符号?

PS:我的gcc选项设置了-g标志。

CPPFLAGS="-D_LIBC_REENTRANT $CPPFLAGS -g"
4

2 回答 2

5

我不明白 CRC 不匹配

要理解该消息,您需要阅读有关 GDB 使用“单独的调试文件”的信息,例如此处

我的 Gcc 选项设置了 -g。CPPFLAGS="-D_LIBC_REENTRANT $CPPFLAGS -g"

很可能你没有告诉我们整个故事。您的构建过程可能会生成gdns_processor二进制文件,以及它的gdns_processor.debug“单独的调试文件”。

然后,您将复制gdns_processor/usr/local/gdnsceter/bin/,但(显然)忽略复制gdns_processor.debug/usr/lib/debug/usr/local/gdnscenter/bin/

于 2012-10-17T05:41:20.420 回答
-1

考虑重新编译程序,您调试的程序可能与源代码不匹配。PS:如果你想要更详细的调试信息,你可以使用 -ggdb 选项。

于 2012-10-17T05:04:10.947 回答