在mac上使用gdb调试eclipse -执行MI命令失败:-exec-run



我有我的Eclipse Kepler和我的简单HelloWorld c程序,我想在那里学习如何调试c程序。当单击调试按钮时,我得到以下错误消息:

最终发射顺序错误执行MI命令失败:-exec-run来自调试器后端的错误消息:无法为进程id 359找到Mach任务端口:(os/kern)失败(0x5)。无法为进程id 359找到Mach任务端口:(os/kern) failure (0x5).

我找了一整天也没找到任何解决办法。我已经做了这篇文章中推荐的所有事情,Eclipse GDB MacOSX Mavericks仍然得到这个错误。

如果有人能帮我在Eclipse中设置调试器,那就太好了。

哦,我通过macports下载并安装了gdb-apple,我不得不在codesign命令中使用"-f"选项,因为没有它就无法工作。也许这些是重要的信息

继续使用gdb(而不是gdb-apple),只需执行以下步骤:

1-创建证书:

  • 启动Keychain Access应用程序(/Applications/Utilities/Keychain Access.app)
  • 打开菜单/钥匙串访问/证书助手/创建证书…
  • 选择名称(本例中为gdb-cert),设置"身份类型"为"自签名根",设置"证书类型"为"代码签名",并选择"Let me override defaults"。
  • 单击几次继续,直到您到达指定证书位置屏幕,然后将Keychain设置为System。
  • 使用证书的上下文菜单,选择"获取信息",打开信任项,将代码签名设置为"始终信任"。

2-您必须退出Keychain Access应用程序(名为"taskgated",从活动监视器),并再次打开它,以便使用证书。

3-将证书分配给gdb:

    $ codesign -s gdb-cert gdb

更多详细信息,请查看此链接:http://sourceware.org/gdb/wiki/BuildingOnDarwin

如果在对'gdb-cert'进行所有更改之前对'gdb'进行签名,则可能发生这种情况。然后你可以重新启动'taskgated',然后重新签署'gdb'可执行文件。

  1. ps -e | grep taskgated
  2. sudo kill -9 <pid of taskgateed & gt;
  3. codesign -f -s gdb-cert $(其中gdb)

这对我有用。

如果出现以下错误,不要忘记在命令前面添加sudo:

sudo codesign -s gdb-cert $(which gdb-apple)

codesign -s gdb-cert $(which gdb-apple)

error: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate: can't create output file: /opt/local/bin/gdb-apple.cstemp (Permission denied)
/opt/local/bin/gdb-apple: the codesign_allocate helper tool cannot be found or used

最新更新