Open4
Goのバイナリをデバッグ実行したい
delveの使い方
デバッグ対象のバイナリを用意
デバッグする際に、なるべく最適化しないようにオプションを渡して制御する。
ref: https://go.dev/doc/gdb
The code generated by the gc compiler includes inlining of function invocations and registerization of variables. These optimizations can sometimes make debugging with gdb harder. If you find that you need to disable these optimizations, build your program using go build -gcflags=all="-N -l".
go build -gcflags="all=-N -l" -o myprogram main.go
-
all=-N
: 最適化を無効化 -
all=-l
: インライン展開を無効化
また、-ldflags=-w
オプションはつけないこと。
これはバイナリからデバッグ情報を除去するオプションであるため。
Pass the '-w' flag to the linker to omit the debug information (for example, go build -ldflags=-w prog.go).