Golang Debuggen mit GDB?
Habe ich 2 Fragen über den GDB + golang?
1) Go build GCC flags
wenn ich "go build" , welche gcc-flags tun die Go-builder verwenden, um ein Programm erstellen? Der build-Wert ist dasselbe wie der "GOGCCFLAGS" - set in der envionment?
GOGCCFLAGS="-fPIC -m64 -pthread -fno-caret-diagnostics -Qunused-arguments -fmessage-length=0 -fno-common"
da sehe ich keine "-g" oder "-g3" - flags für das hinzufügen von code-symbol. Wenn ja, wie könnte das symbol Tabelle kompiliert werden ?
2) so drucken Sie einen Wert in GDB
Ich folgte dem tutorial hier GDB Debuggen wechseln tutorial, aber es scheint, der Wert ist nicht das, was ich eingestellt.
Durch die Art und Weise, die ich bemerkte, gibt es einen post darüber gdb Debuggen gehen
Allerdings bei mir nicht funktioniert entweder.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Go funktioniert nicht mit GDB und eine der bekannten Probleme ist das drucken der Werte.
Mehr details finden Sie hier.
Golang funktioniert jetzt auch mit GDB
Hier ist ein Beispiel golang app
gdbtest
Nehmen Sie das folgende Beispiel main.gehen
Speichern, die zu main.gehen. Kompilieren Sie dann mit den folgenden
gcflag
Flagge.go build -gcflags "-N"
Öffnen gdb mit Ihrem neu gebaut golang app
Haben Sie jetzt die volle Kontrolle von gdb. Zum Beispiel, fügen Sie einen Haltepunkt mit
br <linenumber>
Befehl, führen Sie dann die app mitrun
Nun können Sie drucken alle lokalen Variablen
Sogar Zugriff auf die Zeiger
Die akzeptierte Antwort ist veraltet.
Golang arbeitet derzeit mit GDB (einschließlich der einheimischen), wenn Sie bauen mit den Fahnen
-gcflags=all="-N -l"
, wie beschrieben auf der offizielle Dokumentation