MAC OSX系统Eclipse使用gdb编译程序时的报错处理

简介: MAC OSX系统Eclipse使用gdb编译程序时,由于权限问题的报错处理方法
一 ,报错类型


1,写好测试程序时,使用Eclipse进行编译测试,无法通过,卡在了含有以下报错信息的窗口
Error in final launch sequence
Failed to execute MI command:
-exec-run
Error message from debugger back end:

Unable to find Mach task port for process-id 1380: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))
Unable to find Mach task port for process-id 1380: (os/kern) failure (0x5).\n (please check gdb is codesigned - see taskgated(8))


2,改在命令行下使用普通用户账号进行编译测试时,报出如下错误,切换到root根用户时,编译正常通过。
(gdb) run
Starting program: /Users/eastyang/hello
Unable to find Mach task port for process-id 525: (os/kern) failure (0x5).

(please check gdb is codesigned - see taskgated(8))
(gdb) 


二,报错分析


系统出于安全的考虑,在没有授权的情况下不允许gdb调试任何程序,因为gdb调试可以掌握了进程的控制权。
如果改为root用户就没有这个问题。


三,解决方法

解决方法就是给gdb授予系统完全信任的代码签名权利,创建方法如下:


1,启动“钥匙串访问”应用(/Applications/Utilities/Keychain Access.app)


2,创建证书:打开菜单:钥匙串访问-》证书助理-》创建证书


3,按图中输入和修改以下信息,
输入证书名称,名称可以自己起,该处为 linuxcc-gdb-cert;
选择证书类型:代码签名;
勾选:让我覆盖这些默认签名
 


4,一路继续,出现以下窗口时,选择 系统。
 


5,点击创建,输入系统管理员密码 ,这样证书就创建完成了,然后需要修改证书属性,
找到刚才新建的证书,右键证书选择【显示简价】,打开证书属性窗口,点击【信任】,
在 【使用此证书时】的下拉列表中 选择【始终信任】,然后在弹出的输入管理员密码窗口中,
输入正确的密码,修改完成
 


 


6,把创建和修改好的(代码签名证书)按如下命令赋给 gdb调试程序,然后重启电脑生效。
eastyang$ which gdb
/usr/local/bin/gdb
eastyang$ codesign -s linuxcc-gdb-cert /usr/local/bin/gdb

本文来自 www.linuxcc.org 论坛,转载请注明出处
相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
目录
相关文章
|
4月前
|
NoSQL Linux C语言
嵌入式GDB调试Linux C程序或交叉编译(开发板)
【8月更文挑战第24天】本文档介绍了如何在嵌入式环境下使用GDB调试Linux C程序及进行交叉编译。调试步骤包括:编译程序时加入`-g`选项以生成调试信息;启动GDB并加载程序;设置断点;运行程序至断点;单步执行代码;查看变量值;继续执行或退出GDB。对于交叉编译,需安装对应架构的交叉编译工具链,配置编译环境,使用工具链编译程序,并将程序传输到开发板进行调试。过程中可能遇到工具链不匹配等问题,需针对性解决。
105 3
|
4月前
|
TensorFlow 算法框架/工具 Python
【Mac 系统】解决VSCode用Conda成功安装TensorFlow但程序报错显示红色波浪线Unable to import ‘tensorflow‘ pylint(import-error)
本文解决在Mac系统上使用VSCode时遇到的TensorFlow无法导入问题,原因是Python解析器未正确设置为Conda环境下的版本。通过在VSCode左下角选择正确的Python解析器,即可解决import TensorFlow时报错和显示红色波浪线的问题。
161 9
|
4月前
|
NoSQL
技术分享:如何使用GDB调试不带调试信息的可执行程序
【8月更文挑战第27天】在软件开发和调试过程中,我们有时会遇到需要调试没有调试信息的可执行程序的情况。这可能是由于程序在编译时没有加入调试信息,或者调试信息被剥离了。然而,即使面对这样的挑战,GDB(GNU Debugger)仍然提供了一些方法和技术来帮助我们进行调试。以下将详细介绍如何使用GDB调试不带调试信息的可执行程序。
108 0
|
4月前
|
网络安全 数据安全/隐私保护 iOS开发
【Mac os】如何在服务器上启动Jupyter notebook并在本地浏览器Web端环境编辑程序
本文介绍了如何在服务器上启动Jupyter Notebook并通过SSH隧道在本地浏览器中访问和编辑程序的详细步骤,包括服务器端Jupyter的启动命令、本地终端的SSH隧道建立方法以及在浏览器中访问Jupyter Notebook的流程。
176 0
|
7月前
|
Web App开发 缓存 iOS开发
强制退出Mac程序的六种方法
强制退出Mac程序的六种方法
116 2
|
6月前
|
NoSQL Linux C++
Linux C/C++ gdb调试正在运行的程序
Linux C/C++ gdb调试正在运行的程序
|
7月前
|
数据库管理
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
Mac检出svn checkout报错 svn: E200030: SQLite 编译为 3.39.5,但是运行于 3.39.4
303 0
|
7月前
|
Kubernetes NoSQL Java
ChaosBlade常见问题之在mac下编译报checksum mismatch的错误如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
|
7月前
Mac系统下Qt程序图标设置方法
Mac系统下Qt程序图标设置方法
108 0
|
7月前
|
Java 关系型数据库 BI
基于Java Swing 开发的网吧管理系统【eclipse和idea两个版本运行源码】
基于Java Swing 开发的网吧管理系统【eclipse和idea两个版本运行源码】
126 0

推荐镜像

更多