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.