【问题标题】:debugging in eclipse using gdb on mac - Failed to execute MI command: -exec-run在 mac 上使用 gdb 在 eclipse 中调试 - 无法执行 MI 命令:-exec-run
【发布时间】:2016-11-21 17:41:05
【问题描述】:

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

最终启动顺序错误 执行 MI 命令失败: -执行运行 来自调试器后端的错误消息: 找不到进程 ID 359 的 Mach 任务端口:(os/kern) 失败 (0x5)。 找不到进程 ID 359 的 Mach 任务端口:(os/kern) 失败 (0x5)。

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

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

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

【问题讨论】:

    标签: c eclipse macos debugging gdb


    【解决方案1】:

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

    1- 创建证书:

    • 启动钥匙串访问应用程序(/Applications/Utilities/Keychain Access.app)
    • 打开菜单/钥匙串访问/证书助手/创建证书...
    • 选择一个名称(示例中为 gdb-cert),将身份类型设置为“自签名根”,将证书类型设置为“代码签名”并选择“让我覆盖默认值”。
    • 点击 Continue 几次,直到出现 Specify a Location For The Certificate 屏幕,然后将 Keychain 设置为 System。
    • 使用证书的上下文菜单,选择“获取信息”,打开“信任”项,并将代码签名设置为“始终信任”。

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

    3- 将证书分配给 gdb:

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

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

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

    【讨论】:

    • 在 OS X Yosemite 上为我工作。谢谢!
    【解决方案2】:

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

    1. ps -e | grep 任务门控
    2. sudo kill -9 <taskgated 的 pid>
    3. codesign -f -s gdb-cert $(which gdb)

    这对我有用。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2013-01-04
        • 2015-04-06
        • 1970-01-01
        • 2013-12-10
        • 1970-01-01
        • 1970-01-01
        • 2012-11-20
        • 1970-01-01
        • 2013-01-05
        相关资源
        最近更新 更多