这些说明适用于OSX High Sierra,并避免以root用户身份运行gdb(真是糟糕!)。我最近从OSX 10.13.2更新到了10.3.3。我认为这是gdb 8.0.1(安装了Homebrew)开始对我失败的时候。
我在别人的指示上遇到困难。经过不同的指示,一切都变得一团糟。所以我开始了新鲜。我或多或少遵循了这些指示。
清理烂摊子:
brew uninstall --force gdb # This deletes _all_ versions of gdb on the machine
- 在
Applications
->Utilities
->中Keychain Access
,我删除了所有以前的gdb证书和密钥(请确保您知道您在这里做什么!)。目前尚不清楚这是否必要,但是由于我想尝试使用其他说明来创建那些证书和密钥,所以无论如何我还是消除了它们。我在登录名和系统中都有密钥和证书。
现在重新安装gdb。
brew install gdb
- 在中
Keychain Access
,转到菜单Keychain Access
-> Certificate Assistant
->Create a Certificate
- 选中“让我覆盖默认设置”并进行设置
Name : gdb-cert
Identity Type: Self Signed Root
Certificate Type : Code Signing
[X] Let me override defaults
- 在“第一证书信息”页面上:
Serial Number : 1
Validity Period (days): 3650
在“第二证书信息”页面上,除已填写的字段外,所有字段均为空白。
在“密钥对信息”页面上,我保留了默认设置
Key Size : 2048
Algorithm : RSA
- 在“密钥用法扩展”页面上,我保留了默认设置。
[X] Include Key Usage Extension
[X] This extension is critical
Capabilities:
[X] Signature
- 在“扩展密钥用法扩展”页面上,我保留了默认设置。
[X] Include Extended Key Usage Extension
[X] This extension is critical
Capabilities:
[X] Code Signing
在“基本约束扩展页面”上,未选中任何内容(默认)。
在“使用者备用名称扩展名”页面上,我保留了默认选项,并且未添加其他任何内容。
[X] Include Subject Alternate Name Extension
- 在“指定证书的位置”页面上,设置
Keychain: System
我单击创建,并提示输入密码。
回到Keychain Access
应用程序中,我转到System
并右键单击gdb-cert
下拉菜单下的Trust
,将所有字段更改为Always Trust
。
重新启动计算机。
在航站楼,我跑了 codesign -s gdb-cert /usr/local/bin/gdb
。出现提示时,我输入了密码。
在航站楼,我跑了 echo "set startup-with-shell off" >> ~/.gdbinit
我先运行gdb myprogram
,然后start
在gdb控制台中运行。我相信这里会提示我输入密码。此后,所有后续运行均未提示输入密码。