gdb没有通过指令-l显示正确的源代码

时间:2013-05-17 21:04:38

标签: c++ gdb

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


当我想调试我的程序时,我运行gdb并使用指令“file”来加载我的程序,然后我使用“list”来显示源代码以按行号创建断点。这就是问题所在:这个怪异的gdb显示了VTK头文件的源代码,我甚至没有将其包含在我的源代码中!


我的程序名称已被阅读 我曾尝试使用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。

2 个答案:

答案 0 :(得分:1)

  

但是gdb显示“没有名为read的源文件”这太荒谬了!

根本不是:你很可能没有有一个名为read的源文件。你所拥有的可能是read.ccread.cpp,所以试试break read.cc:15

答案 1 :(得分:0)

这是我的错误:我没有在ccmake中将build标记设置为“debug”,因此编译器没有将信息写入文件。