我在实习期间遇到了一个奇怪的问题。我的工作是使用 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。
最佳答案
but the gdb displayed "no source file named read" that is ridiculous!
这一点都不严谨:您很可能没有有一个名为read
的源文件。您所拥有的可能称为 read.cc
或 read.cpp
,因此请尝试 break read.cc:15
。
关于c++ - gdb 没有通过指令 -l 显示正确的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16617903/