Heim >Backend-Entwicklung >Golang >Wie füge ich zum Debuggen mit der Visual Studio Code-IDE eine Verbindung zu einer überkompilierten Go-Binärdatei hinzu?

Wie füge ich zum Debuggen mit der Visual Studio Code-IDE eine Verbindung zu einer überkompilierten Go-Binärdatei hinzu?

WBOY
WBOYnach vorne
2024-02-08 20:53:53905Durchsuche

如何使用 Visual Studio Code IDE 附加到交叉编译的 go 二进制文件以进行调试?

Frageninhalt

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.


Richtige Antwort


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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen