我在实习期间遇到了一个怪异的问题。我的工作是使用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。
答案 0 :(得分:1)
但是gdb显示“没有名为read的源文件”这太荒谬了!
根本不是:你很可能没有有一个名为read
的源文件。你所拥有的可能是read.cc
或read.cpp
,所以试试break read.cc:15
。
答案 1 :(得分:0)
这是我的错误:我没有在ccmake中将build标记设置为“debug”,因此编译器没有将信息写入文件。