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 论坛,转载请注明出处

时间: 2024-11-18 13:05:58

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

Mac OSX系统 Docker启用Docker远程API功能_docker

在Mac OSX系统的Docker机上启用Docker远程API功能 Docker守护进程提供了一套远程REST API,具体可以参考文档: https://docs.docker.com/engine/reference/api/docker_remote_api/ 这套API是提供给客户端与Docker引擎通信时使用,这套API也可以由其他工具调用,比如curl或Chrome浏览器的Postman REST客户端工具. 如果是在Mac OSX Mavericks系统上使用Docker机创建D

library-请教大神帮忙解决一下eclipse里面android_NDK编译.c文件报错

问题描述 请教大神帮忙解决一下eclipse里面android_NDK编译.c文件报错 "D:Androidandroid-ndk-r9dndk-build.cmd" all 系统找不到指定的文件. [armeabi-v7a] Compile thumb : hello-jni <= hello-jni.c jni/hello-jni.c:31:1: fatal error: opening dependency file ./obj/local/armeabi-v7a/objs

eclipse部署项目报错-eclipse部署项目到手机老是报错

问题描述 eclipse部署项目到手机老是报错 大家看下吧运行时老是报这个错误: [2016-01-04 13:53:47 - test3201614] The connection to adb is down, and a severe error has occured. [2016-01-04 13:53:47 - test3201614] You must restart adb and Eclipse. [2016-01-04 13:53:47 - test3201614] Plea

插件-androidstudio运行时总是报错

问题描述 androidstudio运行时总是报错 Error:Gradle: A problem occurred configuring root project 'MyApplication'. > Could not resolve all dependencies for configuration ':classpath'. > Cannot resolve external dependency com.android.tools.build:gradle:1.3.0 becau

springmvc-spring使用JUnit时autowired报错,controller里面autowired可以的

问题描述 spring使用JUnit时autowired报错,controller里面autowired可以的 试了好多办法还是不行,不知道哪里配错了..麻烦大神帮看一下 异常信息: SEVERE: Caught exception while allowing TestExecutionListener [org.springframework.test.context.support.DependencyInjectionTestExecutionListener@5f98de7] to p

android-Android程序在有些手机上可以运行有些手机打开时就报错

问题描述 Android程序在有些手机上可以运行有些手机打开时就报错 有些人说是手机系统版本的问题,我的版本设置为 android:minSdkVersion=""8"" android:targetSdkVersion=""19"" />错误为:03-27 17:42:49.851: D/jdwp(18655): sendBufferedRequest : len=0x3303-27 17:42:50.544: D/d

java-androidstudio运行时总是报错:求大神指教

问题描述 androidstudio运行时总是报错:求大神指教 报的错:Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:Program Files (x86)Javajdk1.7.0binjava.exe'' finished

android-安卓新手 界面底部工具栏设置三个图片按键,点击切换时一直报错,麻烦高手指点下。

问题描述 安卓新手 界面底部工具栏设置三个图片按键,点击切换时一直报错,麻烦高手指点下. Eclipse调试错误信息如下: MainActivity.java代码如下: package activity; import com.example.social.R; import fragment.OneFragment; import fragment.ThreeFragment; import fragment.TwoFragment; import android.os.Bundle; imp

javaweb-在ssh 中 用ServletActionContext获取session时启动报错

问题描述 在ssh 中 用ServletActionContext获取session时启动报错 ServletActionContext.getRequest().getSession(); 怎么才能在启动的时候就有ServletActionContext,而不用在ActionSupport处理请求时在获取 解决方案 是报空指针吗? 没有请求时 ServletActionContext.getRequest() 为null 解决方案二: http://blog.csdn.net/suncaoyo