我有我的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'可执行文件。
- ps -e | grep taskgated
- sudo kill -9 <pid of taskgateed & gt;
- 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