Le titre résume assez bien la situation. J'essaie Go et je manque vraiment de pouvoir définir des points d'arrêt et entrer / dépasser / sortir autant que je veux dans un environnement interactif. Je sais que je peux utiliser gdb pour déboguer Go, mais c'est assez ennuyeux par rapport à l'utilisation d'un IDE qui peut se connecter à gdb pour les points d'arrêt.
J'ai essayé d'en rechercher un et je n'ai trouvé que des plugins ou de petits IDE qui ont une coloration syntaxique mais pas de débogage.
Réponses:
Mise à jour : Personnellement, tant que GDB fonctionne, je ne suis pas fan de son utilisation dans Go et cela vous fera cracher du sang. Découvrez quelques-unes des autres réponses pour de bonnes alternatives.
Oui bien sûr :)
Go a un débogueur (GDB)
Voici le tutoriel officiel sur son utilisation.
Si vous souhaitez un 'débogage graphique' (c'est-à-dire définir des points d'arrêt dans l'éditeur), certains IDE vous permettent de le faire (avec GDB en arrière-plan).
En particulier, Eclipse, LiteIDE et Zeus vous permettent tous de définir des points d'arrêt et de déboguer à partir de votre environnement de codage (source) . Voici une vidéo expliquant comment le faire avec Zeus .
la source
godebug
ce qui était plutôt bien la dernière fois que je suis allé.Le support GDB pour go présente de nombreux problèmes qui ne seront pas résolus par l'équipe go.
Pour plus d'informations, lisez l' article de Rob Pike :
Ils recherchent d'autres options de débogage mais n'ont pas de plans concrets pour le moment. La documentation est obsolète et le
runtime-gdb.py
script fourni avec go 1.2 ne fonctionne pas pour un GDB qui a été compilé avec le support python3 (Ubuntu actuel par exemple).la source
Mise à jour 2017: le projet godebug mentionné ci-dessous est désormais officiellement remplacé par derekparker / delve .
Réponse originale:
Vous avez maintenant (mars 2015) une autre approche, basée sur l'instrumentation du code.
mailgun / godebug :
Mise à jour de juin 2015:
Bien qu'il ne soit peut-être pas aussi interactif que «certains» pourraient l'espérer, il est toujours apprécié (et a une fonction «step into» ).
Voir " Go a un débogueur - et c'est génial! " (Cloudfare)
ifdef GODEBUG GOPATH="${PWD}" go install github.com/mailgun/godebug GOPATH="${PWD}" ./bin/godebug build -instrument "${GODEBUG}" -o bin/rrdns rrdns
la source
MISE À JOUR:
Je l'ai vérifié et je suis heureux d'annoncer que la version: 2016.1.3, Build: 145.1617.8, publiée le 5 juin 2016 fonctionne avec Delve! Vous pouvez le télécharger ici: https://www.jetbrains.com/idea/download/ . Suivez également les instructions d'installation de Delve ici: https://github.com/derekparker/delve/tree/master/Documentation/installation
C'est un peu floconneux. Juste après avoir reçu l'invite de connexion OSX, le débogage interactif a commencé à fonctionner. Parfois, je dois déboguer un simple programme .go pour le démarrer. Mais cela fonctionne et c'est la meilleure expérience de débogage interactive pour Go que j'ai vue.
POSTE ORIGINAL:
Existe-t-il un débogueur interactif Golang? Oui.
Existe-t-il un débogueur interactif Golang qui vaut la peine d'être utilisé? Non.
Configurer GDB sur le mac est fastidieux, mais faisable.
Cependant, une fois que vous commencez à l'utiliser, vous vous rendrez vite compte que vous venez de perdre votre temps à l'installer.
Vous pouvez même configurer IntelliJ pour l'utiliser.
La seule valeur qu'IntelliJ, LiteIDE, CGDB, etc. semblent fournir est que vous pouvez plus rapidement vérifier que la prise en charge du débogage GDB pour Go est extrêmement médiocre.
Vous pouvez l'utiliser pour parcourir du code Go, mais essayez d'imprimer la valeur de tout autre chose que des valeurs de variables très simples et vous perdrez votre temps à souhaiter un débogueur décent.
Voici un exemple de ce qui se passe lorsque vous essayez d'imprimer la valeur d'une structure de données de chaîne map [string] à l'aide de CGDB:
(gdb) print params $1 = (github.com/go-martini/martini.Params) 0x15582 <runtime.reentersyscall+450>
... ce qui est complètement inutile.
Ensuite, essayez ceci:
(gdb) print params["UserID"]
... et vous obtiendrez "Erreur de bus".
Delve ( https://github.com/derekparker/delve ) semble prometteur, car il est écrit en Go, mais vous le conduisez en utilisant la console, pas via un IDE.
Je paierais volontiers pour la version d'entreprise d'IntelliJ (ou de tout autre IDE) qui a fait un travail décent en prenant en charge le débogage interactif dans Go.
À partir de maintenant,
fmt.Printf("%v", variable)
c'est à peu près aussi bon que possible.la source
ÉDITER
Réponse originale (novembre 2015)
pour ceux qui recherchent le dernier à fin novembre 2015:
se plonger
https://github.com/derekparker/delve
et suivez les instructions de construction / configuration:
https://github.com/derekparker/delve/wiki/Building
Obtenez le dernier IntelliJ (15) ou PyCharm (5)
https://www.jetbrains.com/idea/download/
et récupérez le plugin go-lang dans l'IDE de votre choix:
Pycharm -> Preference -> plugins -> search for go current version is Version: 0.10.749 IntelliJ -> Preference -> plugins -> search for go current version is Version: 0.10.749
Définissez votre package ou fichier à exécuter.
Une fois la configuration terminée, l'icône de lecture et l'icône de débogage devraient maintenant être actives, et vous pouvez définir le point d'arrêt, les montres, etc. comme d'habitude.
À votre santé
la source
J'utilise avec plaisir CGDB, un petit wrapper de malédictions autour de GDB.
la source
IDE DEBUG ON GO EST POSSIBLE (ENCORE), FONCTIONNE VRAIMENT !
Delve fonctionne plutôt bien sur Mac OS X et est pris en charge par le plugin IntelliJ IDEA Go Lang .
J'ai testé cela sur Mac OSX, IntelliJ Idea 14, Go 1.5.1, Delve 0.5
Je devais exécuter les boucles habituelles de création d'un certificat auto-signé, de l'ajouter à l'anneau système, etc. (requis pour exécuter un débogueur sous Mac OS X). À la fin, j'ai défini un projet GO dans IntelliJ et j'ai été récompensé en récupérant les fonctionnalités habituelles du débogueur IDE +: définition des points d'arrêt, inspection des variables, pas à pas.
C'est bien mieux que d'imprimer des valeurs pour déboguer le code.
la source
Première option - GDB https://golang.org/doc/gdb
Creuser
Visual Studio Code avec son plugin go (utilise toujours delve).
J'utilise personnellement l'option 3. Pour cela, vous devrez avoir installé delve .
Cette vidéo montre le débogage en action: https://youtu.be/uBjoTxosSys?t=16m11s (toute la vidéo est très intéressante).
la source
J'ai été assez satisfait de Gogland ( https://www.jetbrains.com/go/ ) qui est essentiellement Intellij avec le support Go. Il a un débogueur fonctionnel qui ne cesse de s'améliorer au fur et à mesure qu'ils le développent. Je l'utilise depuis janvier 2017 et il a été essentiellement stable pour moi sur un MBP 2016.
la source