Mac C++/Mars eclipse gdb调试在启动测试中挂起96%

elv*_*ves 4 c++ eclipse debugging macos

当我尝试在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调试启动停留在96%的问题相同,但它从未解决过.

ram*_*728 8

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

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


认证GDB

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

创建证书菜单条目说明

输入证书的名称.对于这个方法,我将其称为"gdb-cert".完全按照下图所示设置字段.

创建证书步骤1

最长有效期为999天.我真的不想再次处理这个问题了,所以我要最大限度地解决这个问题./*附录:这意味着您必须在999天内再次执行此操作,即2.7年.您可能想要为此页面添加书签.*/

创建证书步骤2

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

创建证书步骤3

成功!

创建证书步骤4

现在确保证书始终是可信的.右键单击新证书,然后选择"获取信息".在"信任"部分下,将"代码签名"设置为"始终信任".

证书获取信息 始终信任代码签名

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

找到taskgated进程.

$ ps -e | grep taskgated
56822 ??         0:03.11 /usr/libexec/taskgated -s
60944 ttys002    0:00.00 grep --color=auto taskgated
Run Code Online (Sandbox Code Playgroud)

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

$ sudo kill -9 56822
Run Code Online (Sandbox Code Playgroud)

现在你终于可以编写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
Run Code Online (Sandbox Code Playgroud)

现在你应该全力以赴!OS X Keychain可能会在您第一次尝试调试程序时询问您的密码,但它应该可以正常工作!

/*附录:为了能够拥有全部功能,我必须重新启动机器.*/