Heim > Artikel > Backend-Entwicklung > Wie füge ich zum Debuggen mit der Visual Studio Code-IDE eine Verbindung zu einer überkompilierten Go-Binärdatei hinzu?
Ich verwende Visual Studio Code als IDE für eine Golang-basierte Anwendung. Die Anwendung wird auf Linux-Zielen ausgeführt. Ich möchte den VSC-Debugger an diese überkompilierte Binärdatei anhängen. Die Binärdatei kann für ARM- oder x86-Plattformen kompiliert werden. Ich weiß, dass eine launch.json-Datei dies erreichen kann, aber ich habe sie noch nie verwendet. Bitte helfen Sie.
Debugger dlv wird zum Debuggen von Go-Code verwendet. Delve oder dlv hat die Einschränkung, dass es nur an Binärdateien für 64-Bit-Architekturen angehängt werden kann. Also habe ich den Code für die 64-Bit-AMD-Architektur kompiliert und auf meinem Linux-Rechner ausgeführt. Als nächstes habe ich die Prozess-ID der Binärdatei ermittelt und einen Drilldown angehängt. Ich habe Port 2345 für den Delve-Server verwendet
dlv Some_process_id anhängen --listen=:2345 --headless --api-version=2 --log
Möglicherweise müssen Sie auch die Debugging-Ebene auf Ihrem Linux-Ziel mit Sudo-Berechtigungen aktivieren/ändern.
cat 0 > /proc/sys/kernel/yama/ptrace_scope
Erstellen Sie eine launch.json in der Visual Studio Code-IDE mit den folgenden Einstellungen:
{ "name": "Launch Windows", "type": "go", "request": "attach", "mode": "remote", "remotePath": "path/to/binary", "port": 2345, "host": "target ip address" }
Da ich Visual Studio auf einem Windows-Computer ausführe, wähle ich den Remote-Modus für das Remote-Linux-Ziel.
Wenn Sie nun den Debugger über Visual Studio Code ausführen, suchen die Einstellungen in launch.json nach dem DLV-Debugger/Server auf dem Ziel und hängen ihn an. Platzieren Sie einige Haltepunkte in Ihrem Code, vorzugsweise an einer Stelle, die extern ausgelöst werden kann. Zum Beispiel. Akzeptiert Aufrufe auf dem Server, die durch Client-Aufrufe ausgelöst werden können.
Das obige ist der detaillierte Inhalt vonWie füge ich zum Debuggen mit der Visual Studio Code-IDE eine Verbindung zu einer überkompilierten Go-Binärdatei hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!