我正在使用 Visual Studio Code 作為基於 golang 的應用程式的 ide。該應用程式將在 Linux 目標上運行。我想將 VSC 偵錯器附加到這個交叉編譯的二進位。此二進位檔案可以針對arm 或x86 平台進行編譯。我知道 launch.json 檔案可以實現這一點,但我從未使用過它。請幫忙。
偵錯器dlv用於偵錯go程式碼。 Delve 或 dlv 有一個限制,它只能附加到 64 位元架構的二進位。因此,我為 64 位元 amd 架構編譯了程式碼,並在我的 Linux 機器上運行。接下來,我取得了二進位檔案的進程 ID 並附加了深入研究。我為 delve 伺服器使用了連接埠 2345
dlv Attach some_process_id --listen=:2345 --headless --api-version=2 --log
您可能還需要在 sudo 權限下啟用/更改 Linux 目標上的偵錯等級。
cat 0 > /proc/sys/kernel/yama/ptrace_scope
在 Visual Studio Code IDE 上建立一個包含以下設定的 launch.json:
{ "name": "Launch Windows", "type": "go", "request": "attach", "mode": "remote", "remotePath": "path/to/binary", "port": 2345, "host": "target ip address" }
由於我是從 Windows 電腦執行 Visual Studio,因此我選擇遠端 Linux 目標的遠端模式。
現在從 Visual Studio Code 運行偵錯器,launch.json 中的設定將在目標上找到 dlv 偵錯器/伺服器並附加到它。在程式碼中放置一些斷點,最好是在可以外部觸發的地方。例如。在伺服器上接受可以從客戶端呼叫觸發的呼叫。
以上是如何使用 Visual Studio Code IDE 附加到交叉編譯的 go 二進位檔案以進行偵錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!