Mozilla rr を使用したデバッグ
Mozilla rr は、アプリケーションの記録、再生、デバッグに使用できるツールです。 Mozilla rr の主なアイデアは、自明ではないバグを見つけるのを手助けすることです。
Mozilla rr は、プログラム全体の実行を記録します。 これは、プログラムが実行を終了したときにのみ、記録されたトレースをデバッグできることを意味します。 サーバーおよびその他の長時間実行アプリケーションの場合、実行中のアプリケーションを終了する必要があります(たとえば、コンソールから SIGTERM シグナルを送信することによって)。 記録後、デバッガーで何度でも実行を再生できます。 Mozilla rr の詳細については、Mozilla rr の 公式サイトを参照してください(英語)。
Debug code with Mozilla rr
Mozilla rr をインストールします。 インストール手順については、 ビルドとインストール(英語)を参照してください。
IntelliJ IDEA でブレークポイントを設定します。 ブレークポイントを設定するには、デバッガーにコードの実行を停止させたいコード行の近くのガターをクリックします。 ブレークポイントの詳細については、 コードのデバッグ および ブレークポイント を参照してください。
ガターの 実行 アイコン(
)をクリックし、 レコードとデバッグ <configuration_name> を選択します。 デバッガー ツールウィンドウでは、コード実行のさまざまな段階における変数、プロセス、スレッドのステータスを確認できます。

記録されたトレースを移動する
に移動します。
トレースディレクトリ フィールドに、トレースディレクトリへのパスを指定します。
OK をクリックします。
デバッガー ツールウィンドウで、 再開 アイコン
をクリックしてプログラムの実行を続行するか、下の 巻き戻し アイコンをクリックして前のブレークポイントまでデバッグセッションを逆方向に実行します。

Collecting Mozilla rr traces
Go ビルド 実行 / デバッグ構成を使用して実行可能ファイルをビルドします。 実行可能ファイルを簡単に見つけるには、 Go ビルド 構成の 出力ディレクトリ フィールドで現在のプロジェクトディレクトリを指定します。
ターミナルを開き、次の Mozilla rr コマンドを実行します:
rr record <path_to_the_application_executable>その結果、Mozilla rr トレースファイルが次のフォルダーに表示されます。 ~/.local/share/rr/<executable_name>

Remote debugging with Mozilla rr
リモートマシンで、 Mozilla rr トレースを収集します。
リモートマシンで、ターミナルを開き、次のコマンドを実行してデバッガーを開始します:
dlv --headless --api-version=2 -l localhost:2345 replay /path/to/trace/dir /path/to/binaryローカルマシンで、 Go リモート 実行 / デバッグ構成を作成します。 Go リモート 構成で、リモートマシンの IP アドレスとポートを指定します。
ローカルマシンで、 Go リモート 実行 / デバッグ構成が構成のリストから選択されていることを確認します。
ローカルマシンで をクリックします。 または、 Shift+F9 を押します。
