在10.10下亲试的安装gdb和签名gdb以让它正常使用的步骤供参考。
我的步骤是:
1. 使用Homebrew安装gdb
2. 使用系统自带的codesign签名gdb
3. 验证gdb使用
-
使用Homebrew安装gdb
首先安装Homebrew,参考网址http://brew.sh/
操作步骤是在Terminal中执行
ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”Homebrew安装完成后,在Terminal中执行 brew install gdb 安装gdb,安装后目录可以通过which gdb查看:/usr/local/bin/gdb
-
使用系统自带的codesign签名gdb
在10.10下,gdb不签名的话是无法访问其他程序的,此时如果gdb 你的程序时,会报如下错误:
*Unable to find Mach task port for process-id 83686: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))*
此时需要对gdb进行签名。首先:制作一个签名:
打开签名软件:Applications/Utilities/Keychain Access.app 在菜单栏选择:
Keychain Access > Certificate Assistant > Create Certificate…开始制作:
然后一路点继续 在下面的页面选择system
完成页面如
记得一步:让证书always trust,右键生成的证书gdb-cert,然后get info
ok,证书生成了。
然后:开始签名:
先把keychain工具关闭退出(需要这一步),然后关闭taskgated进程ps?e|greptaskgated56822??0:03.11/usr/libexec/taskgated?s sudo kill -9 56822
签名的命令为(如果是替换已签好的签名,则将-s 替换成 -fs)
codesign -s gdb-cert $(which gdb)
好了,签名成功,开始gdb了。
- 验证gdb使用
在生成aaa的程序的makefile中加入-g编译源文件,生成aaa
在生成的程序目录下执行:gdb ./aaa,然后就可以使用b p bt等gdb指令了。