在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)失败(0x5)。

我搜索了一整天,没有找到任何解决方案。 我已经在Eclipse GDB MacOSX Mavericks这篇文章中做了所有推荐的事情,但仍然会出现此错误。

如果有人可以帮助我在Eclipse中设置调试器,那真的很棒。

哦,我通过macports下载并安装了gdb-apple,我不得不使用“-f”选项和codesign命令,因为它没有用。 也许这些是重要信息。

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

1-创建证书:

  • 启动Keychain Access应用程序(/ Applications / Utilities / Keychain Access.app)
  • 打开菜单/钥匙串访问/证书助理/创建证书…
  • 选择一个名称(示例中为gdb-cert),将Identity Type设置为“Self Signed Root”,将Certificate Type设置为“Code Signing”并选择“Let me override defaults”。
  • 在“继续”上单击几次,直到进入“为证书指定位置”屏幕,然后将“密钥链”设置为“系统”。
  • 使用证书的上下文菜单,选择“获取信息”,打开“信任”项,然后将“代码签名”设置为“始终信任”。

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
  3. codesign -f -s gdb-cert $(哪个gdb)

这对我有用。

如果你得到以下错误,请不要忘记在sudo前添加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