C++ gdb os x sierra 10.12.3不工作

C++ gdb os x sierra 10.12.3不工作,c++,macos,debugging,gdb,macos-sierra,C++,Macos,Debugging,Gdb,Macos Sierra,问题已经知道,gdb不再与OSX Sierra一起工作 这真的很烦人,因为我已经研究过这个解决方案了,有一些解决方案,但它们显然已经不起作用了。我尝试使用.gdbinit文件解决方案和禁用csrutil解决方案,两者都不起作用 所以我的问题是:有人知道如何在10.12.3中修复它吗 多谢各位 感谢Basile Starynkevitch,他刚刚给了我更新gdb的想法 解决方案: 您只需更新gdb以获得最新版本(目前为7.12.1)。假设您已安装自制软件: 我就是这么做的: brew update

问题已经知道,gdb不再与OSX Sierra一起工作

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

所以我的问题是:有人知道如何在10.12.3中修复它吗


多谢各位

感谢Basile Starynkevitch,他刚刚给了我更新gdb的想法

解决方案:

您只需更新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 
->
在外壳关闭时设置启动

调试现在对我有效:)(OS X Sierra 10.12.3-gdb 7.12.1)

更新:


显然,它会解决某些问题,但不会解决整个问题本身。它仍然会导致错误。老实说,我的解决方案是:在可以的时候:切换到LLDB和另一个IDE(Netbeans不支持LLDB)。或者使用Linux。我目前在MacBook Pro上使用Ubuntu,并附带了一根棍子。

多亏了Basile Starynkevitch,他刚刚给了我更新gdb的想法

解决方案:

您只需更新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 
->
在外壳关闭时设置启动

调试现在对我有效:)(OS X Sierra 10.12.3-gdb 7.12.1)

更新:


显然,它会解决某些问题,但不会解决整个问题本身。它仍然会导致错误。老实说,我的解决方案是:在可以的时候:切换到LLDB和另一个IDE(Netbeans不支持LLDB)。或者使用Linux。我目前在MacBook Pro上用的是Ubuntu。我发现gdb 7.12.1也不适合我。我认为它不包括2016年11月9日向gdb作出的关键承诺82b19a4d2f9c9e8d56f。 然而,我能够让GDB8.0开发分支工作

下载,例如

git clone --depth 1 --branch gdb-8.0-branch git://sourceware.org/git/binutils-gdb.git
然后进入签出目录

cd binutils-gdb
我有macports,所以(a)希望链接到macports库,并且(b)希望避免将内容放入/usr/local中,以便配置

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


make -j8

make install
=>将gdb可执行文件放入~/bin;(静态)库转换为~/lib;将文档转换为~/share

然后按照上面安德烈的提示进行代码签名;虽然现在是
codesign-fs gdb certi~/bin/gdb

我发现gdb7.12.1也不适合我。我认为它不包括2016年11月9日向gdb作出的关键承诺82b19a4d2f9c9e8d56f。 然而,我能够让GDB8.0开发分支工作

下载,例如

git clone --depth 1 --branch gdb-8.0-branch git://sourceware.org/git/binutils-gdb.git
然后进入签出目录

cd binutils-gdb
我有macports,所以(a)希望链接到macports库,并且(b)希望避免将内容放入/usr/local中,以便配置

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


make -j8

make install
=>将gdb可执行文件放入~/bin;(静态)库转换为~/lib;将文档转换为~/share

然后按照上面安德烈的提示进行代码签名;虽然现在是
codesign-fs gdb certi~/bin/gdb

无gdb 7.11或7.12.1将无法在Sierra 10.12.4上运行简而言之,这是因为苹果的安全升级。我们需要等待一些新版本出现时重新启用

现在很容易使用LLDB作为调试器。示例说明


另一条LLDB指令

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

现在很容易使用LLDB作为调试器。示例说明


另一条LLDB指令看起来仍然没有解决方案。我不认为“使用LLDB而不是GDB”是最终的解决方案。因此,我继续构建了一个相当基本的docker容器,其中包含非常基本的内容(g++和gdb)

这是,Dockerfile在这上面

这个解决方案至少允许您通过几个简单的命令在Mac上使用GDB。而且,由于您正在编码的文件夹已装入,一旦单击“保存”,所有更改都会自动显示


希望这对其他人有所帮助。

看来还没有解决办法。我不认为“使用LLDB而不是GDB”是最终的解决方案。因此,我继续构建了一个相当基本的docker容器,其中包含非常基本的内容(g++和gdb)

这是,Dockerfile在这上面

这个解决方案至少允许您通过几个简单的命令在Mac上使用GDB。而且,由于您正在编码的文件夹已装入,一旦单击“保存”,所有更改都会自动显示


希望这对其他人有所帮助。

您是否尝试从源代码编译最新的7.12.1?另请参阅,非常感谢,您给了我简单更新gdb lol的想法。这很有帮助,我当时就明白了!)我会在以后的帖子中为这些家伙们写下答案。你有没有试着从源代码中编译最新的7.12.1?也非常感谢你,你给了我简单更新gdb lol的想法。这很有帮助,我当时就明白了!)将来我会把答案写在一篇帖子里给那些家伙们。