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:
(gdb) print params
$1 = (github.com/go-martini/martini.Params) 0x15582 <runtime.reentersyscall+450>
... was völlig nutzlos ist.
Versuchen Sie als nächstes Folgendes:
(gdb) print params["UserID"]
... 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.