我刚刚从 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 source
和 info 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/