有大量的帖子和博客讨论这个话题,但似乎没有任何作用......
在互联网上,以下是有关安装和运行gdb
所需程序的共识。
安装gdb
brew install gdb
Homebrew"成功"安装gdb v8.1
Codesign gdb
按照codesigning procedure (详见单独的SO帖子)对gdb
进行协同设定。
更新~/.gdbinit
echo "set startup-with-shell off" >> ~/.gdbinit
完成所有步骤后,当我尝试调试一个简单的" hello world"程序,我得到了SIGTRAP
被抛出的以下启动错误。
(gdb) start
Temporary breakpoint 1 at 0x100000e66: file test.cpp, line 5.
Starting program: /Users/zfields/Documents/Development/test/a.out
[New Thread 0x1703 of process 67971]
[New Thread 0x1903 of process 67971]
During startup program terminated with signal SIGTRAP, Trace/breakpoint trap.
我错过了什么?
答案 0 :(得分:12)
经过数小时和数小时的搜索,我终于找到了obscure gist来确定问题并详细说明解决方案。
TL; DR GNU调试器需要一个补丁才能与MacOS配合使用。 gdb v8.0.1
是GDB for MacOS的最后一个很好的版本。
卸载最新版本的gdb
(即v8.1)
brew uninstall --force gdb
强制Homebrew使用MacOS补丁安装gdb
版本。
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c3128a5c335bd2fa75ffba9d721e9910134e4644/Formula/gdb.rb
使用现有证书对新安装的gdb
codesign -f -s "<GNU GDB Certificate>" $(which gdb)
现在,gdb
按预期工作!
特别感谢https://github.com/marcoparente和https://github.com/lokoum提出的要点!
答案 1 :(得分:0)
昨天,我让gdb在Mojave上工作:
a)获取最新的gdb源存档(在撰写本文时,ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-8.2.50.20190212.tar.xz
b)建立gdb。在darwin-nat.c中出现变量阴影错误,因此我编辑了文件并重新构建。
c)遵循https://forward-in-code.blogspot.com/2018/11/mojave-vs-gdb.html
中的步骤Voila!
(来源:Mac / Mojave上的GDB:在启动程序期间以信号?终止,未知信号)
答案 2 :(得分:0)
也许有些无关:
Mac OS Sierra 10.13.6 gdb 8.0.1
具有与主题启动器相同的错误。
https://gist.github.com/gravitylow/fb595186ce6068537a6e9da6d8b5b96d
我发现我的系统中已经有gdbcert1。 跟随一切从7。 有效!