Der Titel fasst es ziemlich gut zusammen. Ich probiere Go aus und ich vermisse es wirklich, Haltepunkte setzen und in einer interaktiven Umgebung so viel ein- und aussteigen zu können, wie ich möchte. Ich weiß, dass ich gdb zum Debuggen von Go verwenden kann, aber das ist ziemlich ärgerlich im Vergleich zur Verwendung einer IDE, die sich für Breakpointing in gdb einbinden lässt.
Ich habe versucht, nach einem zu suchen, und konnte nur Plugins oder kleine IDEs finden, die eine Syntaxhervorhebung, aber kein Debugging aufweisen.
Antworten:
Update : Während GDB funktioniert, bin ich persönlich kein Fan davon, es in Go zu verwenden, und es wird Sie dazu bringen, etwas Blut zu spucken. Schauen Sie sich einige der anderen Antworten für gute Alternativen an.
Ja natürlich :)
Go hat einen Debugger (GDB)
Hier ist das offizielle Tutorial zur Verwendung.
Wenn Sie 'grafisches Debuggen' möchten (dh Haltepunkte im Editor festlegen), können Sie dies bei einigen IDEs tun (mit GDB im Hintergrund).
Mit Eclipse, LiteIDE und Zeus können Sie Haltepunkte festlegen und in Ihrer Codierungsumgebung (Quelle) debuggen . Hier ist ein Video, wie es mit Zeus geht .
quelle
godebug
was beim letzten Mal ziemlich nett war.Die GDB-Unterstützung für go hat viele Probleme, die vom go-Team nicht behoben werden können.
Weitere Informationen finden Sie in dem Beitrag von Rob Pike :
Sie suchen nach anderen Debugging-Optionen, haben aber noch keine konkreten Pläne. Die Dokumentation ist veraltet und das
runtime-gdb.py
mit go 1.2 gelieferte Skript funktioniert nicht für eine GDB, die mit Python3-Unterstützung kompiliert wurde (z. B. aktuelles Ubuntu).quelle
Update 2017: Das unten erwähnte Godebug-Projekt wird nun offiziell durch derekparker / delve ersetzt .
Ursprüngliche Antwort:
Sie (März 2015) haben jetzt einen anderen Ansatz, der auf der Instrumentierung des Codes basiert.
Mailgun / Godebug :
Update Juni 2015:
Obwohl es möglicherweise nicht so interaktiv ist, wie "einige" hoffen, wird es dennoch geschätzt (und verfügt über die Funktion "Einstieg" ).
Siehe " Go hat einen Debugger - und es ist großartig! " (Cloudfare)
quelle
AKTUALISIEREN:
Ich habe es ausgecheckt und freue mich, Ihnen mitteilen zu können, dass Version: 2016.1.3, Build: 145.1617.8, Veröffentlicht: 5. Juni 2016 mit Delve funktioniert! Sie können es hier herunterladen: https://www.jetbrains.com/idea/download/ . Befolgen Sie auch die Delve-Installationsanweisungen hier: https://github.com/derekparker/delve/tree/master/Documentation/installation
Es ist ein bisschen schuppig. Kurz nachdem ich die OSX-Anmeldeaufforderung erhalten hatte, begann das interaktive Debuggen zu funktionieren. Manchmal muss ich ein einfaches .go-Programm debuggen, um es zu starten. Aber es funktioniert und ist die beste interaktive Debugging-Erfahrung für Go, die ich gesehen habe.
ORIGINAL POST:
Gibt es einen interaktiven Golang-Debugger? Ja.
Gibt es einen interaktiven Golang-Debugger, der es wert ist, verwendet zu werden? Nein.
Das Konfigurieren von GDB auf dem Mac ist mühsam, aber machbar.
Sobald Sie es jedoch verwenden, werden Sie schnell feststellen, dass Sie nur Ihre Zeit mit der Installation verschwendet haben.
Sie können IntelliJ sogar für die Verwendung konfigurieren.
Der einzige Wert, den IntelliJ, LiteIDE, CGDB usw. zu bieten scheinen, besteht darin, dass Sie schneller feststellen können, dass die GDB-Debugging-Unterstützung für Go äußerst schlecht ist.
Sie können damit einen Go-Code durchgehen, aber versuchen Sie, den Wert von etwas anderem als sehr einfachen Variablenwerten zu drucken, und Sie werden Ihre Zeit damit verschwenden, sich einen anständigen Debugger zu wünschen.
Hier ist ein Beispiel dafür, was passiert, wenn Sie versuchen, den Wert einer Map [String] -String-Datenstruktur mit CGDB zu drucken:
... was völlig nutzlos ist.
Versuchen Sie als nächstes Folgendes:
... und Sie erhalten "Busfehler".
Delve ( https://github.com/derekparker/delve ) sieht vielversprechend aus, da es in Go geschrieben ist, Sie es jedoch über die Konsole und nicht über eine IDE steuern.
Ich würde gerne für die Unternehmensversion von IntelliJ (oder einer anderen IDE) bezahlen, die gute Arbeit bei der Unterstützung des interaktiven Debuggens in Go geleistet hat.
Ab sofort
fmt.Printf("%v", variable)
ist es so gut wie es nur geht.quelle
BEARBEITEN
Ursprüngliche Antwort (Nov 2015)
für diejenigen, die das Neueste ab Ende November 2015 suchen:
Tauchen Sie ein
und befolgen Sie die Anweisungen zum Erstellen / Einrichten:
Holen Sie sich die neuesten IntelliJ (15) oder PyCharm (5)
und holen Sie sich das go-lang-Plugin in die IDE Ihrer Wahl:
Definieren Sie das auszuführende Paket oder die auszuführende Datei.
Sobald Sie mit dem Setup fertig sind, sollten das Wiedergabesymbol und das Debug-Symbol jetzt aktiv sein, und Sie können wie gewohnt Haltepunkte, Uhren usw. festlegen.
Prost
quelle
Ich benutze gerne CGDB, einen kleinen Fluch-Wrapper um GDB.
quelle
IDE DEBUG ON GO IST MÖGLICH (WIEDER), FUNKTIONIERT WIRKLICH !
Delve funktioniert unter Mac OS X recht gut und wird vom IntelliJ IDEA Go Lang-Plugin unterstützt .
Ich habe das unter Mac OSX, IntelliJ Idea 14, Go 1.5.1, Delve 0.5 getestet
Ich musste die üblichen Schleifen durchlaufen, um ein selbstsigniertes Zertifikat zu erstellen, es dem Systemring hinzuzufügen usw. (erforderlich, um einen Debugger unter Mac OS X auszuführen). Am Ende habe ich ein GO-Projekt in IntelliJ festgelegt und wurde zurückgezahlt, als ich die üblichen IDE + -Debugger-Funktionen wiedererlangt habe: Festlegen von Haltepunkten, Überprüfen von Variablen, Einzelschritt.
Das ist viel besser als das Ausdrucken von Werten, um Code zu debuggen.
quelle
Option eins - GDB https://golang.org/doc/gdb
Tauchen Sie ein
Visual Studio Code mit seinem Go-Plugin (verwendet weiterhin delve).
Ich persönlich verwende Option 3. Dafür muss delve installiert sein.
Dieses Video zeigt das Debuggen in Aktion: https://youtu.be/uBjoTxosSys?t=16m11s (das gesamte Video ist sehr interessant).
quelle
Ich war ziemlich zufrieden mit Gogland ( https://www.jetbrains.com/go/ ), das im Grunde Intellij mit Go-Unterstützung ist. Es gibt einen funktionierenden Debugger, der immer besser wird, während sie dies entwickeln. Ich benutze es seit Januar 2017 und es ist für mich auf einem 2016 MBP größtenteils stabil.
quelle