KDOC 124: go-dlv.elを使う

この文書のステータス

  • 作成
    • 2024-03-16 貴島
  • レビュー
    • 2024-04-03 貴島

go-dlv.el

Goのデバッガでdelveをよく使う。

Emacs上でこのdelveを扱いやすくするためのラッパーパッケージgo-dlv.elがある。 (dlv-current-func) を実行してカーソル上の関数をデバッグ実行できる。

同じようなラッパーには dap-mode を使う方法もあるのだが、EmacsっぽくないUIなので、go-dlv.elの方が好み。

(dlv) Breakpoint 1 set at 0x78e853 for main.main() ./snippet.go:27
(dlv) > main.main() ./snippet.go:27 (hits goroutine(1):1 total:1) (PC: 0x78e853)
    22:		if err != nil {
    23:			log.Fatal(err)
    24:		}
    25:	}
    26:
=>  27:	func main() {
    28:		http.HandleFunc("/hello", helloHandler)
    29:		fmt.Println("Server Start Up........")
    30:		log.Fatal(http.ListenAndServe("localhost:8080", nil))
    31:	}
(dlv) n
> main.main() ./snippet.go:28 (PC: 0x78e85a)
    23:			log.Fatal(err)
    24:		}
    25:	}
    26:
    27:	func main() {
=>  28:		http.HandleFunc("/hello", helloHandler)
    29:		fmt.Println("Server Start Up........")
    30:		log.Fatal(http.ListenAndServe("localhost:8080", nil))
    31:	}
(dlv)

関連