Mac系统安装GDB以及遇到问题的解决方案解决
参考自:https://sourceware.org/gdb/wiki/PermissionsDarwin
安装过程
1.首先,使用brew search gdb搜索是否已经安装gdb,如果没有,则按照如下步骤进行安装
2.其次执行brew install gdb进行安装(默认是最新版本)
3.安装完毕后使用gdb-v查看是否安装成功:
若安装成功,显示如下图:

使用过程中遇到的问题:
1.在运行时(run)发生错误
-
错误描述:
Unable to find Mach task port for process-id 20050: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8)) -
错误出现原因:
此处错误的原因是Mac系统不允许一个未授权的进程随意访问其它进程,GDB作为一种调试工具,显而易见需要访问所调试程序的进程,因此此处会报错。 -
解决方法:创建信任证书,步骤如下:
1.搜索Mac中钥匙串访问,左上角进入创建证书
2.创建证书,名称随意,身份类型选择自签名,勾选覆盖,一直点击继续直到下一个步骤

3.选择系统并创建

4.创建成功,在我的证书中找到自己创建的双击并点击信任选择始终信任

5.这样一个证书就创建成功,接下来对gdb进行证书认证
codesign -fs random(即你刚刚创建的证书名称) /usr/local/bin/gdb(此处为你电脑中gdb的位置,可以使用命令which gdb获取)
echo "set startup-with-shell off" >> ~/.gdbinit6.认证成功后重新启动即可以使用gdb进行代码调试
补充.如果经过上述步骤后任出现上述问题或者出现创建new Thread然后线程卡死的情况,则在步骤4后按照以下步骤进行操作
首先,创建一个文件 gdb-entitlement.xml 该文件包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.debugger</key>
<true/>
</dict>
</plist>
其次,对证书进行重新认证,在终端执行以下命令
sudo codesign --entitlements gdb-entitlement.xml -fs gdb-cert $(which gdb)
codesign -vv $(which gdb)
codesign -d --entitlements :- $(which gdb)
最后,重新启动即可有任何问题欢迎留言指正

浙公网安备 33010602011771号