Windows配置Delve的測試環境

醉曦 發表於 2020-07-10

引言

自己最近在玩Go,在開發一些專案的時候需要除錯,由於之前都是在GoLand上寫的,但是這個IDE啟動太慢並且不輕便。並且自己之前很多專案都是在Vscode中編寫的,所以特意想在Vscode中配置Go的開發環境和除錯環境,由於在安裝的過程中遇到了不少的問題,希望在此給自己留一個筆記,以便未來不再犯類似的錯誤

dlv的安裝

dlv相關網址

在這裡給出dlv的下載地址dlv github Link, 在這個網站上有對這個工具的詳細介紹,並且有著對應的文件可以參考。

其中dlv的安裝可以分成Linux、MacOS、Windows三個方向,自己用的是Windows,所以在這給出Windows下安裝的方法,這裡是Windows安裝的方法Windows 安裝dlv方法

dlv的安裝步驟

安裝dlv之前確認自己已經安裝好了GoLang並且配置好了GOROOTGOPATH兩個環境變數

  1. 開啟cmd視窗輸入命令go get github.com/derekparker/delve/cmd/dlv,等待幾分鐘,當下載完成之後可以切換到目錄裡GOPATH檢視;

  2. 在cmd視窗種輸入命令cd %GOPATH%,進入對應的目錄資料夾裡面

  3. 在src目錄裡找到dlv所在路徑並且切換過去,最終進入 _scripts這個目錄裡面,開始編譯安裝

  4. 按順序分別執行以下命令:

    go run make.go check-cert
    go run make.go build
    go run make.go install
    
  5. 執行完成之後,在cmd視窗中輸入dlv後你會得到以下資訊,說明dlv安裝成功

Delve is a source level debugger for Go programs.

Delve enables you to interact with your program by controlling the execution of the process,
evaluating variables, and providing information of thread / goroutine state, CPU register state and more.

The goal of this tool is to provide a simple yet powerful interface for debugging Go programs.

Pass flags to the program you are debugging using `--`, for example:

`dlv exec ./hello -- server --config conf/config.toml`

Usage:
  dlv [command]

Available Commands:
  attach      Attach to running process and begin debugging.
  connect     Connect to a headless debug server.
  core        Examine a core dump.
  dap         [EXPERIMENTAL] Starts a TCP server communicating via Debug Adaptor Protocol (DAP).
  debug       Compile and begin debugging main package in current directory, or the package specified.
  exec        Execute a precompiled binary, and begin a debug session.
  help        Help about any command
  run         Deprecated command. Use 'debug' instead.
  test        Compile test binary and begin debugging program.
  trace       Compile and begin tracing program.
  version     Prints version.

Flags:
      --accept-multiclient   Allows a headless server to accept multiple client connections.
      --api-version int      Selects API version when headless. New clients should use v2. Can be reset via RPCServer.SetApiVersion. See Documentation/api/json-rpc/README.md. (default 1)
      --backend string       Backend selection (see 'dlv help backend'). (default "default")
      --build-flags string   Build flags, to be passed to the compiler.
      --check-go-version     Checks that the version of Go in use is compatible with Delve. (default true)
      --headless             Run debug server only, in headless mode.
      --init string          Init file, executed by the terminal client.
  -l, --listen string        Debugging server listen address. (default "127.0.0.1:0")
      --log                  Enable debugging server logging.
      --log-dest string      Writes logs to the specified file or file descriptor (see 'dlv help log').
      --log-output string    Comma separated list of components that should produce debug output (see 'dlv help log')
      --only-same-user       Only connections from the same user that started this instance of Delve are allowed to connect. (default true)
      --wd string            Working directory for running the program. (default ".")

Additional help topics:
  dlv backend Help about the --backend flag.
  dlv log     Help about logging flags.

Use "dlv [command] --help" for more information about a command.

參考文件

  1. https://stackoverflow.com/questions/39058823/how-to-use-delve-debugger-in-visual-studio-code
  2. https://github.com/derekparker/delve/
  3. https://github.com/golang/vscode-go
  4. https://juejin.im/entry/5e69a2276fb9a07cd11db163