在使用 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}", }
嘗試指定 program
和 cwd
以使其滿意:
{ "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 run
的 doc:
如果我們將program
屬性指定為${workspaceFolder}/cmd/sym_dump/main.go
,則表示該套件包含單一檔案(main.go
)。但事實是該套件包含另一個定義 dumpTypes
、dumpSourceFiles
等的檔案。這就是它無法建立程式的原因。
順便說一句,因為「如果cwd 被省略或為空,則程式資料夾將用作工作目錄」(請參閱 Launch.json 屬性),因此您不需要設定cwd
屬性。
以上是如何在 VSCode 中為特定 .go 檔案建立調試配置?的詳細內容。更多資訊請關注PHP中文網其他相關文章!