c++ - 升级到我的操作系统后,我无法设置断点,也看不到 ddd/gdb 的流程

标签 c++ gdb

我刚刚从 Ubuntu 10.04 迁移到新版本的 11.04,当我尝试使用 ddd/gdb 进行调试时,我无法再设置断点,也无法在调试器执行我的程序时看到流程。

我收到错误消息说

  (gdb)b MyFile.cpp:27
  No line 27 in file "MyFile.cpp".

当我开始运行我的应用程序调用 r 时,我还可以看到以下看起来与我的问题相关的文本消息。调试器会捕获所有断言,但我无法在任何时候停止。

  (gdb) r
  BFD: /lib/x86_64-linux-gnu/libc.so.6: invalid relocation type 37
  BFD: BFD (GNU Binutils) 2.18.50.20080226 assertion fail elf64-x86-64.c:278
  BFD: /lib/x86_64-linux-gnu/libc.so.6: invalid relocation type 37
  BFD: BFD (GNU Binutils) 2.18.50.20080226 assertion fail elf64-x86-64.c:278

如果我想查看文件,调试器会和我一起打开文件,但我收到以下错误消息

 (gdb) list MyFile.cpp:27
 Line number 27 is out of range for "MyFile.cpp".

你能帮帮我吗? 我读了一些论坛,要求检查 info sourceinfo sources 的结果,这就是我所拥有的,但我不知道如何处理它。

 (gdb) list MyFile.cpp:27
 Line number 27 is out of range for "MyFile.cpp".
 (gdb) info source
 Current source file is /usr/local/include/boost/exception/exception.hpp
 Compilation directory is /home/emanueler/trunk/tools/myAppBinary
 Located in /usr/local/include/boost/exception/exception.hpp
 Contains 436 lines.
 Source language is c++.
 Compiled with unknown debugging format.
 Includes preprocessor macro info.

为什么显示“使用未知调试格式编译”。当我在编译器中提供 -g 选项时?

最佳答案

似乎所有编译相关的工具也都更新了,包括GCC。最好在这个新环境中重新编译整个应用程序,然后再尝试再次调试它。

您可以做一个简单的测试来检查您的工具链是否正常。编写一个小的hello world 应用程序,使用-g 编译它并尝试在cout 行上设置一个断点。

关于c++ - 升级到我的操作系统后,我无法设置断点,也看不到 ddd/gdb 的流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5911548/

相关文章:

linux - 如何仅使用 ptrace (linux, x86/x86_64) 获取 "backtrace"(如 gdb)

c++ - 如何在 Linux 中使用 PC 扬声器?

c++ - 要 float 的四元数分量(特征值)

c++ - noexcept operators ->() 和 operator*() 用于迭代器?

linux - 我如何防止 gdb 捕获 control-D?

c++ - 如果附加了 gdb,我该如何中断,但如果没有附加,我该如何继续?

c++ - 在自建android中包含C++共享库。启动 ndk-build 时出错

OS X 中的 C++ spawn shell

c - 禁用 GDB 对 x86 异常的中断

assembly - 如何在gdb中调用程序集?