首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >MacOS 安装 gdb 踩过的坑

MacOS 安装 gdb 踩过的坑

作者头像
Angel_Kitty
发布2019-05-06 17:41:57
发布2019-05-06 17:41:57
2.8K0
举报

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

解决方案

1、安装 gdb

代码语言:javascript
复制
$ brew install gdb
$ gdb --version
GNU gdb (GDB) 8.2.1

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

代码语言:javascript
复制
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 表示签名若已存在就覆盖
  3. 添加 ~/.gdbinit 文件 $ echo "set startup-with-shell off" >> ~/.gdbinit
  4. 最后会出现如下错误 $ 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,用如下代码替换:

代码语言:javascript
复制
$ brew uninstall gdb
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c3128a5c335bd2fa75ffba9d721e9910134e4644/Formula/gdb.rb

测试成功如下:

参考文献

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019-04-21 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 解决方案
  • 参考文献
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档