macOS High Sierra下无法使用gdb的解决办法

1,330 阅读1分钟

原因

主要是因为 gdb8.1 的问题和苹果系统的SIP机制,更换版本为8.0.1就可以解决问题

步骤

更换gdb

brew unlink gdb
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9ec9fb27a33698fc7636afce5c1c16787e9ce3f3/Formula/gdb.rb
brew pin gdb

证书签名

打开应用程序Keychain

Keychain Access > Certificate Assistant > Create Certificate...

Name:gdb-cert
Certificate Type: Code Signing

一路点击 continue 直到选择证书存储位置处

Keychain:System

在左侧的system中找到新创建的gdb-cert,右键点击选择Get Info

Trust > choose 'Always Trust'

打开命令行

killall taskgated
codesign -fs gdb-cert /usr/local/Cellar/gdb/8.0.1/bin/gdb #如果你是homebrew下载的,可以用这个路径

关闭系统SIP机制

重启计算机,按住 command+R 直到logo出现进入recovery mode

打开终端

csrutil enable --without debug

重启计算机,gdb应该会正常工作了。