1. 程式人生 > >使用 derekparker/delve 除錯 Go 程式

使用 derekparker/delve 除錯 Go 程式

使用 derekparker/delve 除錯 Go 程式

安裝 delve 除錯工具

  1. 通過 go get 下載原始碼
go get -u github.com/derekparker/delve/cmd/dlv
  1. 安裝 dlv-cert 證書

derekparker/delve/scripts 下有 gencert.sh 指令碼,執行它來生成證書。需要輸入使用者密碼。 生成後在 Keychain 中可以看到。

  1. 更新 xcode command-line
xcode-select --install

但是升級後的CommandLineTools 的debug api有變化,目前暫時沒法用相容目前的delve。

  1. 安裝 dlv

解決上面 command-line 的問題。 在delve的目錄:$GOPATH/src/github.com/derekparker/delve 中執行下面的命令:

git remote add aarzilli [email protected]:aarzilli/delve.gitgit pull aarzilli debugserverfixGO15VENDOREXPERIMENT=1 CERT=dlv-cert make install

執行完在 $GOPATH/bin 中就能看到 dlv 了。

使用 VSCode 除錯

首先在 vscode 商店中搜索 Go 外掛。

生成 launch.json 配置

{  "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": "/Users/x/golang"   // 修改 GOPATH 路徑      },      "args": [],      "showLog": true    }  ]}

配置完點選執行按鈕就能直接執行除錯了。

使用 Goland 除錯

主要是需要將 Goland 中的 dlv 進行替換掉,換成 $GOPATH/bin 中的 dlv。

在 Goland 中執行除錯會報錯誤,主要是應該 dlv 安裝的原因。

could not launch process: EOF