Goでどのパッケージが再コンパイル予定か確認する - $shibayu36->blog;の続き。前回は大体のコンパイル計画を知る形だったが、今度は実際にどのpackageがコンパイルされたかを確認する方法についてメモ。
まずgoのコマンドは-x
オプションを使うことで実行されたコマンドをSTDERRに出力できる。これを使ってログをファイルに書き出す。
go test -x -list . ./... 2>log.txt
ログの内容はこんな感じで結構ぐちゃっと入っている。
この中でcompileしているのは/compile -o $WORK/b009/_pkg_.a
みたいなことをしている部分に見えるので、以下のコマンドでコンパイルしたpackageを抜き出す。するとこんな感じで実際にコンパイルしたものがわかる。
$ grep "/compile " log.txt | awk -F'-p ' '{split($2, a, " "); print a[1]}'\n internal/godebugs internal/unsafeheader math/bits internal/coverage/rtcov unicode/utf8 internal/goarch internal/itoa ... google.golang.org/protobuf/internal/flags crypto/internal/boring/sig crypto/subtle runtime/internal/sys google.golang.org/protobuf/internal/set ...
便利ですね。