gdb on macOS

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

内容简介:最近在 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

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

查看所有标签

猜你喜欢:

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

构建可扩展的Web站点

构建可扩展的Web站点

Cal Henderson / 徐宁 / 电子工业出版社 / 2008 / 58.00元

随着Web 2.0网站的蓬勃发展,如何成功地构建可扩展的Web站点成为网站开发人员必备的技能。本书是Flickr.com的主力开发人员讲解构建可扩展的Web站点的经典之作。本书主要介绍了Web应用程序的概念、体系结构、硬件需求、开发环境的原则及国际化、本地化和Unicode等基本内容,并为解决Web应用程序的数据安全、电子邮件整合、远程服务交互、应用程序优化、扩展、监测和预警、开放API等问题提供......一起来看看 《构建可扩展的Web站点》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具