从自制软件(通过$ brew install gdb
)安装 gdb 后,我按照这些说明授予 gdb 附加到进程的权限。
当我到达运行命令的步骤时:
$ codesign --entitlements gdb-entitlement.xml -fs gdb-cert $(which gdb)
我收到以下错误,退出代码为 1:
/usr/local/bin/gdb: errSecInternalComponent
我不知道出了什么问题,因此无法继续安装 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.cer
rm -f ~/Desktop/gdb-cert.cer
将“gdb-cert”证书从“系统”钥匙串拖回“登录”钥匙串(也许又回来了......?)编辑:显然没有必要,根据评论检查证书:
security find-certificate -c gdb-cert
-> 应该显示有关证书的一些详细信息,如果可以找到的话security find-certificate -p -c gdb-cert | openssl x509 -checkend 0
-> 应该说证书不会过期security dump-trust-settings -d
-> 应该显示此证书启用了代码签名信任设置(可能显示其他证书/权限)创建“entitlements.xml”文件:
复制以下文本并将其保存在当前目录中的“entitlements.xml”文件中。
签署调试器二进制文件
在终端中运行以下命令:
codesign --entitlements entitlements.xml -fs gdb-cert $(which gdb)
-> 与权利的协同设计codesign -vv $(which gdb)
-> 验证代码签名codesign -d --entitlements - $(which gdb)
-> 显示代码签名的详细信息刷新系统证书
重启机器