Golang でリモートデバッグをしたいが接続が確立されない
WSL 上の Golang のソースを VSCode からデバッグしようと思い環境構築していましたが、WSL上で dlv が期待した動作をしてくれませんでした。間違っている箇所を教えてください。
概要
Golangでリモートデバッグをする環境を構築するために delve を使用してローカル環境に対してローカル環境からリモートデバッグをしてみたが、対話シェルが起動しない
環境
windows 10 WSL Ubuntu
Golang 1.11.5
dlv go get -u github.com/go-delve/delve/cmd/dlv
で入る最新
やったこと
テスト用のコードを作った
# テストするためのソースコードを置くディレクトリを作成する
mkdir debugtest
cd debugtest
vi main.go
main.goの中身
package main
import "fmt"
func main() {
fmt.Println("hello world")
}
dlv サーバー側を起動
dlv debug -l 0.0.0.0:2345 --headless --log
dlv クライアントを別の端末から起動
dlv connect 127.0.0.1:2345
結果としてクライアント端末標準出力になにも表示しませんでした。
引数が間違っているのかと思いいろいろ試してみましたが状況は変わりませんでした。
# ex.
dlv debug ./main.go -l 0.0.0.0:2345 --headless --log
dlv debug -l 127.0.0.1:2345 --headless --log
dlv debug -l 0.0.0.0:2345 --headless --log
dlv debug -l=":2345" --headless --log
サーバー側がctrl+c等で終了しないのでハングアップしてる可能性もありそうです。
期待する動作
cliが起動する
$ dlv connect 127.0.0.1:2345
(dlv)
参考
https://github.com/Microsoft/vscode-go/wiki/Debugging-Go-code-using-VS-Code
https://github.com/go-delve/delve/blob/master/Documentation/usage/dlv_debug.md
https://budougumi0617.github.io/2018/04/08/debug-by-delve/
備考
あくまで WSL 上で dlv のリモートデバッグをする方法が知りたいです。
Mac つかうとか WSL 諦めて Docker 使うとか一旦代案はなしでお願いしたいです。