解决os x下gdb不能调试的问题

简介:

    在较新的os x中使用gdb调试程序会发生 Unable to find Mach task port 之类的错误,这是由于新的os x内核禁止未授权的程序随意控制其他进程,如果不用root权限的话,我们还可以使用程序签名的方式来解决这个问题。(谁又想老是以root权限调试普通程序呢?偷笑)

    依次进入 应用程序->实用工具,打开钥匙串访问:


    选择菜单 钥匙串访问->证书助理->创建证书,第一个步骤如下设置:


    然后一直next,最后一个设置如下设置:


    最后回到钥匙串访问程序主界面,鼠标右键选中刚才新建的证书,选择显示简介,然后展开 信任 项,在代码签名处勾选 总是信任。


在控制台进入gdb程序目录,输入:codesign -s gdb-cert gdb ,好了打完收工,注意要重启mac后,签名设置才能生效哦。

    在windows下侵淫多年的童鞋都喜欢使用带有GUI的debugger来调试,在unix like系统中也有图形调试器,比如著名的codelite和codeblocks都自带调试器。不过作为大名鼎鼎的gdb最贴合前端的图形调试器DDD也是非同小可,它和gdb结合甚密,功能也十分强大,推荐大家使用。


    最后要注意一点,如果大家在os x下使用sudo ddd调试程序后,会发现ddd会长时间处于“发呆” 状,无法调试程序,状态栏总显示 :Waiting until gdb ready 之类的信息,这时不要慌张,直接 rm -rf ~/.ddd文件夹即可。

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
1月前
|
NoSQL 搜索推荐 openCL
【C/C++ 调试 GDB指南 】gdb调试基本操作
【C/C++ 调试 GDB指南 】gdb调试基本操作
55 2
|
3月前
|
NoSQL Linux 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(下)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
3月前
|
NoSQL 小程序 C语言
GDB调试学习(四):段错误
GDB调试学习(四):段错误
38 0
|
3月前
|
NoSQL
GDB调试学习(三):观察点
GDB调试学习(三):观察点
36 0
|
3月前
|
NoSQL
GDB调试学习(二):断点
GDB调试学习(二):断点
37 0
|
4月前
|
NoSQL Linux 程序员
Linux | 调试器GDB的详细教程【纯命令行调试】-1
Linux | 调试器GDB的详细教程【纯命令行调试】
269 0
|
1月前
|
NoSQL 算法 Shell
【C/C++ 调试 GDB指南 】详解 gdb 断点的设置方式
【C/C++ 调试 GDB指南 】详解 gdb 断点的设置方式
19 2
|
3月前
|
NoSQL Unix 开发工具
【深入解析git和gdb:版本控制与调试利器的终极指南】(上)
【深入解析git和gdb:版本控制与调试利器的终极指南】
|
3月前
|
NoSQL Linux
Linux系统中调试GDB调试方法入门分享
Linux系统中调试GDB调试方法入门分享
78 0
|
3月前
|
NoSQL Unix 编译器
GDB调试无行号,报dwarf error问题解决
GDB调试无行号,报dwarf error问题解决
42 0