GDB type de ne pas travailler sur macOS Sierra
C'est un problème qui est apparu quand j'ai mis à jour pour macOS Sierra hier.
GDB lui-même est en cours d'exécution OK. Toutefois, en quelque sorte, il ne peut pas exécuter mon programme. Quand je tape " run " et "enter", il se bloque immédiatement l'information:
During startup program terminated with signal SIG113, Real-time event 113.
Mon GDB est basé sur homebrew. Donc, aujourd'hui, j'ai désinstallé l'ensemble de l'homebrew paquet et de le réinstallé. Après le codesign étape, j'ai toujours confronté à la même erreur.
J'ai essayé de 'sudo' et quelques autres choses. Google avait aucune idée de ce qui s'est passé. Donc je me demandais si vous les gars pourrait avoir une certaine solution magique.
brew update && brew upgrade gdb
, codesigning, et laset startup-with-shell off
config (ces deux derniers sont mentionnés par brew) et il semble que nous sommes dans les affaires. La Sierra de gestion 10.12.1.
Vous devez vous connecter pour publier un commentaire.
C'est comment j'ai facilement résolu le problème. [Mise à jour: sur la base des commentaires reçus et encore à vérifier, il semble que cette solution fonctionne avec macOS Sierra 10.12 mais pas avec macOS Sierra 10.12.2]
Voir la vidéo des instructions ici
.gdbinit
dans votre dossier utilisateur.set startup-with-shell off
Sources
https://discussions.apple.com/thread/7684629?start=0&tstart=0
Où est .gdbinit est situé et comment puis-je le modifier?
https://sourceware.org/gdb/onlinedocs/gdb/Starting.html
J'ai eu le même message d'erreur après la mise à jour de macOS Sierra. Temporairement, j'ai changé débogueur LLDB à l'aide de la bibliothèque lldbmi2:
1.
git clone https://github.com/freedib/lldbmi2.git lldbmi2
2.
cd lldbmi2
3.
mkdir build
4.
cd build
5.
cmake ../
6.
make
7.
sudo make install
Tout semble fonctionner très bien, et même mieux que GDB.
cmake ..
, sinon, fonctionne très bien! Merci!Cela est dû à un temps d'Exécution de l'Intégrité de la fonction de Protection en Sierra - vous pouvez les désactiver en suivant les instructions ici.
De multiples solutions qui ont travaillé pour la Sierra 10.12.0 ne fonctionnent pas avec la Sierra de gestion 10.12.1. Avec cette version, vous avez besoin d'une mise à jour de la version de GDB (patch commis à la FSF sur Nov 9), en plus de la désactivation de la ponte de la coque avec un "set de démarrage-avec-shell off". Voir les instructions au http://blog.adacore.com/gnat-on-macos-sierra
supposons que votre version de MacOS est 10.12.6.
brew upgrade gdb
echo "set startup-with-shell off" >> ~/.gdbinit
( j'ai vu cette commande quand j'ai installé gdb par brew )gdb-cert
et faire confiance à ce certificat de signature de code optionsudo codesign -s gdb-cert /usr/local/bin/gdb
BTW,vous pouvez utiliser lldb pour remplacer gdb .
⌘ + i
pour afficher les informations de certificat. de là, vous pouvez faire confiance à ce certificat manuellement. L'anglais n'est pas ma langue maternelle, s'il vous plaît excuser les erreurs de frappe.lldb
- c'était la meilleure option pour moiJ'ai eu plusieurs problèmes avec la Sierra.
Pour commencer mon code qui avait travaillé sur les précédentes versions OSX a cessé de fonctionner
sur cette version. Et il ne serait compiler.En outre GDB de bière est un désordre complet. D'ajouter que d'autres de la 3e partie des bibliothèques s'est cassé (par exemple, libevent).
(Le"bon travail" d'Apple).
Après "mise à niveau" pour les Sierra-je suggérer les étapes suivantes pour obtenir GDB de travail:
Installer une version plus récente de gcc (Devrait prendre environ 60 minutes selon votre PROCESSEUR, etc...)
brew install gcc
Télécharger le code source de GDB
Depuis gcc et g++ sont des alias pour les vieux gcc et g++, assurez-vous que le lien vers la plus récente de gcc et g++ par exemple:
export CC=`gcc-6`
exportation CXX=`qui gxx-6`
Configure & Compiler gdb:
./configurer
faire CFLAGS=-Wno-erreur=obsolète-déclarations CXXFLAGS=-Wno-erreur=obsolète-déclarations
sudo make install
Cela fonctionne pour moi:
Dissocier actuel gdb:
brew unlink gdb
Installer gdb 8.0.1:
brew install https://raw.githubusercontent.com/Homebrew/homebrew-core/9ec9fb27a33698fc7636afce5c1c16787e9ce3f3/Formula/gdb.rb
Facultatif: éviter la mise à niveau gdb avec
brew pin gdb
Je sais que ma réponse n'est pas spécifiquement liée à GDB, mais depuis que j'ai également eu quelques difficultés à faire GDB pour le travail moi-même, je voudrais vous recommandons de faire un essai sur LLDB. Pour moi, cela a fonctionné comme un charme:
https://developer.apple.com/library/content/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-terminal-workflow-tutorial.html
Depuis Xcode lui-même utilise maintenant LLDB au lieu de GDB, cela peut être une solution de rechange plus pratique pour les utilisateurs de Mac. Et, dans mon cas particulier, il a intégré beaucoup plus facile dans Eclipse que GDB:
https://wiki.eclipse.org/CDT/User/FAQ#How_do_I_get_the_LLDB_debugger.3F