【问题标题】:Mac C++/Mars eclipse gdb debug hangs at Launching Test 96%Mac C++/Mars eclipse gdb 调试在启动测试 96% 时挂起
【发布时间】:2016-10-25 06:31:15
【问题描述】:

当我尝试在 Mac El Capitan (10.11.5) 上的 Eclipse Mars (4.5.2) 中调试一个简单的 c++ 程序时,它挂在“启动测试 (96%)”上。

我用自制软件安装了 gdb。当我在终端中输入“which gdb”时,它会显示“/usr/local/bin/gdb”。

这里是问题和我的 GDB 设置的屏幕截图:http://imgur.com/a/JrMjN

这与Mac C++/Mars eclipse gdb debug launching stuck at 96% 的问题相同,但从未在那里解决。

【问题讨论】:

    标签: c++ eclipse macos debugging


    【解决方案1】:

    您必须签署 gdb 以受信任才能控制另一个进程的执行。这是 ElCapitan 中存在的安全结构的一部分(自 Mavericks 以来一直如此)。

    您可以按照以下说明执行此操作(摘自博文http://ntraft.com/installing-gdb-on-os-x-mavericks/,其中包含有关该主题的更多信息)。


    认证 GDB

    打开 Keychain Access 应用程序 (/Applications/Utilities/Keychain Access.app)。通过菜单导航到 Keychain Access > Certificate Assistant > Create Certificate...

    输入证书的名称。对于这个操作方法,我将其称为“gdb-cert”。完全按照如下所示设置字段。

    最长有效期为 999 天。我真的不想再处理这个问题了,所以我要把它最大化。 /* 附录:这意味着你必须在 999 天后再次执行此操作,即 2.7 年。您可能希望将此页面添加为书签。 */

    继续点击“继续”按钮,直到系统要求您提供位置。将其设置为“系统”。如果您无法将其保存到系统钥匙串,则将其保存到登录钥匙串。您可以稍后导出证书,然后将其导入系统钥匙串。我不必这样做,如果您有任何问题,请发表评论。

    成功了!

    现在确保证书始终受信任。右键单击新证书并选择获取信息。在信任部分下,将代码签名设置为始终信任。

    现在我们有了一个证书,我们需要用它来签署 GDB。首先,我们将重新启动任务门控进程以确保它获取新证书。退出 Keychain Access(您必须退出 Keychain Access!)并返回终端执行这些最终命令。

    找到任务门控进程。

    $ ps -e | grep taskgated
    56822 ??         0:03.11 /usr/libexec/taskgated -s
    60944 ttys002    0:00.00 grep --color=auto taskgated
    

    上述输出中的第一个数字是 PID。使用它来终止进程(它会立即自行重启)。

    $ sudo kill -9 56822
    

    现在您终于可以对 GDB 进行代码签名了。

    # If installed through MacPorts
    $ codesign -s gdb-cert $(which gdb-apple)
    # If installed through Homebrew
    $ codesign -s gdb-cert $(which gdb)
    # For the settings posted by OP
    $ codesign -s gdb-cert /usr/local/Cellar/gdb/7.11/bin/gdb
    

    现在你应该准备好了! OS X 钥匙串可能会在您第一次尝试调试程序时询问您的密码,但它应该可以工作!

    /* 附录:为了让我能够拥有完整的功能,我必须重新启动机器。 */

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 2011-09-15
      • 1970-01-01
      • 2011-03-26
      • 2015-07-06
      • 1970-01-01
      相关资源
      最近更新 更多