go build -gcflags '-N -l' とは何か

Go を触っててデバッグビルドしようと思って調べる。 いたるところで次のようにしろ出てくる。

go build -gcflags '-N -l' ...

で、この -gclags-N-l は何なのか。

-gcflags

コンパイルツールに渡す引数を指定できるフラグ

-gcflags ‘arg list’

arguments to pass on each go tool compile invocation.

ref: go - The Go Programming Language

‘-N -l’

それぞれの意味は次の通り。

  • -N: 最適化オフ
  • -l: インライン化オフ

-N

Disable optimizations.

-l

Disable inlining.

ref: compile - The Go Programming Language