Question or issue on macOS:
There are tons and tons of post and blogs discussing this topic, but nothing seems to work…
From across the internet, here is the common consensus regarding the procedure required to install and run gdb.
After completing all the steps, when I attempt to debug a simple “hello world” program, I get the following startup error resulting from SIGTRAP being throw.
(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.
What am I missing?
How to solve this problem?
Solution no. 1:
After hours and hours of searching, I finally found an obscure gist identifying the issue and detailing the solution.
TL;DR The GNU Debugger requires a patch before it can work with MacOS.
gdb v8.0.1 is the last known good version of GDB for MacOS.
Uninstall the latest version of
brew uninstall --force gdb
Force Homebrew to install a version of
gdbwith the patch for MacOS.
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c3128a5c335bd2fa75ffba9d721e9910134e4644/Formula/gdb.rb
Use the existing certificate to codesign the new install of
codesign -f -s "<GNU GDB Certificate>" $(which gdb)
gdb works as expected!
Special thanks to https://github.com/marcoparente and https://github.com/lokoum for their gist comments!
Solution no. 2:
I got gdb working on Mojave yesterday by:
a) getting the latest gdb source archive (at time of writing, ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-18.104.22.16890212.tar.xz
b) build gdb. I got errors for variable shadowing in darwin-nat.c so I edited the file and rebuilt.
c) follow steps in https://forward-in-code.blogspot.com/2018/11/mojave-vs-gdb.html
(source: GDB on Mac/Mojave: During startup program terminated with signal ?, Unknown signal)
Solution no. 3:
Maybe a bit of unrelated:
Mac OS Sierra 10.13.6
had the same error as topic-starter.
I discovered that I already had gdbcert1 in my System.
Followed everything from 7.