在 macOS Sierra 10.12.5 上安装并使用 gdb

用 Homebrew 安装 gdb

$ brew install gdb

然而安装成功后还是无法使用 gdb,会有如下报错:

Unable to find Mach task port for process-id 18191: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

mac 的安全机制阻止了 gdb 对程序进行完全的控制,我们要用 钥匙串访问 (Keychain Access) 修改其权限。

创建证书

在 macOS Sierra 10.12.5 上安装并使用 gdb_第1张图片
选择创建证书
在 macOS Sierra 10.12.5 上安装并使用 gdb_第2张图片
如图填入同样的信息
在 macOS Sierra 10.12.5 上安装并使用 gdb_第3张图片
设置有效期

其他的都保持默认设置,点继续,直到:

在 macOS Sierra 10.12.5 上安装并使用 gdb_第4张图片
改为 System
在 macOS Sierra 10.12.5 上安装并使用 gdb_第5张图片
创建好了

还要修改使其始终信任。

在 macOS Sierra 10.12.5 上安装并使用 gdb_第6张图片
点击 Get info
在 macOS Sierra 10.12.5 上安装并使用 gdb_第7张图片
点击 Trust 展开,点击 Always Trust

在命令行中输入

$ codesign -f -s  "gdb_cert" /usr/local/bin/gdb

最后重启电脑,gdb 就可以使用了,还可以 brew install cgdb,这里不用再安装证书什么的,可以使用 cgdb,效果对比:

在 macOS Sierra 10.12.5 上安装并使用 gdb_第8张图片
左 gdb 右cgdb

你可能感兴趣的:(在 macOS Sierra 10.12.5 上安装并使用 gdb)