詳解VSCode中如何調試Golang工程

本篇文章給大家介紹一下使用vscode調試golang工程的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。

詳解VSCode中如何調試Golang工程

推薦學習:《vscode

關鍵字

  • 最簡單的調試攻略
  • 多項目調試, 適用個人開發和項目開發
  • 無需修改系統環境變量

準備vscode

在官網下載最新版的VSCode:

visual studio Code – Code Editing. Redefined**

立即學習go語言免費學習筆記(深入)”;

安裝golang插件

  • 打開擴展面板 VSCode->查看->擴展
  • 找到Go插件 在搜索框里輸入Go, 找到第二行寫有 Rich Go language support for visual studio code的插件, 點擊安裝 注意不是排名最高的
  • 重啟編輯器

配置啟動項

  • 打開調試面板 VSCode->查看->調試
  • 添加調試目標 在”沒有調試”的下拉框中點擊”添加配置..”
  • 添加目標調試配置

例子:

?{?????"version":?"0.2.0",?????"configurations":?[?????????{?????????????"name":?"Launch",?????????????"type":?"go",?????????????"request":?"launch",?????????????"mode":?"debug",?????????????"remotePath":?"",?????????????"port":?2345,?????????????"host":?"127.0.0.1",?????????????"program":?"${fileDirname}",?????????????"env":?{?????????????????"GOPATH":"D:/Develop/vscodegolang"?????????????},?????????????"args":?[],?????????????"showLog":?true?????????}?????]?}

其中: “port”, “host”都是go插件自動生成的

“env”為設置環境變量, 設置為你的工程目錄就可以(包含bin, src的文件夾)

準備調試插件

此時找到main.go按F5, 會報錯提示:

Failded?to?continue:"Cannot?find?Delve?debugger.?Install?from?https://github.com/derekparker/delve?&?ensure?it?is?in?your?"GOPATH/bin"?or?"PATH"

我們使用go命令行編譯調試器

go?get?github.com/derekparker/delve/cmd/dlv

將dlv調試器放在GOPATH(工程目錄)的bin目錄下

開始調試

選中要調試的main.go, 點擊F5, 既可以開始調試

調試快捷鍵和Visual Studio系一致

  • F9 切換斷點
  • F10 Step over
  • F11 Step in
  • Shift+F11 Step out

注意點

  • 某些結構體成員無法直接顯示時, 可以直接選中變量名, 添加到監視, 或者右鍵點擊: “調試:求值”

多項目調試

在launch.json中可以添加多組調試入口, 通過調試面板中選中對應的配置開啟不同目標的調試

{ ????"version":?"0.2.0", ????"configurations":?[ ????????{ ????????????"name":?"client", ????????????"type":?"go", ????????????"request":?"launch", ????????????"mode":?"debug", ????????????"remotePath":?"", ????????????"port":?2345, ????????????"host":?"127.0.0.1", ????????????"program":?"${fileDirname}", ????????????"env":?{ ????????????????"GOPATH":"D:/Develop/vscodegolang" ????????????}, ????????????"args":?[], ????????????"showLog":?true ????????},  ????????{ ????????????"name":?"server", ????????????"type":?"go", ????????????"request":?"launch", ????????????"mode":?"debug", ????????????"remotePath":?"", ????????????"port":?2345, ????????????"host":?"127.0.0.1", ????????????"program":?"${workspaceRoot}/src/server", ????????????"env":?{ ????????????????"GOPATH":"D:/Develop/vscodegolang" ????????????}, ????????????"args":?[], ????????????"showLog":?true ????????} ????] }

“program”中的”${fileDirname}”是以當前選中文件作為啟動點

更建議使用”program”的”${workspaceRoot}”, 以包名作為啟動點的方式進行配置

更多編程相關知識,請訪問:vscode!!

? 版權聲明
THE END
喜歡就支持一下吧
點贊5 分享