首頁 > 後端開發 > Golang > 主體

如何使用 Visual Studio Code IDE 附加到交叉編譯的 go 二進位檔案以進行偵錯?

WBOY
發布: 2024-02-08 20:53:53
轉載
849 人瀏覽過

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

問題內容

我正在使用 Visual Studio Code 作為基於 golang 的應用程式的 ide。該應用程式將在 Linux 目標上運行。我想將 VSC 偵錯器附加到這個交叉編譯的二進位。此二進位檔案可以針對arm 或x86 平台進行編譯。我知道 launch.json 檔案可以實現這一點,但我從未使用過它。請幫忙。


正確答案


偵錯器dlv用於偵錯go程式碼。 Delvedlv 有一個限制,它只能附加到 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中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!