knqyf263's blog

自分のためのメモとして残しておくためのブログ。

Goの1.14以前かつChrome 80以上を使っているとgo tool traceが動かない問題

問題

Goにはtrace機能がありgoroutineの実行状況などを可視化出来ます。具体的にはCPUやメモリを計測するときと同じようにpprofを差し込めば使えます。

defer profile.Start(profile.TraceProfile, profile.ProfilePath(".")).Stop()

あとは実行したらtrace.outが出力されるので $ go tool trace trace.out で利用可能です。ですが、自分の環境ではうまく表示されずエラーが出て困っていました。

f:id:knqyf263:20200326010443p:plain

解決策

自分の環境の問題だろうと思っていたのですが、 @orisano 先生に聞いたら同様のエラーが表示されるとのことでした。どうやらChromeがWebComponents V0を廃止したのが原因のようだと@orisano先生が発見しました。

github.com

ということでGo 1.14.1以降を使えば動くようですが、Go 1.14以前かつChrome 80以上だと動かないようです。