解决Mac下GDB提示签名错误

原文作者:Power 转载请保留此链接。

安装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授予系统全然信任的代码签名权利。以对其它进程。

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

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

打开菜单:钥匙串訪问-》证书助理-》创建证书...

输入证书名称,如:gdb-cert;

选择身份类型:自签名根证书 (Identity Type to Self Signed Root)

选择证书类型:代码签名 (Certificate Type to Code Signing)

勾选:让我覆盖这些默认签名 (select the Let me override defaults)

一路继续,直到选择存放证书地址。选择:系统

这样证书就创建好了,还要设置证书自己定义信任

右键刚才创建的 gdb-cert 证书,选择“显示简单介绍” (Get Info)

点击“信任”。会显示能够自己定义的信任选项

“代码签名”选择“总是信任” (Code Signing to Always Trust)

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

>codesign -s gdb-cert /path to gdb

注意,须要先退出“钥匙串訪问”应用,或者重新启动下系统

查看/path to gdb。运行命令

>which gdb

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

原文作者:Power 转载请保留此链接。

时间: 2024-10-27 06:28:46

解决Mac下GDB提示签名错误的相关文章

解决MAC下PHP连接MYSQL错误Warning: mysql_connect(): No such file or directory in conn.php

今天在mac上用php去连接mysql数据库,出现了 mac PHP Warning:  mysql_connect(): [2002] No such file... 详细例如以下所看到的: DirkMacBook:vote Dirk$ phpunit MyTest.php  Warning: mysql_connect(): No such file or directory in /Applications/XAMPP/xamppfiles/htdocs/myvote/vote/conn.

微信公众号卡券接口提示签名错误解决办法

现有的微信卡券接口文档中,签名是用api_ticket作为加密参数,但使用api_ticket会提示“签名错误”,导致卡券无法正常领取, 解决办法是把api_ticket替换为公众号的appSecret即可,如下: $signature  = sha1($timestamp.$api_ticket.$card_id); 改为: $signature  = sha1($timestamp.$appSecret.$card_id); 此为老版本的加密方式,虽说微信官方已经发布了新版本,但目前依旧无法

解决Mac下Sequel Pro 1.1 连接 Homebrew安装Mysql5.7.8的问题 Sequel Pro 1.1 encountered an unexpected error

解决Mac下Sequel Pro 1.1 连接 Homebrew安装Mysql5.7.8的问题 Sequel Pro encountered an unexpected error Sequel Pro 1.1 encountered an unexpected error when connecting to mysql 5.7.8 rc via ssh 在OS X El Capitan环境下用 + homebrew安装 + MySQL 5.7.9: 解决办法,运行下面得命令升级mysql,重

微信支付模式二 统一下单一直提示签名错误

来源:https://www.jianshu.com/p/2195599195e3 我这个项目是用的公司之前的商户信息,但是也把新的公众号进行了支付配置,应该没什么问题了,但是在选择支付方式NATIVE生成二维码支付时一直提示签名错误.所以截取xml进行字段的检查.检查sgin的生成过程,数据都没什么问题.另外使用微信官方的支付sign校验工具进行匹配,将转成的xml填写进去,输入商户的密钥key,居然说签名是正确的. 重点:微信支付接口返回签名错误,使用微信sign校验工具提示签名正确,可以试

解决Mac下sed命令报错的问题

在Mac上准备批量替换一些文字,使用sed命令,如下: sed -i 's/xxx/yyy/g' file 同样的命令在Linux上是可以成功运行的,注意Mac下man sed中-i参数的说明: 原来是Mac的备份要求,好吧!那就这么搞,如下: sed -i '' 's/xxx/yyy/g' file 原文地址:https://www.cnblogs.com/Don/p/8945957.html

Mac下appium-doctor提示错误汇总

一.            提示 [Error: Could not detect Mac OS X Version from sw_vers output: '10.12'] 解决方法: 1.终端执行下面指令 grep -rl "Could not detect Mac OS X Version from sw_vers output:" /Applications/Appium.app/ 会显示出四个js文件,然后挨个的去修改这个四个文件 2.这个文件修改成下面这样(加上10.12

解决Mac下MX4手机无法连接adb问题之解决方案

一般的android连接mac 很方便不用安装驱动就可以啦,可是不知道为什么特殊情况下有的android手机(小米2,华为等)就是连接不上,下来就说说特殊情况下如何连接. 使用USB连接安卓手机后可以做2件事情: 1.关于本机-->更多信息->概系统览->系统报告->usb->你所连接的device-->供应商ID(Vendor ID) 2..打开终端,输入:system_profiler SPUSBDataType     命令 可以查看连接的usb设备的信息 通过以

如何顺利解决mac下命令不管用的情况

背景: 昨晚通过brew安装了node,结果导致我的终端除了cd和ls管用外,其他的命令都不管用了,网上搜索了一大堆,结果没有一个能正确解决我的问题的,记录一下吧. 打开终端就显示: -bash: touch :command not found 首先: 在terminal里面输入: export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin" 这句的意思是暂时让命令管用, 其次: 赶紧用open -e

解决mac下atom安装插件失败问题

activate-power-mode的超炫编辑效果打动了我,花时间安装了atom,之后在package,install里面找到了这个插件,但是安装失败,如下图所示: gyp info it worked if it ends with ok gyp info using [email protected] gyp info using [email protected] | darwin | x64 gyp http GET https://atom.io/download/atom-shel