2017-02-18 115 views
0

这个问题已经知道,gdb不再适用于OS X Sierra。gdb os x sierra 10.12.3不能正常工作

这真的很烦人,因为我已经研究了解决方案,并且有一些解决方案,但他们显然不再工作了。我试图使用.gdbinit文件解决方案和禁用csrutil解决方案,两者都不起作用。

Sooo我的问题是:有谁知道如何解决它在10.12.3?

非常感谢!

+0

你有没有尝试编译最新[GDB](https://www.gnu.org/software/gdb/)7.12.1从源代码? –

+0

又见http://sourceware-org.1504.n7.nabble.com/gdb-on-macOS-10-12-quot-Sierra-quot-td415708.html –

+0

非常感谢你,你给我的想法简单更新gdb大声笑。这有帮助,然后我想出了自己! :)我会在未来的文章中为男士写一个答案。 –

回答

1

所以感谢巴西莱Starynkevitch,谁只是给了我的想法,更新GDB

SOLUTION:

您只需更新 GDB最新的版本(这是目前7.12.1 )。假设你已经安装家酿:

这就是我所做的:

brew update 
brew remove gdb 
brew install gdb 

现在已经更新到最新版本。

现在再次使用您以前使用过的证书对gdb进行密码校验。

sudo killall taskgated 
codesign -fs gdb-certi /usr/local/bin/gdb 
launchctl load /System/Library/LaunchDaemons/com.apple.taskgated.plist 

最后一步是仍然使用变通方法来创建.gdbinit中:

nano ~/.gdbinit 

- >set startup-with-shell off

调试现在对我的作品:)(OS X塞拉利昂10.12。 3 - gdb 7.12.1)。

UPDATE:

显然,这将解决某些问题,但不是全部问题的本身。它仍然会导致错误。老实说,我的解决方案:当你可以:切换到LLDB和另一个IDE (Netbeans不支持LLDB)。或者使用Linux。我目前在我的MacBook Pro上使用Ubuntu。

+1

不适合我。仍然破碎 –

-1

我发现gdb 7.12.1也不适用于我。我认为它不包括2016年11月9日提交给gdb的重要提交82b19a4d2f9c9e8d56f。 但是,我能够让gdb 8.0开发分支工作。

通过例如下载

git clone --depth 1 --branch gdb-8.0-branch git://sourceware.org/git/binutils-gdb.git 

然后进入验证目录

cd binutils-gdb 

我的MacPorts所以(一)要链接到MacPorts的库和(b)要避免把东西在/ usr /本地所以配置为

./configure prefix=$HOME LDFLAGS="-L/opt/local/lib" CPPFLAGS="-I/opt/local/include" 


make -j8 

make install 

=>将gdb可执行文件放入〜/ bin; (静态)库到〜/ lib;文档到〜/份额

然后按照上述André的前端做代码签名;虽然它现在将是 codesign -fs gdb-certi〜/ bin/gdb

0

无GDB 7.11或7.12.1将无法在Sierra 10.12.4上运行简而言之,这是因为Apple安全性升级。当某个新版本出现时,我们需要等待重新启用。

易WA是使用LLDB作为调试器现在。样本说明here

另一个LLDB指令here

3

貌似还有没有一个解决方案。我不认为“使用LLDB代替GDB”是最终的解决方案。所以我继续构建了一个非常基本的Docker容器,它包含了非常基础的东西(g ++和gdb)。

这里是Docker Hub container,而在Dockerfile是这个Github repo

该解决方案至少可以让您通过几个简单的命令使用GDB你的Mac上。并且,由于您正在编码的文件夹已安装,只要您点击保存,所有更改都会自动显示。

希望这可以帮助别人。