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

标签 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。

最佳答案

but the gdb displayed "no source file named read" that is ridiculous!

一点都不严谨:您很可能没有有一个名为read 的源文件。您所拥有的可能称为 read.ccread.cpp,因此请尝试 break read.cc:15

关于c++ - gdb 没有通过指令 -l 显示正确的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16617903/

相关文章:

c - 查看gdb中的寄存器在流程c之后没有改变

c - 使用 gdb 进入内核源代码

c++ - OpenCV 和最新的 PS3 Eye 驱动程序

c++ - 在 Cmake 中使用 Cuda 对象链接

c++ - C++ 中动态分配内存的初始值

c++ - VC++创建线程的方法

debugging - 使用 GDB 进行 Crystal 调试

c++ - 无法在Mac OS X上的Visual Code中调试C++

c - 为什么我的机器在此代码中将堆栈指针减少 20?

c++ - 如何在两个对象之间干净地传递 std::map ?