C 无法在OSX中连接gdb-无法读取未知加载命令
我使用的是OSX10.8.2和GDB6.3。我必须同时使用xcode 4.6.1和xcode 3 我有一个简单的c可执行文件,我正试图通过命令行为其附加gdb。但我不能给出断点。一旦gdb被连接,我将得到以下几行C 无法在OSX中连接gdb-无法读取未知加载命令,c,xcode,macos,cocoa,gdb,C,Xcode,Macos,Cocoa,Gdb,我使用的是OSX10.8.2和GDB6.3。我必须同时使用xcode 4.6.1和xcode 3 我有一个简单的c可执行文件,我正试图通过命令行为其附加gdb。但我不能给出断点。一旦gdb被连接,我将得到以下几行 unable to read unknown load command 0x2b unable to read unknown load command 0x80000022 unable to read unknown load command 0x24 unable to read
unable to read unknown load command 0x2b
unable to read unknown load command 0x80000022
unable to read unknown load command 0x24
unable to read unknown load command 0x2a
我目不转睛地看了看,发现GDB6.3几乎没有发生上述情况的bug。所以我想把gdb升级到7.6。甚至这种情况也没有发生。
我安装GDB7.6的步骤
./congigure
make
make install
make以下面的行结束
make[8]: Nothing to be done for `all-am'.
make[1]: Nothing to be done for `all-target'.
make[11]: Nothing to be done for `install-data-am'.
make[1]: Nothing to be done for `install-target'.
使用下面的行进行安装
make[8]: Nothing to be done for `all-am'.
make[1]: Nothing to be done for `all-target'.
make[11]: Nothing to be done for `install-data-am'.
make[1]: Nothing to be done for `install-target'.
我想要xcode 3,4.6以及命令行支持的gdb。请帮助解决此问题。我可以通过make命令输出了解到,您的程序已编译且未更改。因此,您必须将代码清理干净,然后再试一次。确保您正在使用gcc的
-g
参数编译代码,以将C的符号表链接到可执行文件,以便为gdb提供调试所需的参数。所以,您必须查看makefile。它们只是警告,您可以忽略它们。您正在使用的gdb二进制文件没有包含这些加载命令的定义(LC\u DYLD\u INFO\u ONLY
,LC\u VERSION\u minu\u MACOSX
,等等,请参见/usr/include/mach-o/loader.h
),它在解析包含它们的mach-o二进制文件时会抱怨这些命令。Xcode 4.6中包含的gdb将在没有警告的情况下处理这些问题,fwiw。安装MacPorts并键入sudo port安装gdb
@trojanfoe-我在MacPorts gdb下也遇到过这种情况。不,实际上我无法使用断点进行调试。我认为这是因为这些警告“它们只是警告,你可以忽略它们…”-当调试器上出现segfault时,它们很难忽略:)无法读取未知加载命令0x24无法读取未知加载命令0x24无法读取未知加载命令0x29分段错误:11
。