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%的问题相同,但它从未解决过.
您必须签署gdb才能被信任以控制另一个进程的执行.这是ElCapitan中存在的安全结构的一部分(自小牛队以来一直如此).
您可以按照以下说明执行此操作(摘自博客文章http://ntraft.com/installing-gdb-on-os-x-mavericks/,其中包含有关该主题的更多信息).
打开Keychain Access应用程序(/ Applications/Utilities/Keychain Access.app).通过菜单导航到Keychain Access> Certificate Assistant>创建证书...
输入证书的名称.对于这个方法,我将其称为"gdb-cert".完全按照下图所示设置字段.
最长有效期为999天.我真的不想再次处理这个问题了,所以我要最大限度地解决这个问题./*附录:这意味着您必须在999天内再次执行此操作,即2.7年.您可能想要为此页面添加书签.*/
继续单击"继续"按钮,直到系统要求您提供位置.将其设置为"系统".如果您无法将其保存到系统钥匙串,请将其保存到登录钥匙串.您可以稍后导出证书,然后将其导入系统密钥链.我不必这样做,所以如果你有任何问题请评论.
成功!
现在确保证书始终是可信的.右键单击新证书,然后选择"获取信息".在"信任"部分下,将"代码签名"设置为"始终信任".
现在我们有了证书,我们需要使用它来签署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可能会在您第一次尝试调试程序时询问您的密码,但它应该可以正常工作!
/*附录:为了能够拥有全部功能,我必须重新启动机器.*/