web-dev-qa-db-fra.com

Comment installer GDB sur MacOS 10.13.3 (High Sierra)

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.

  1. Installer gdb

    brew install gdb
    

    Homebrew "avec succès" installe gdb v8.1

  2. Codesign gdb

    Codesign gdb en suivant la procédure de codage (comme décrit dans un post séparé SO).

  3. 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?

7
Zak

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.

  1. Désinstallez la dernière version de gdb (i.e. v8.1)

    brew uninstall --force gdb
    
  2. 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
    
  3. 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!

11
Zak

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)

0
Joubert Nel