如何在Mac OSX El Capitan中安装gdb(调试器)?我已经尝试安装gdb但是失败了几次.
我关注此URL:http://ntraft.com/installing-gdb-on-os-x-mavericks/,MAC不允许安装MacPorts.
在这方面,有谁可以帮助我.
drR*_*rtz 28
请注意,这个答案是为Mac OS El Capitan编写的.对于较新版本,请注意它可能不再适用.特别是,遗留选项很可能已被弃用.
这个问题有两个解决方案,在这个问题的其他答案和如何在OSX 10.11 El Capitan下使用macport使gdb工作时都会提到它们?,但为了澄清一些混乱,这是我的总结(作为一个答案,因为它有点长的评论):
哪种替代方案更安全我想可以归结为1)信任自签名证书和2)为用户提供更多权限之间的选择.
如果使用签名备选方案,taskgated则不需要禁用SIP以添加-p选项.
但请注意,使用此替代方法,仅允许 _developer 组中的用户进行调试.
使用codesign使用名为的证书进行签名gdb-cert:
codesign -s gdb-cert /opt/local/bin/ggdb
(使用MacPorts标准路径,根据需要采用)
有关详细的代码签名配方(包括证书创建),请参阅:https: //gcc.gnu.org/onlinedocs/gcc-4.8.1/gnat_ugn_unw/Codesigning-the-Debugger.html或 https://sourceware.org/ GDB /维基/ BuildingOnDarwin
请注意,您需要在进程期间和之后重新启动 keychain应用程序和taskgated服务(最简单的方法是重新启动).
根据@ user14241的答案,禁用SIP并添加-p选项taskgated是一个选项.请注意,如果使用此选项,则不需要对二进制文件进行签名,并且它还会绕过用于作为Developer Tools组成员进行身份验证的对话框(_developer).
在将-p选项(允许组procmod和procview)添加到taskgated之后,还需要添加应该允许将gdb用于procmod组的用户.
食谱是:
在恢复模式下重启,打开终端并运行 csrutil disable
重启机器并编辑/System/Library/LaunchDaemons/com.apple.taskgated.plist,添加-popion:
<array>
<string>/usr/libexec/taskgated</string>
<string>-sp</string>
</array>
Run Code Online (Sandbox Code Playgroud)在恢复模式下重启以重新启用SIP(csrutil enable)
重启机器并将用户添加USERNAME到组procmod:
sudo dseditgroup -o edit -a USERNAME -t user procmod
不涉及将用户添加到组的替代方法是 使可执行文件setgid为procmod,因为这也使得procmod执行setgid二进制文件的任何用户的有效组ID(在 https://apple.stackexchange.com/a/112132中建议)
sudo chgrp procmod /path/to/gdb
sudo chmod g+s /path/to/gdb
Run Code Online (Sandbox Code Playgroud)San*_*gha 28
首先安装Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
然后运行: brew install gdb
rye*_*nus 12
这篇博客文章解释得非常好:
http://panks.me/posts/2013/11/install-gdb-on-os-x-mavericks-from-source/
我开始工作的方式:
通过KeyChain Access创建编码签名证书:
1.1从菜单中,选择KeyChain Access>证书助理>创建证书...
1.2按照向导创建证书并命名gdb.cert,身份类型为自签名根,证书类型为代码签名,然后选择让我覆盖默认值.
1.3在"继续"上单击几次,直到进入"为证书指定位置"屏幕,然后将" 密钥链"设置为" 系统".
通过Homebrew安装gdb: brew install gdb
重启taskgated:sudo killall taskgated && exit
重新打开终端窗口并键入 sudo codesign -vfs gdb.cert /usr/local/bin/gdb
在我的Mac OS X El Capitan上,我使用自制软件来安装gdb:
brew install gdb
Run Code Online (Sandbox Code Playgroud)
然后我按照这里的说明进行操作:https://sourceware.org/gdb/wiki/BuildingOnDarwin,在2.1节中.Mac OS X 10.5(Leopard)及更高版本的方法.