gdb在山狮上失败

gdb在山狮上失败,gdb,osx-mountain-lion,bfd,Gdb,Osx Mountain Lion,Bfd,我试图编译一个7.x版本的gdb,但没有任何运气。 我对可执行文件进行了代码签名(http://sourceware.org/gdb/wiki/BuildingOnDarwin) 以下版本中存在这些问题 7.5,7.4,git clone:启动gbd时,我的应用程序和不同系统库的未知加载命令0x2a(和其他命令)。例如,当尝试打印向量时,我总是得到: 找不到“main(int,char**)”的帧基 7.3(macports和来自gdb网站):启动应用程序时,它无法设置断点并继续运行 (gdb)

我试图编译一个7.x版本的gdb,但没有任何运气。 我对可执行文件进行了代码签名(http://sourceware.org/gdb/wiki/BuildingOnDarwin)

以下版本中存在这些问题

7.5,7.4,git clone:启动gbd时,我的应用程序和不同系统库的未知加载命令0x2a(和其他命令)。例如,当尝试打印向量时,我总是得到: 找不到“main(int,char**)”的帧基

7.3(macports和来自gdb网站):启动应用程序时,它无法设置断点并继续运行

(gdb) start
Temporary breakpoint 1 at 0x100000950: file ../src/main.cpp, line 15.
Starting program: [...]
BFD: unable to read unknown load command 0x24
BFD: unable to read unknown load command 0x2a
BFD: unable to read unknown load command 0x26
Error in re-setting breakpoint 1: Cannot access memory at address 0x100000950
[application continues]
我使用系统llvm gcc、gcc4.7和svn-gcc4.8进行编译。
有人成功地在Mountain Lion上安装了gdb吗?

我在Mountain Lion上安装了gdb 7.5,没有问题

  • 这些步骤可能会帮助您:./configure--prefix=/usr/local --启用targets=x86_64-apple-darwin10--enable-64-bit-bfd--disable-werror--build=x86_64-apple-darwin10--host=x86_64-apple-darwin10--target=x86_64-apple-darwin10

  • 然后进行安装gdb

  • 创建您自己的证书,如此处所述,并在gdb上签名

  • 您必须明确声明:codesign-s gdb cert/usr/local/gdb 在签署gdb之前,请确保您已经设置了证书 信任。在签署您的gdb之前,还要关闭密钥链


  • 希望这也适用于你的

    它似乎不适用于我。。。与默认自制设置相同的问题

    v1:src zeph$ brew install gdb
    ==> Downloading http://ftpmirror.gnu.org/gdb/gdb-7.5.tar.bz2
    Already downloaded: /Library/Caches/Homebrew/gdb-7.5.tar.bz2
    ==> ./configure --prefix=/usr/local/Cellar/gdb/7.5 --with-python=/usr --with-system-readline --enable-targets=x86_64-apple-darwin10 --enable-64-bit-bfd --disable-werror --build=x86_64-apple-darwin10 --hos
    ==> make
    ==> make install
    ==> Caveats
    gdb requires special privileges to access Mach ports.
    You will need to codesign the binary. For instructions, see:
    
      http://sourceware.org/gdb/wiki/BuildingOnDarwin
    ==> Summary
    /usr/local/Cellar/gdb/7.5: 62 files, 9.3M, built in 119 seconds
    v1:src zeph$ codesign -s gdb-cert /usr/local/Cellar/gdb/7.5/bin/gdb 
    v1:src zeph$ /usr/local/Cellar/gdb/7.5/bin/gdb --args /Users/zeph/tmp/CouchBase/src/install/bin/memcached -d -u root -P /tmp/0libmemcached_memc.pid -t 1 -p 11221 -U 11221 -m 128
    GNU gdb (GDB) 7.5
    Copyright (C) 2012 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-apple-darwin10".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>...
    BFD: /Users/zeph/tmp/CouchBase/src/install/bin/memcached: unknown load command 0x29
    BFD: /Users/zeph/tmp/CouchBase/src/install/bin/memcached: unknown load command 0x29
    Reading symbols from /Users/zeph/tmp/CouchBase/src/install/bin/memcached...done.
    (gdb) run
    Starting program: /Users/zeph/tmp/CouchBase/src/install/bin/memcached -d -u root -P /tmp/0libmemcached_memc.pid -t 1 -p 11221 -U 11221 -m 128
    Unable to find Mach task port for process-id 28755: (os/kern) failure (0x5).
     (please check gdb is codesigned - see taskgated(8))
    (gdb) 
    
    v1:src zeph$brew安装gdb
    ==>下载http://ftpmirror.gnu.org/gdb/gdb-7.5.tar.bz2
    已下载:/Library/Caches/Homebrew/gdb-7.5.tar.bz2
    ==>。/configure--prefix=/usr/local/ceral/gdb/7.5--with python=/usr--with system readline--enable targets=x86_64-apple-darwin10--enable-64-bit-bfd--disable werror--build=x86_64-apple-darwin10--hos
    ==>制造
    ==>进行安装
    ==>注意事项
    gdb需要特殊权限才能访问Mach端口。
    您需要对二进制文件进行代码设计。有关说明,请参阅:
    http://sourceware.org/gdb/wiki/BuildingOnDarwin
    ==>摘要
    /usr/local/Cell/gdb/7.5:62个文件,9.3M,119秒完成
    v1:src zeph$codesign-s gdb cert/usr/local/Cellar/gdb/7.5/bin/gdb
    v1:src zeph$/usr/local/cillar/gdb/7.5/bin/gdb--args/Users/zeph/tmp/CouchBase/src/install/bin/memcached-d-u root-P/tmp/0libmemcached_memc.pid-t1-P 11221-u 11221-m 128
    GNU gdb(gdb)7.5
    版权所有(C)2012免费软件基金会。
    许可证GPLv3+:GNU GPL版本3或更高版本
    这是自由软件:您可以自由更改和重新发布它。
    在法律允许的范围内,不存在任何担保。键入“显示复制”
    和“显示保修”了解详细信息。
    此GDB配置为“x86_64-apple-darwin10”。
    有关错误报告说明,请参阅:
    ...
    BFD:/Users/zeph/tmp/CouchBase/src/install/bin/memcached:unknown load命令0x29
    BFD:/Users/zeph/tmp/CouchBase/src/install/bin/memcached:unknown load命令0x29
    从/Users/zeph/tmp/CouchBase/src/install/bin/memcached读取符号…完成。
    (gdb)运行
    启动程序:/Users/zeph/tmp/CouchBase/src/install/bin/memcached-d-u root-P/tmp/0libmemcached\u memc.pid-t1-P 11221-u 11221-m 128
    找不到进程id 28755:(os/kern)故障(0x5)的Mach任务端口。
    (请检查gdb是否进行了代码签名-请参阅taskgated(8))
    (gdb)
    
    k、 在全面信任证书之后,我不得不重新签名


    代码设计-fs gdb cert/usr/local/Cell/gdb/7.5/bin/gdb

    我通过以下尝试的步骤解决了此问题:

    台阶

  • sudo chgrp procmod/usr/local/bin/gdb
  • sudo chmod g+s/usr/local/bin/gdb
  • 编辑/System/Library/LaunchDaemons/com.apple.taskgated.plist并向taskgated进程添加+p参数
  • 强制终止taskgated进程(它将重新启动)
  • 再试一次
  • 其他链接:


  • OP的问题中有两个问题。关于签署可执行文件或修改taskgated和使用setgid procmod的问题已经讨论过。第二个问题是关于未知加载命令的警告。我也遇到了这个问题,经过一系列搜索,发现了以下修补程序,可以修复它:


    为什么不使用Xcode附带的gdb版本呢?Xcode的gdb是6.3.x版本,非常旧。我想使用GDB7.x的stl容器的漂亮打印功能。你试过lldb吗?这在打印STL容器方面更好吗?lldb非常适合这个任务,但不幸的是,我想将gdb与只支持gdb的eclipse IDE一起使用。我在Lion上遇到了同样的问题。值得注意的是,可执行文件
    /usr/bin/gdb
    根本没有签名(通过
    codesign-d/usr/bin/gdb
    检查),相反,当使用/usr/bin/gdb调试任何东西时,会出现一个弹出窗口,请求调试权限。也许gdb7.5也应该像这样请求许可。谢谢,这对我来说非常适合。我想我错过了在签署你的gdb步骤之前关闭钥匙链的步骤。这并没有解决我的问题。make check仍然失败,未知加载命令错误仍然存在。我的编译器可能有问题。不幸的是,这对我也不起作用。我一直正确地执行步骤2-4,但没有成功,我认为步骤1可能会解决问题,但遗憾的是,它不起作用。在Mountain Lion上提到了上面的“BFD:无法读取未知加载命令”内容作为gdb问题。在Mavericks上的GCC 4.9和gdb 7.7.1中,这也不适用于我。在完成这四个步骤之后,我可以设置断点来执行相关的GDB函数,但我不能查询变量的值。GDB总是报告它找不到某些函数的帧基。如果我使用Eclipse而不是终端,那么当我想要检查变量的值时,Eclipse会抱怨它
    无法执行mi命令