解决Mac下check gdb is codesigned – see taskgated(8)问题
刚刚安装的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用户执行
文章来源:
Author:ancongcong
link:https://www.congcong.us/post/mac_check_gdb_is_codesigned_see_taskgated_8_problem.html