gdb on macOS

栏目: C · 发布时间: 7年前

内容简介:最近在 mac 上使用 gdb 调试程序的时候,突然发现 gdb 不能很好的运行。下面是我遇到的一些坑。1.使用 Homebrew 安装2.禁止 gdb 更新。

最近在 mac 上使用 gdb 调试程序的时候,突然发现 gdb 不能很好的运行。下面是我遇到的一些坑。

环境

  • macOS High Sierra 10.13.6
  • Homebrew 1.7.5

安装 gdb

1.使用 Homebrew 安装 gdb 8.0.1

brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9ec9fb27a33698fc7636afce5c1c16787e9ce3f3/Formula/gdb.rb

2.禁止 gdb 更新。

brew pin gdb

3.如果未禁用 SIP,请运行下面命令。

echo  "set startup-with-shell off"  >>〜/ .gdbinit

注意:最新的 gdb 版本为 8.1,但是 gdb 8.1 似乎并不支持 macOS 10.13,因此需要安装 gdb 8.0.1。下面是运行 gdb 8.1 会遇到的错误:

During startup program terminated with signal SIGTRAP, Trace/breakpoint trap.

签名

不进行签名,gdb 运行 run 命令时会出现以下错误。

(gdb) break main
Breakpoint 1 at 0x100000f56: file inform.c, line 4.
(gdb) run
Starting program: inform
Unable to find Mach task port for process-id 8442: (os/kern) failure (0x5).
 (please check gdb is codesigned - see taskgated(8))

1.打开系统工具 Keychain Access

open /Applications/Utilities/Keychain\ Access.app

2.创建证书

gdb on macOS

3.输入证书名、身份类型、证书类型,并勾选默认覆盖。

gdb on macOS

4.一直确认完成创建。

5.将 Login 中刚刚创建的证书导出。

gdb on macOS

6.将导出的证书导入到 System 中。

gdb on macOS

7.信任证书,选择 “Always Trust”。

gdb on macOS

8.将证书授予 gdb。

sudo codesign $(which gdb) -s gdb-cert

9.验证 gdb,没有输出即授权成功。

codesign -v $(which gdb)

至此,gdb 就可以正常使用了。

注意

1.将 Login 和 System 的 All Iterms 中所有相关的项目都删除然后再重试。

2.杀死 taskgated 程序。

ps -e | grep taskgated
sudo kill -9 xxx

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

解密SEO

解密SEO

欧朝晖 / 电子工业出版社 / 2007-05-01 / 49.80元

《解密SEO:搜索引擎优化与网站成功战略》帮助读者建立搜索营销的概念,分析搜索营销中的几种形式的手段,并从认识搜索引擎的原理开始,导出搜索引擎优化的具体解释,向读者引入以搜索引擎优化为宗旨的网站建设的新观念和设计理念。对网站结构优化、单页优化、链接优化等技术进行了详细的解说和示范。读者还可以接触到网站养育的新概念,帮助读者网站发展成熟,达到网络营销的目标。对搜索引擎优化中观念上和技术上常犯的错误,......一起来看看 《解密SEO》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具