Il y a des tonnes de messages et de blogs traitant de ce sujet, mais rien ne semble fonctionner ...
Sur Internet, voici le consensus sur la procédure requise pour installer et exécuter gdb
.
Installer gdb
brew install gdb
Homebrew "avec succès" installe gdb v8.1
Codesign gdb
Codesign gdb
en suivant la procédure de codage (comme décrit dans un post séparé SO).
Mettre à jour ~/.gdbinit
echo "set startup-with-Shell off" >> ~/.gdbinit
Une fois toutes les étapes terminées, lorsque je tente de déboguer un simple programme "hello world", le message d'erreur suivant apparaît lorsque SIGTRAP
est lancé.
(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.
Qu'est-ce que je rate?
Après des heures et des heures de recherche, j'ai finalement trouvé un obscur Gist identifiant le problème et détaillant la solution.
TL; DR Le débogueur GNU nécessite un patch avant de pouvoir fonctionner avec MacOS. gdb v8.0.1
est la dernière bonne version connue de GDB pour MacOS.
Désinstallez la dernière version de gdb
(i.e. v8.1)
brew uninstall --force gdb
Forcer Homebrew à installer une version de gdb
avec le correctif pour MacOS.
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/c3128a5c335bd2fa75ffba9d721e9910134e4644/Formula/gdb.rb
Utilisez le certificat existant pour codifier la nouvelle installation de gdb
codesign -f -s "<GNU GDB Certificate>" $(which gdb)
Maintenant, gdb
fonctionne comme prévu!
Merci à https://github.com/marcoparente et https://github.com/lokoum pour leurs commentaires sur Gist!
Gdb a travaillé sur Mojave hier par:
a) obtenir la dernière archive source gdb (au moment de la rédaction de ce document, ftp://sourceware.org/pub/gdb/snapshots/current/gdb-weekly-8.2.50.20190212.tar.xz
b) construire gdb. J'ai eu des erreurs pour l'observation variable dans darwin-nat.c, donc j'ai édité le fichier et reconstruit.
c) suivez les étapes de https://forward-in-code.blogspot.com/2018/11/mojave-vs-gdb.html
Voila!
(source: GDB sur Mac/Mojave: au cours du programme de démarrage terminé avec signal?, signal inconnu)