cam*_*rcu 7 mac gdb code-signing macos-mojave
从自制软件(通过$ brew install gdb)安装 gdb 后,我按照这些说明授予 gdb 附加到进程的权限。
当我到达运行命令的步骤时:
$ codesign --entitlements gdb-entitlement.xml -fs gdb-cert $(which gdb)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误,退出代码为 1:
/usr/local/bin/gdb: errSecInternalComponent
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚出了什么问题,因此无法继续安装 gdb 的工作版本。有什么帮助吗?
额外信息:
Mac OS X 版本 10.14.4
GDB 8.3 版(通过自制软件)
将我的用户添加到_developer组中;没有帮助
尝试重新启动我的机器sudo killall taskgated但无济于事
尝试安装早期版本的 GDB (8.0.1),但得到相同的结果
我发现如果我在尝试完成gdb 签名说明之前首先按照这些说明创建证书,我能够让它工作。唯一的例外是我必须将证书保存在系统钥匙串中,而不是将其移回登录。
这是一组合并的步骤:
sudo security add-trust -d -r trustRoot -p basic -p codeSign -k /Library/Keychains/System.keychain ~/Desktop/gdb-cert.cerrm -f ~/Desktop/gdb-cert.cersecurity find-certificate -c gdb-cert -> 应该显示有关证书的一些详细信息,如果可以找到的话security find-certificate -p -c gdb-cert | openssl x509 -checkend 0 -> 应该说证书不会过期security dump-trust-settings -d -> 应该显示此证书启用了代码签名信任设置(可能会显示其他证书/权限)复制下面的文本并将其保存在当前目录中的“entitlements.xml”文件中。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.debugger</key>
<true/>
</dict>
</plist>
Run Code Online (Sandbox Code Playgroud)
在终端中运行以下命令:
codesign --entitlements entitlements.xml -fs gdb-cert $(which gdb) -> 具有权利的协同设计codesign -vv $(which gdb) -> 验证协同设计codesign -d --entitlements - $(which gdb) -> 显示代码签名的详细信息重启机器
| 归档时间: |
|
| 查看次数: |
5689 次 |
| 最近记录: |