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

如何在 VSCode 中為特定 .go 檔案建立調試配置?

王林
發布: 2024-02-10 18:42:08
轉載
1046 人瀏覽過

如何在 VSCode 中为特定 .go 文件创建调试配置?

在使用 VSCode 進行 Go 語言開發時,我們經常需要進行偵錯以解決問題。然而,對於特定的 .go 文件,我們可能需要建立自訂的偵錯配置。那麼,如何在 VSCode 中為特定 .go 檔案建立偵錯配置呢?在本文中,php小編柚子將為您詳細介紹特定步驟和注意事項,幫助您輕鬆實現這一目標。無論您是初學者還是有經驗的開發者,本文都將為您提供有價值的指導。讓我們開始吧!

問題內容

目前,必須先在編輯器中聚焦.go檔案進行偵錯,然後按F5鍵開始偵錯。

我想要的是能夠按 F5 開始調試,但不必先在編輯器中關注 main.go

這是VSCode產生的庫存配置,F5之前必須注意.go檔:

{
        "name": "Launch Package",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        "program": "${fileDirname}",
    }
登入後複製

嘗試指定 programcwd 以使其滿意:

{
        "name": "Launch Package",
        "type": "go",
        "request": "launch",
        "mode": "auto",
        "program": "${workspaceFolder}/cmd/sym_dump/main.go",
        "cwd": "${workspaceFolder}/cmd/sym_dump",
    }
登入後複製

但這不起作用,它抱怨未找到函數:

Starting: C:\Users\aybe\go\bin\dlv.exe dap --listen=127.0.0.1:49541 from C:\GitHub\psx_mnd_sym/cmd/sym_dump
DAP server listening at: 127.0.0.1:49541
Build Error: go build -o C:\GitHub\psx_mnd_sym\cmd\sym_dump\__debug_bin2780105186.exe -gcflags all=-N -l .\main.go
# command-line-arguments
.\main.go:340:13: undefined: dumpTypes
.\main.go:344:14: undefined: dumpSourceFiles
.\main.go:348:14: undefined: dumpDecls
.\main.go:357:13: undefined: dumpTypes
.\main.go:365:13: undefined: dumpIDAScripts
.\main.go:380:13: undefined: dumpTypes (exit status 1)
登入後複製

實際函數位於與 program 同一目錄下的另一個 .go 檔案中。

這兩個檔案都在其頂部指定了 package main

在這種情況下,如何為特定的 .go 檔案建立偵錯配置?

解決方法

program 屬性指定為目錄:

{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Launch Package",
      "type": "go",
      "request": "launch",
      "mode": "auto",
      "program": "${workspaceFolder}/cmd/sym_dump"
    }
  ]
}
登入後複製

${fileDirname}目前開啟檔案的資料夾路徑。預設Launch Package 範本使用${fileDirname} 而不是${file} (由Launch file 範本使用)是有原因的。

讓我們看看文件 首先對 dlv debug

關於package的資訊並不多。讓我們轉向 go rundoc

如果我們將program 屬性指定為${workspaceFolder}/cmd/sym_dump/main.go,則表示該套件包含單一檔案(main.go)。但事實是該套件包含另一個定義 dumpTypesdumpSourceFiles 等的檔案。這就是它無法建立程式的原因。

順便說一句,因為「如果cwd 被省略或為空,則程式資料夾將用作工作目錄」(請參閱 Launch.json 屬性),因此您不需要設定cwd 屬性。

以上是如何在 VSCode 中為特定 .go 檔案建立調試配置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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