Mac里配置Eclipse + GDB 解决Mac下GDB提示签名错误

eclipse调试C++代码报错: Could not determine GDB version using command: gdb --version $ gdb GNU gdb (GDB) 7.11.1 Copyright (C) 2016 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO 阅读详情


http://my.oschina.net/caohong/blog/296648?p={{totalPage}}

在Eclipse里调试c程序, 出现: "Error while launching command: gdb -version"。需要让Eclipse知道Eclipse具体在什么地方,配置方法是: "Debug configuration"-->"Debugger"-->"GDB debugger"里的"gdb"改成gdb的绝对路径:"/usr/local/bin/gdb"

但配置之后仍然会有错误:

?
1
2
3
4
Unable to  find  Mach task port  for  process- id  83686: (os /kern ) failure (0x5).
  (please check  gdb  is codesigned - see taskgated(8))
Unable to  find  Mach task port  for  process- id  83686: (os /kern ) failure (0x5).
  (please check  gdb  is codesigned - see taskgated(8))

原因是在Mac系统(10.9)里默认不允许GNU gdb访问其他进程,需要对gdb进行签名:

?
1
2
3
➜  ~   which  gdb
/usr/local/bin/gdb
-->  ~  codesign -s  gdb -cert  /usr/local/bin/gdb

签名的命令是`codesign`,gdb-cert是自己制作的证书,后面跟上被签名的进程: `/usr/local/bin/gdb`

下面是签名的方法,参考资料来自:<BuildingOnDarwin><Installing GDB on OS X Mavericks>

钥匙串访问-->证书助理-->创建证书,在“证书助理”创建名字为gdb-cert的证书:

一路`继续`,中间有个选项要选择:

最终生成:

生成之后,用`codesign`注册,重启taskgated进程即可

?
1
2
3
4
➜  ~   ps  -e |  grep  taskgated
    69 ??         2:06.20  /usr/libexec/taskgated  -s
84711 ttys002    0:00.00  grep  --color=auto taskgated
-->  ~   sudo  kill  -9 69


安装GDB

新的Mac下有gcc、g++,但是没有gdb

有人说安装XCode就有,但是我真没有

通过Homebrew安装,没有的执行安装brew命令

ruby -e "$(curl -fsSLk https://raw.github.com/Homebrew/homebrew/go/install)"

然后安装gdb

brew install https://raw.github.com/Homebrew/homebrew-dupes/master/gdb.rb

或者

brew install homebrew/dupes/gdb

我用的后者。

签名问题

安装好gdb,写个hello gdb!

// hello.cpp

#include <iostream>


using namespace std;


int main( int argc, char **argv)

{

    cout << "Hello gdb!" << endl;

    return 0;

}

编译链接

>g++ -g -o hello hello.cpp

启动调试

>gdb hello


>run

Starting program: /Users/username/ws/hello 

Unable to find Mach task port for process-id 358: (os/kern) failure (0x5).

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

提示以上gdb签名错误。

原因

Darwin kernel出于安全考虑,在没有特殊授权的情况下不允许gdb调试任何程序,因为可以调试就掌握了进程的控制权。不过如果是root用户就没有这个问题,不过谁愿意用root来调试程序呢。

解决

一个常用的解决方法就是给gdb授予系统完全信任的代码签名权利,以对其他进程。

首先,需要创建一个系统代码签名信任证书:

  1. 启动“钥匙串访问”应用(/Applications/Utilities/Keychain Access.app)
  2. 打开菜单:钥匙串访问-》证书助理-》创建证书...
  3. 输入证书名称,如:gdb-cert;
  4. 选择身份类型:自签名根证书 (Identity Type to Self Signed Root)
  5. 选择证书类型:代码签名 (Certificate Type to Code Signing)
  6. 勾选:让我覆盖这些默认签名 (select the Let me override defaults)
  7. 一路继续,直到选择存放证书地址,选择:系统
  8. 这样证书就创建好了,还要设置证书自定义信任
  9. 右键刚才创建的 gdb-cert 证书,选择“显示简介” (Get Info)
  10. 点击“信任”,会显示可以自定义的信任选项
  11. “代码签名”选择“总是信任” (Code Signing to Always Trust)

其次,将证书授予gdb,执行命令

>codesign -s gdb-cert /path to gdb

注意,需要先退出“钥匙串访问”应用,或者重启下系统

查看/path to gdb,执行命令

>which gdb

好了,以上就给gdb授予了系统信任的代码签名证书,可以正常使用gdb了


Windows运行S32DS的Debug时报错:Error while launching command: arm-none-eabi-gdb --version S32DS运行报错解决方案 阅读详情

相关推荐

AI辅助调试效率提升67%:从SSL证书错误看开发工作流变革

在软件开发中,调试是定位和修复错误的核心环节,其本质是从系统异常现象中逆向追踪至根本原因的技术活动。传统调试依赖开发者经验、日志分析和信息检索,常面临信息过载与试错成本高的问题。随着AI编程助手的普及,调试范式正从“人工排查”转向“人机协同”。AI能快速解析错误(如SSL证书验证失败)、生成排查步骤与操作命令(如keytool导入证书),将开发者从碎片化信息筛选中解放,聚焦于方案决策与验证。这种融合显著提升了复杂问题(如第三方插件集成、环境配置)的解决效率,尤其适用于证书管理、依赖冲突等常见工程场景,推动开

weixin_30907935的博客 353

error with command: gdb --version (Eclipse调试失败)

开发小白,刚刚打开ARC GNU IDE 2020.03 Eclipse尝试debug官方例程就报错。 error with command: gdb --version 首先查找了一些资料, 如: Error while launching command: gdb --version-优快云论坛 Error with command: gdb --version - Stack Overflow 在Windows下安装编译GDB调试工具_ZeroZone零域的博客-优快云博客_windows g

Electrical_IT的博客 1万+

从零开始的 AI Infra 学习之路

AI Infra(AI 基础设施)是指为上层的 AI 算法应用提供支持的 AI 全栈底层技术,通过合理利用计算机体系结构,可以实现 AI 计算的加速和部署。AI Infra 主要包括以下内容:AI 训练框架 & 推理引擎;AI 编译 & 计算架构;AI 硬件 & 体系结构。参考资料:;。

AI Infra / LLM / 软件开发 3万+

cypress 出现 Error while launching command: gdb --version错误

cypress的DEMO出现Error while launching command: gdb --version错误,可以正常编译。主要查找:GCB Client Setup中的Executable,将其设置成属性中对应ARM交叉编译工具(arm-none-eabi)的GBD(arm-none-eabi-gdb.exe)。...

子曰小玖的博客 7429

在x86机器上运行jailhouse

jailhouse jaihouse提供了一个demo ,https://github.com/siemens/jailhouse-images可以用于编译一整套可用的demo。 适用于多个平台。编译过程主要参考https://blog.youkuaiyun.com/weixin_39541632/article/details/110422345 此demo可以生成多个平台所用的操作系统image。 ...

闲人的专栏 3004

HFSS初学笔记(二)——75Ω带状线设计

本文利用HFSS软件设计并优化了一条75Ω的带状线结构,通过调整几何参数和介质材料,实现了精确的阻抗控制。仿真结果显示,该带状线在高频信号传输中的表现优越,具有良好的S参数、低插入损耗和极小的信号反射损耗。

2401_87464239的博客 4537

Mac配置Eclipse CDT的Debug出现的问题

问题1:出现 Could not determine GDB version using command: gdb --version原因:mac上没有安装gdb或者gdb位置配置有问题解决方法:1 安装gdb,2 如果确定已经安装了gdb,需要配置Eclipse中Debuger的路径:项目右键-》Debug As-》Debug Configurations-》左侧C++ Application找...

琪花亿草 6236

告别Quartus II的漫长等待:用VSCode+iverilog+GTKWave搭建你的轻量级Verilog仿真环境(2024保姆级教程)

本文详细介绍了如何利用VSCode、iverilog和GTKWave构建高效的Verilog/SystemVerilog开发环境,替代传统的Quartus II和ModelSim工具。通过2024年最新的保姆级教程,帮助开发者实现秒级启动、低资源消耗的轻量级仿真环境,显著提升数字电路设计的开发效率和调试体验。

weixin_33690963的博客 559

Mac上配置C++ Eclipse 尤其是GDB错误

首先要下载安装Eclipse CDT https://eclipse.org/cdt/ 下面要安装gdb 原文在此 https://www.ics.uci.edu/~pattis/common/handouts/macmingweclipse/allexperimental/mac-gdb-install.html 摘出精要部分于此 Installing GDB b

天下任我行 4039

深入解析SDC时钟约束:从create_clock到set_clock_groups的实战指南

本文深入解析SDC时钟约束,从create_clock到set_clock_groups的实战应用,帮助数字芯片设计工程师掌握时序约束的核心技巧。通过详细讲解时钟三要素(波形定义、不确定性和时钟关系)及实战案例,提升时钟约束的精准性和效率,避免常见设计陷阱。

weixin_29274337的博客 1077

orin+96712接GMSL2相机调试经验

orin gmsl camera调试

乐于分享 4455

Mac里配置Eclipse + GDB

在Eclipse里调试c程序, 出现: "Error while launching command: gdb -version"。需要让Eclipse知道Eclipse具体在什么地方,配置方法是: "Debug configuration"-->"Debugger"-->"GDB debugger"里的"gdb"改成gdb的绝对路径:"/usr/local/bin/gdb" 但配置之后仍然会有

ULi_cloud的博客 1040

RH850从0搭建Autosar开发环境【7】- Davinci Configurator之CanTp模块配置详解(上)

RH850从0搭建Autosar开发环境【7】- Davinci Configurator之CanTp模块配置详解(上)

weixin_42412049的博客 2296

解决gdb在mac下面签名错误

Giving gdb permission to control other processes If you try to use your freshly built gdb, you will get an error message such as:   Starting program: /x/y/foo Unable to find Mach task port for pro

萌萌的It人 www.itmmd.com 5895

【反封禁策略】集成 Undetected-Chromedriver:让 Browser-Use 绕过 Cloudflare 五秒盾

摘要:AI Agent如何突破Cloudflare检测的实战指南 本文针对AI Agent在Cloudflare检测下频繁受阻的问题,深入分析了undetected-chromedriver的工作原理与局限性。文章指出,Cloudflare 2026年的检测体系已升级为"浏览器指纹+IP信誉+协议指纹+行为模式"的多维交叉验证,单一伪装方案难以奏效。 核心内容包括: undetected-chromedriver的三层补丁体系解析 v2与v3版本的适用场景对比 两种Browser-Use集成方案:Selen

ZDQ58818的博客 284

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Mac上安装GDB调试工具,并且使用eclipse来进行调试的环境搭建

Mac上安装GDB调试工具,并且使用eclipse来进行调试的环境搭建背景版本GDB安装过程安装前的准备工作XCode的安装brew的安装GDB安装创建证书及签名创建证书签名重启电脑eclipse中使用GDB 背景 GDB是一款代码调试工具。Mac下依旧支持,但是由于MacOS系统本身以及版本不协调等原因使用过程会遇到各种各样的问题。本文详细记录了从Gdb安装,钥匙串配置,与eclipse结合调试...

小菜鸟的博客 1335

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

解决MAC Eclipse CDT无法Debug的问题

Eclipse GDB MacOSX Mavericks [closed] I have had terrible problems making an Application Debug using Eclipse C/C++ project with XCode 5.0 and I have finally made it. I have finally been able to suc

Tony_Wong的专栏 2053

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

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 Mac...

weixin_34279246的博客 655

mac调试mysql源码_mac下用xcode和eclipse编译调试mysql源码

最近开始找回mysq源码了,好久没折腾这些了,准备在mac上用xcode和eclipse搭建好编译调试环境。mac上编译调试环境也主要是安装gcc,g++,cmake和gdb工具,在安装好xcode之后,也就可以编译c/c++程序了。mac下eclipse+cdt和ubuntu下eclipse+cdt搭建c++编译调试环境基本相同,就gdb的配置一点不一样。xcode相比使用eclipse,其主要...

weixin_33281416的博客 267

eclipse for mac about gdb -- version

debug的时候,出现问题 参考 http://ntraft.com/installing-gdb-on-os-x-mavericks/ //解决啦~ day2继续解决,没好 错误原因: macOS High Sierra version10.13.2 当create a code signing certificate 出现“Unknown Error=-214714007”

schon_willing的博客 413

Mac下 eclipse中C/C++ debug方法

Mac下 eclipse中C/C++ debug方法 gdb的安装与设置

Yu的专栏 5907

ubuntu 环境下调试mysql源码_mac下用xcode和eclipse编译调试mysql源码_MySQL

最近开始找回mysq源码了,好久没折腾这些了,准备在mac上用xcode和eclipse搭建好编译调试环境。mac上编译调试环境也主要是安装gcc,g++,cmake和gdb工具,在安装好xcode之后,也就可以编译c/c++程序了。mac下eclipse+cdt和ubuntu下eclipse+cdt搭建c++编译调试环境基本相同,就gdb的配置一点不一样。xcode相比使用eclipse,其主要...

weixin_42300478的博客 173

这可能是我觉得最折腾的C++环境配置(编码+调试)--mac+eclipse

本着造福大众的心态,万一可能有人喜欢这种环境开发呢对吧~~折腾了一天,又是谷歌又是百度,讲真遇到报错问题搜出的资料挺少的,看来用这类环境开发C++的人不多,毕竟谁没事干放着xcode,vscode不用,用eclipse瞎折腾啊... 前期工作:安装eclipse(eclipse在安装时候会有C++环境选项就用这个,就不用手动自己安装CDT 插件),gcc我默认你已经有了。有这两东西,可以在集成环...

weixin_30588729的博客 97

Android系统编程开发环境搭建与优化指南

Android系统编程是移动开发中的高级领域,涉及framework层、HAL开发等核心技术。与普通应用开发不同,系统编程需要特定的工具链和环境配置,包括AOSP源码获取、交叉编译环境搭建等关键技术环节。在Linux环境下,开发者需要配置JDK、Android SDK、NDK等基础组件,同时掌握adb、gdb等调试工具的使用。对于性能敏感场景,合理配置ccache缓存和并行编译参数能显著提升开发效率。本文基于多年实战经验,详细讲解从硬件选型到持续集成的最佳实践,帮助开发者快速搭建高效的Android系统开发

weixin_33735077的博客 361

Renesas RZ多核MPU开发实战:从FSP配置到e2 studio/IAR多核调试

在嵌入式系统开发中,多核处理器通过集成多个处理核心,能够有效提升系统的并行处理能力和实时响应性能,是实现复杂控制与计算任务的关键技术。其核心原理在于硬件上多个CPU核心共享内存与外设,软件上则需通过操作系统或裸机调度机制实现任务分配与核间通信。这种架构为工业自动化、机器人、网络设备等对性能和实时性要求苛刻的场景提供了强大的硬件基础。本文聚焦于瑞萨电子(Renesas)的RZ/T2与RZ/N2系列多核微处理器(MPU),深入解析如何利用其官方提供的Flexible Software Package(FSP)软

359
上一篇: iOS应用内付费(IAP)开发步骤列表
下一篇: python+Eclipse+pydev环境搭建
起风啰
博客等级 码龄16年 30粉丝 4原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值