如何在mac os中安装gdb及为gdb进行代码签名
1. 安装gdb
GDB作为一个强大的c/c++调试工具,一直是程序猿们的良好伴侣,但转到Mac os才发现竟然没有默认安装,所幸还有强大的homebrew工具:
brew install homebrew/dupes/gdb
然后就是漫长的等待+编译安装时间了,安装完成后敲击gdb能打印出版本信息,说明已经正确安装了:

如果现在就使用gdb进行程序调试的话会发现,根本行不通:

2. 生成证书
这是由于Mac os的安全机制阻止了我们的gdb对要调试的程序进行完全控制,对此我们要对gdb赋予合适的权限,首先我们要在keychain access里面添加相应的keychain (钥匙串):

然后在下面的输入框中输入证书的名字及类型等:

指定有效期:

一路"continue",知道出现为我们的证书选择位置(Specify a Location for the Certificate)的时候注意:这里选"system"(如果这里无法选择system,选login也是可以的,只不过再生成相应证书后需要手动导出证书,然后再手工把gdb-cert导入到System中去):

好了,“create”之后我们的证书就生成成功啦d

接下来,我们选择"always trust"我们刚生成的证书,这样就不用每次在运行gdb的时候手工输入管理员密码了:

3. 对gdb进行证书签名
完成上述步骤以后就可以退出keychain access了,但仅仅这样还是不够的,要对gdb进行签名,我们还需要杀死一个特殊的进程:

打开activity monitor, 在cpu一栏的搜索框中输入‘taskgated’,然后双击进程所在行,点选‘quit’,这是你会发现taskgated进程消失了(好无辜的一个进程:( )。现在就可以对gdb进行签名了:
codesign -s gdb-cert /usr/local/bin/gdb
其中‘/usr/local/bin/gdb’是gdb在我的电脑中所在的位置(其实它是'/usr/local/Cellar/gdb/7.8.1/bin/gdb'的一个软链接),此命令正常执行无任何输出。
注:如果某天想要取消对gdb的证书签名,可以使用‘codesign --remove-signature /usr/local/bin/gdb’来完成,前提是你的gdb-cert签名还在哦。
好了现在可以使用gdb进行调试了么,且慢!
把taskgated进程再杀死一次先(是的,顽强的taskgated在后台刚刚重新启动又要被我们给杀死了:( )
至此,才算是功德圆满,赶紧用gdb试着运行下我们的程序吧:

4. 参考链接:
https://sourceware.org/gdb/wiki/BuildingOnDarwin
http://ntraft.com/installing-gdb-on-os-x-mavericks/
如何在mac os中安装gdb及为gdb进行代码签名的更多相关文章
- 如何在Mac OS中安装 wget
首先从Apple Store下载Xcode,然后安装Xcode,接着安装Homebrew包管理,类似于Ubuntu下的apt-get: 终端下输入ruby -e "$(curl -fsSL ...
- 在mac os 中安装 autoconf and automake
转载地址:http://www.mattvsworld.com/blog/2010/02/install-the-latest-autoconf-and-automake-on-mac-os-10-6 ...
- Mac OS 中安装 autoconf 和 automake
在Mac上面编译FFmpeg需要安装很多东西,首先是:autoconf 和 automake 请按照以下顺序安装: curl -O http://mirrors.kernel.org/gnu/m4/m ...
- 【转】如何在Mac系统中安装R的rattle包
[转自知乎]:https://www.zhihu.com/question/28944497 1. 安装 xquartz (http://xquartz.macosforge.org)2. 安装 GT ...
- mac os 中安装memcahed
1.先安装macport sudo port selfupdate #更新当前Marport (如果port 不可以时可以考虑此操作) sudo prot -d selfupdate #替换更 ...
- Mac OS 中 安装配置软件
1. (2014.1.22) 配置Apache + PHP + MySQL: http://dancewithnet.com/2010/05/09/run-apache-php-mysql-in-ma ...
- wget Mac OS 下安装
wget是一个从网络上自动下载文件的自由工具,支持通过HTTP.HTTPS.FTP三个最常见的TCP/IP协议下载,并可以使用HTTP代理. 下面介绍如何在Mac OS 下安装Wget 下载最新版的 ...
- mac os中的一些快捷键使用及基础软件安装
mac os中terminal标签页的切换 Command+Shift+{} { 切换到左边的标签页 } 切换到右边的标签页 普通键盘对应于mac下的按键: CTRL->CONTROL WIN ...
- 让 ASP.NET vNext 在 Mac OS 中飞呀飞。。。
写在前面 阅读目录: 娓娓道来 Install ASP.NET vNext Command Line Tools 安装 Homebrew 使用 Homebrew,安装 KVM Install Subl ...
随机推荐
- springmvc中@PathVariable和@RequestParam的区别
顾名思义, @PathVariable和@RequestParam,分别是从路径里面去获取变量,也就是把路径当做变量,后者是从请求里面获取参数. 我的url; http://localhost:808 ...
- 学习Git
参考廖雪峰老师的个人网站:http://www.liaoxuefeng.com 版本库初始化 通过git init命令将这个命令变为git可以管理的仓库 添加文件 用命令git add file告诉G ...
- Revit利用对正工具快速修改风管对齐方式
绘制风管的时候,可以对风管的对正方式进行设置,水平方向可以设置左对齐或者中心对齐或者右对齐,垂直方向可以设置为顶对齐或者中心对齐或者低对齐,如果需要对原来的对齐方式进行修改的时候应该如何操作呢?比如, ...
- Weblogic Session复制策略与方式
在Weblogic中,HttpSession Replication的方式是通过在weblogic.xml中的session- descriptor的定义persistent-store-type来实 ...
- 数据导入读取read.table函数详解,如何读取不规则的数据(fill=T)
函数 read.table 是读取矩形格子状数据最为便利的方式.因为实际可能遇到的情况比较多,所以预设了一些函数.这些函数调用了 read.table 但改变了它的一些默认参数. 注意,read.ta ...
- BZOJ 2648: SJY摆棋子 kdtree
2648: SJY摆棋子 题目连接: http://www.lydsy.com/JudgeOnline/problem.php?id=2648 Description 这天,SJY显得无聊.在家自己玩 ...
- Chapter 5. Graph Theory:: Fundamentals:: Intermediate
10457 - Magic Car 题意一开始看起来有点费解,其实最后就是要起点到终点的路径上最大边与最小边之差越小越好.这样我们可以先将边排个序,然后枚举路径上的最小边,之后依次将比它大的边按升序的 ...
- fresco Bitmap too large to be uploaded into a texture
fresco加载图片方法 布局文件引入 xmlns:fresco="http://schemas.android.com/apk/res-auto" <com.faceboo ...
- HTTP - GET和POST的区别
网上有很多文章介绍这两种HTTP请求的区别,我也不懂,主要还是看了一些文章,在这里写下一些笔记. 语义不同 在HTTP协议中,最初规定GET是用来查询或者获取资料,只读,POST用于修改数据,可写.因 ...
- 解决mint17-linux里chrome一搞就弹出“登陆密钥环”的框框
摘自:https://sites.google.com/site/easylinuxtipsproject/tips#TOC-Make-the-keyring-password-on-your-com ...