GDB不显示正确的源代码由指令-l

gdb do not show the right source code by the instruction -l

本文关键字:源代码 指令 显示 GDB      更新时间:2023-10-16

我在实习期间遇到了一个奇怪的问题。我的工作是在c++中使用VTK编码,我在OSX 10.8.3上工作。


当我想调试我的程序时,我运行gdb并使用指令"file"来加载我的程序,然后我使用"list"来显示源代码,并按行号设置断点。问题来了:这个奇怪的gdb显示了一个VTK头文件的源代码,我甚至没有包括在我的源代码中!


我的程序名是read我试图使用gdb read然后break read:15设置一个断点,但gdb显示"no source file named read",这是荒谬的!我注意到gdb在我的ubuntu 12.04中工作得很好,当我在linux的gdb中使用file read时,它只是显示

Reading symbols from /Users/apple/Dev/VTKRead/bin/bin/read...done.

但是在OSX 10.8.3的gdb中显示

Reading symbols for shared libraries ......... done
Reading symbols from /Users/apple/Dev/VTKRead/bin/bin/read...done.

我想这就是原因,我试图通过在macport中安装gcc4.8来改变编译器来解决问题,但cmake似乎只接受苹果的gcc。

但是GDB显示"没有命名为read的源文件",这是荒谬的!

这是一点也不荒谬:你很可能没有有一个叫做read的源文件。你有的可能叫做read.cc,或者read.cpp,所以试试break read.cc:15

这是我的错误:我没有将ccmake中的构建标记设置为"debug",因此编译器没有将信息写入文件