刚刚安装的GDB调试的时候会报
Starting program: /Users/wangxinguo/C/DataStruct/3/a.out
Unable to find Mach task port for process-id 5222: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))
这是因为没有特殊授权的情况下不允许gdb调试任何程序,所以可以按照如下过程解决
增加自签名证书信任
1、找到”钥匙串访问“
- 通过Launchpad中的搜索搜到
- /Applications/Utilities/Keychain Access.app 直接打开
2、创建自签名证书
- 左上角苹果图标旁边的菜单,钥匙串访问->证书助理->创建证书…
- 创建第一项:名称:gdb_codesign、身份类型:自签名根证书、证书类型:代码签名,勾选覆盖这些默认值,继续
- 创建第二项:序号默认、天数:可以多设,继续
- 创建第三项:个人信息正常填就行,继续
- 创建第四项:密钥对信息,默认即可,继续
- 创建第五项:密钥使用扩展,默认即可,继续
- 创建第六项:已扩展使用的证书,默认即可,继续
- 创建第七项:基本约束扩展,默认即可,继续
- 创建第八项:主题备用名称扩展,默认即可,继续
- 创建第九项:证书位置,选择系统,创建
3、选择信任
右键显示简介,选择信任
4、授予证书,重启
给gdb授予了系统信任的代码签名证书。
codesign -s gdb_codesign `which gdb`
重启taskgated服务或者重启系统
sudo killall taskgated
sudo执行gdb
另一种方案是直接root用户执行