MacOS 安装 gdb 踩过的坑

简介: MacOS 安装 gdb 踩过的坑
+关注继续查看

今天在 OS X EI Capitan 10.11.6 中安装 gdb 的时候,出了一堆状况,写下此文以便以后能够时刻提醒自己。

解决方案

1、安装 gdb

$ brew install gdb
$ gdb --version
GNU gdb (GDB) 8.2.1

2、我们尝试运行 gdb 时,报如下错误:

Unable to find Mach task port for process-id 28885: (os/kern) failure (0x5).
(please check gdb is codesigned - see taskgated(8))

3、创建证书

执行菜单 钥匙串访问->证书助理->创建证书

填写信息

  • 证书名称:gdb-cert
  • 身份类型:自签名根证书
  • 证书类型:代码签名
  • 勾选:让我覆盖这些默认值

然后一直点击继续,直到指定证书位置的步骤,选择钥匙串保存的位置是系统

点击创建,输入系统密码,创建完成。(极有可能创建失败,这时可以选择钥匙串保存位置为登录,然后导出证书,再然后把证书导入到系统)

打开证书简介界面,点击信任->代码签名,将其改为始终信任

  1. 重启系统刷新系统证书和代码签名数据
  2. 给 gdb 签名
$ sudo killall taskgated
$ codesign -fs gdb-cert "$(which gdb)"    # -f 表示签名若已存在就覆盖
  1. 添加 ~/.gdbinit 文件
$ echo "set startup-with-shell off" >> ~/.gdbinit
  1. 最后会出现如下错误
$ sudo gdb test.out
(gdb) r
Starting program: /Users/apple/Desktop/code/test.out
[New Thread 0x1103 of process 843]
[New Thread 0xe03 of process 843]
During startup program terminated with signal SIGTRAP, Trace/breakpoint trap.

4、这个时候我们只需要更换 gdb v8.1 到 gdb v8.0.1,用如下代码替换:

$ brew uninstall gdb
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c3128a5c335bd2fa75ffba9d721e9910134e4644/Formula/gdb.rb

测试成功如下:

5cbbd6c5a5234.png


相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
11天前
|
安全 Linux Go
本地内核调试环境搭建,就这么简单!
本地内核调试环境搭建,就这么简单!
|
11天前
|
NoSQL Linux C++
【Linux】调试工具gdb(2)
【Linux】调试工具gdb(2)
19 0
|
11天前
|
NoSQL Linux 编译器
【Linux】调试工具gdb(1)
【Linux】调试工具gdb(1)
22 0
|
2月前
|
NoSQL Linux 编译器
【Linux取经路】基础开发工具——gdb篇
【Linux取经路】基础开发工具——gdb篇
34 0
|
3月前
|
存储 IDE 编译器
Windows 驱动开发环境搭建及 windbg 调试工具安装使用
对于 Windows 驱动开发,在微软官方的文档中其实有很多有用的文档来进行讲解和学习,这里将驱动开发统一归类成了 Windows 硬件开发([https://learn.microsoft.com/zh-cn/windows-hardware/drivers/](https://learn.microsoft.com/zh-cn/windows-hardware/drivers/)),在这个链接的相关文档中能够找到我们所需要的所有内容(由于Windows的不开源,所以我们对于Windows相关的学习要全部依赖官方释放的资料)。
|
3月前
|
NoSQL Linux 开发工具
Linux开发工具【gdb】
Linux开发工具gdb,基本操作和常用指令详细讲解,干货满满!
56 0
Linux开发工具【gdb】
|
4月前
|
NoSQL Linux 网络安全
【Linux C】GCC编译 && GDB调试 从入门到放弃 (gcc调试选项详解、gdb调试、条件断点、远程调试、脚本化调试)(二)
阅读本文可能需要一些基础,比如:C语言基础、Linux基础操作、vim、防火墙等。篇幅有限,本文讲的“比较浅显”。 通过本文你将学会: gcc编译 gdb调试
|
4月前
|
NoSQL IDE Linux
【Linux C】GCC编译 && GDB调试 从入门到放弃 (gcc调试选项详解、gdb调试、条件断点、远程调试、脚本化调试)(一)
阅读本文可能需要一些基础,比如:C语言基础、Linux基础操作、vim、防火墙等。篇幅有限,本文讲的“比较浅显”。 通过本文你将学会: gcc编译 gdb调试
|
6月前
|
NoSQL Linux 编译器
【Linux】调试工具gdb的使用
【Linux】调试工具gdb的使用
|
7月前
|
NoSQL Linux 编译器
Linux工具学习之【gdb】
vim 可以编写代码,gcc/g++ 可以编译代码,此时只最后一件神器,就能进行完整的开发工作,那就是通过 gdb 调试代码,毕竟谁都不敢保证自己的代码没有问题,所以就有调试器这种东西帮助我们定位问题,进而解决问题
99 0
Linux工具学习之【gdb】
相关产品
云迁移中心
推荐文章
更多