在Mac上使用gdb在eclipse中调试 - 无法执行MI命令:-exec-run

时间:2014-03-25 16:30:52

标签: c eclipse macos debugging gdb

我有Eclipse Kepler和我的简单HelloWorld C程序,我想学习如何调试C程序。单击调试按钮时,出现以下错误消息:

最终发布序列出错 无法执行MI命令: -exec运行 调试器后端的错误消息: 无法找到进程ID 359:(os / kern)失败(0x5)的Mach任务端口。 无法为进程ID 359找到Mach任务端口:(os / kern)失败(0x5)。

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

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

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

3 个答案:

答案 0 :(得分:1)

如果您签署了' gdb'在对' gdb-cert'进行所有更改之前。然后你可以重新启动“taskgated”#39;然后重新签署' gdb'可执行文件。

  1. ps -e | grep taskgated
  2. sudo kill -9< pid of taskgated>
  3. codesign -f -s gdb-cert $(其中gdb)
  4. 这对我有用。

答案 1 :(得分:1)

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

1-创建证书:

  • 启动Keychain Access应用程序(/ Applications / Utilities / Keychain Access.app)
  • 打开菜单/钥匙串访问/证书助理/创建证书......
  • 选择一个名称(示例中为gdb-cert),将“身份类型”设置为“自签名根”,将“证书类型”设置为“代码签名”,然后选择“让我覆盖默认值”。
  • 在继续上单击几次,直到进入“为证书指定位置”屏幕,然后将“钥匙串”设置为“系统”。
  • 使用证书的上下文菜单,选择“获取信息”,打开“信任”项,然后将“代码签名”设置为“始终信任”。

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

3-将证书分配给gdb:

  • 使用以下命令:$ codesign -s gdb-cert gdb

有关详情,请查看以下链接: http://sourceware.org/gdb/wiki/BuildingOnDarwin

如果这些步骤中的任何一个不明确,请随时询问。

答案 2 :(得分:0)

如果您收到以下错误,请不要忘记在命令前添加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