Ich würde gerne in der Lage sein, den Go-Code von Geth zu debuggen - mit Intellij Webstorm.
Idealerweise würde ich gerne einen privaten Geth-Knoten innerhalb von Webstorm ausführen und einen Haltepunkt setzen, aber ich würde mich auch mit einer Remote-Verbindung zu einem lokalen Knoten begnügen, den ich über die Befehlszeile gestartet habe.
Es sieht für mich so aus, als ob der Einstiegspunkt für Geth main.go ist , aber wenn ich versuche, dies auszuführen, erhalte ich die folgenden Fehler:
.go/src/github.com/ethereum/go-ethereum/cmd/geth/main.go
# command-line-arguments
cmd/geth/main.go:112: undefined: configFileFlag
cmd/geth/main.go:143: undefined: initCommand
cmd/geth/main.go:144: undefined: importCommand
cmd/geth/main.go:145: undefined: exportCommand
cmd/geth/main.go:146: undefined: removedbCommand
cmd/geth/main.go:147: undefined: dumpCommand
cmd/geth/main.go:149: undefined: monitorCommand
cmd/geth/main.go:151: undefined: accountCommand
cmd/geth/main.go:152: undefined: walletCommand
cmd/geth/main.go:154: undefined: consoleCommand
cmd/geth/main.go:154: too many errors
Kann mir jemand genau helfen, wie ich Geth aus Webstorm heraus starten kann, dh nicht aus der kompilierten, Geth, Binärdatei, bitte?
--- Update nach dem Versuch, aus dem Paket statt aus einer Datei zu starten ---
Wenn ich das Paket auf "github.com/ethereum/go-ethereum/cmd/geth" setze, erhalte ich leider die folgenden Fehler:
/usr/local/go/bin/go build "-ldflags=-linkmode internal" -o /tmp/___main_go github.com/ethereum/go-ethereum/cmd/geth
# github.com/ethereum/go-ethereum/cmd/geth
github.com/ethereum/go-ethereum/vendor/github.com/karalabe/hid(.text): relocation target __pthread_unwind_next not defined
github.com/ethereum/go-ethereum/vendor/github.com/karalabe/hid(.text): undefined: "__pthread_unwind_next"
Stellen Sie zunächst sicher, dass Sie über die neueste Version, EAP 15, 173.2696.28, verfügen und die neueste Version von Go, 1.9, verwenden, da dies aufgrund der jüngsten Verbesserungen in Go in Bezug auf das Debuggen für ein besseres Debugging-Erlebnis bevorzugt wird.
Gehen Sie dann zu Ausführen | Konfigurationen bearbeiten | Gehen Sie zu Anwendungen | Wählen Sie die Laufkonfiguration aus, die Sie bearbeiten möchten | Führen Sie kind aus und ändern Sie es in File
from Package
. Geben Sie dann beispielsweise den Namen des Pakets ein github.com/ethereum/go-ethereum/cmd/geth
und speichern Sie die Einstellungen. Gehen Sie dann zu Ausführen | Debug... und wählen Sie die Laufkonfiguration aus, die Sie zuvor bearbeitet haben, und wählen Sie diese als Debug-Lauf aus.
Ich habe auch ein kleines Video erstellt, das Ihnen zeigen soll, wie Sie die Run kind
für eine Run-Konfiguration ändern können, Sie können es hier sehen .
MIkCode
Nulik
go run ... geth.go
. Haben Sie herausgefunden, wie Sie diese Fehler entfernen können?SteveJaxon