mac成功安装GDB记录

mac成功安装GDB记录

我的系统:macOS Catalina 10.15.6

一、安装gdb

​ 我一开始使用brew命令安装,但始终没有成功,最后转而直接下载安装包进行了安装,下载地址。下载10.2版本,完了之后打开压缩包,输入如下命令:

ocean@MacBookPro gdb-10.2$ ./configure   # 配置
ocean@MacBookPro gdb-10.2$ make -j4	     # 编译
ocean@MacBookPro gdb-10.2$ make install  # 安装
ocean@MacBookPro gdb-10.2$ gdb -v        # 查看安装版本
ocean@MacBookPro test$ gcc a.c -g        # 写一个测试代码a.c进行测试
ocean@MacBookPro test$ gdb a.out         # 进入gdb
(gdb)run  # 获得报错,看看是否报错与下面的报错类似,如果不是,那么这一步就可能有问题

​ 一开始下载的是8.0版本,但在未授权的状态下一直报错的是找不到相关文件,报错与其他为授权证书下的完全不同,即如果正常的话应该是如下报错。因此我又重新下载了一个版本,即10.2版本,最终获得了类似的如下报错,第一步完成。

ocean@MacBookPro test$ gdb -v    # 查看安装版本
GNU gdb (GDB) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
ocean@MacBookPro test$ gdb a.out # 随便找一个代码进行测试一下
GNU gdb (GDB) 10.2
Copyright (C) 2021 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin19.6.0".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<https://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from a.out...
(No debugging symbols found in a.out)
(gdb) run  # 输入run测试,获得如下报错
Starting program: /usr/local/bin/fabnacci
Unable to find Mach task port for process-id 23330: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))
二、获取证书

​ 获取证书这块流程为,这里主要参考的是mac安装gdb详细教程

1. 打开钥匙串访问,左上角进入:钥匙串访问 -> 证书助理 -> 创建证书;
2. 创建证书。①名称自定义:如gdb_codesigned;②身份类型:自签名根证书;③证书类型:代码签名;④勾选覆盖默认值;
3. 直接下一步,经过的有标题为:证书信息->秘钥对信息->秘钥使用扩展->已扩展的秘钥使用扩展->基本约束扩展->主题备用名称扩展;
4. 直到黑色标题为“用于指定该证书的位置”,将钥匙串:系统;
5. 成功了,双击证书打开,勾选使用“始终信任”。

在这里插入图片描述

如果创建失败,即如第二幅图所示,则进行如下操作:
1. 将前三个步骤再来一遍,直到第四步;
2. 将钥匙串:登录(之前选的是“系统”);
3. 点击页面中的登录,将刚刚创建的证书从这里拖到系统里如,如下图所示;

在这里插入图片描述

三、授权给GDB

​ 首先说明一下,这里步骤可能有冗余,但是最终是成功了,所以每个人可以根据情况调整。下面可以先不用关闭SIP等操作试试(SIP是macOS的一个保护机制,默认打开的,对其进行关闭和打开的步骤较为麻烦,需要两次重启,具体步骤),因为我看到有的教程需要,有的不需要,但是我当时是在关闭SIP后操作的,所以我并不能验证打开SIP的情况下是不能成功的。要是有人成功的话可以评论区给大家指下路。

​ 关闭SIP,执行 codesign -fs gdb_codesigned /usr/local/bin/gdb 命令,给证书授权;执行 echo "set startup-with-shell off" >> ~/.gdbinit。要重启电脑 ,打开SIP,当时我到了这一步仍然有之前的报错,然后进行了如下操作:

  1. 创建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>
    </pre>
    
  2. 执行codesign --entitlements gdb-entitlement.xml -fs gdb_codesigned $(which gdb)

参考文章:

  1. 在Mac安装最新gdb的详细教程,含可能遇到的所有坑(网上最新教程)
  2. mac gdb安装
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值