4

我正在尝试使用 macports 中的 GDB(v 7.3.1)来调试使用 g++ 4.7(也来自 macports)编译的可执行文件。但是,我启动调试器,得到以下输出:

GNU gdb (GDB) 7.3.1 版权所有 (C) 2011 Free Software Foundation, Inc. 许可证 GPLv3+:GNU GPL 版本 3 或更高版本 http://gnu.org/licenses/gpl.html这是免费软件:您可以自由更改并重新分配它。在法律允许的范围内,不提供任何保证。键入“显示复制”和“显示保修”以了解详细信息。此 GDB 配置为“x86_64-apple-darwin11.2.0”。错误报告说明请参见: http ://www.gnu.org/software/gdb/bugs/ ... BFD:无法读取未知加载命令 0x24 BFD:无法读取未知加载命令 0x26 BFD:无法读取未知加载命令 0x24 BFD:无法读取未知加载命令 0x26

然后,每当我尝试回溯时,调试器都无法提供有关堆栈的任何信息;我得到如下输出:

> #0  0x00000001085106d5 in ?? ()
> #1  0x000000010833d9b6 in ?? ()
> #2  0x0000000107e23000 in ?? ()
> #3  0x00007f828341f630 in ?? ()
> #4  0x00007f828341bc10 in ?? ()
> #5  0x00007f8283421950 in ?? ()
> #6  0x00007f8283427020 in ?? ()
> #7  0x00007f8283425510 in ?? ()
> #8  0x00007f82834195e0 in ?? ()
> #9  0x0000000100000001 in ?? ()
> #10 0x0000000100000000 in ?? ()

我已经使用调试符号构建了,并且能够在 linux 上很好地调试可执行文件。有谁知道这里发生了什么或我如何解决它。没有调试器真的很难解决某些问题!

4

2 回答 2

1

我对 OSX 或 gdb 的使用了解不多,但这似乎在 gdb 7.3.1 发布后不久就已修复,我似乎记得有关 OSX 的发布和 gdb 或 binutils 的发布大约在同一时间,开发人员无法提前访问 OS X。您可以尝试更新版本的 gdb。

我猜想在 7.3.1 修复后不久提交的以下补丁:

http://permalink.gmane.org/gmane.comp.gnu.binutils/54607

于 2012-06-19T06:03:39.580 回答
0

GDB 7.4.1 已修复此问题,您可以获取并构建它。

http://sourceware.org/gdb/wiki/BuildingOnDarwin

于 2012-08-04T21:13:13.297 回答