Mozilla rr でデバッグする
Mozilla rr はプログラムの実行を記録するため、デバッガーで再生し、同じ一連のイベントを複数回調査できます。
記録をデバッグするには、アプリケーションが終了するまで待つか、 デバッグ ツールウィンドウの 記録を停止する をクリックします。 その後、記録された実行を調査し、ブレークポイント間を前後に移動できます。
Debug code with Mozilla rr
Mozilla rr をインストールします。 インストール手順については、 ビルドとインストール(英語)を参照してください。
GoLand でブレークポイントを設定します。 ブレークポイントを設定するには、デバッガーにコードの実行を停止させたいコード行の近くのガターをクリックします。 ブレークポイントの詳細については、 デバッグ と ブレークポイント をご覧ください。
ガターの 実行 アイコン(
)をクリックし、 記録とデバッグ <configuration_name> を選択します。 記録が完了したら、 デバッグ ツールウィンドウで変数とゴルーチンを調査します。
記録されたトレースを移動する
に移動します。
トレースディレクトリ フィールドに、トレースディレクトリへのパスを指定します。
OK をクリックしてください。
デバッグ ツールウィンドウで、 再開 をクリックして次のブレークポイントに進むか、 巻き戻し をクリックして前のブレークポイントに戻ります。
Collecting Mozilla rr traces
アプリケーションディレクトリで、最適化とインライン展開を無効にして実行可能ファイルをビルドします:
go build -gcflags="all=-N -l" -o myApp実行可能ファイルにデバッグ情報を保持します。 デバッガーに必要な情報を削除する
-wや-sなどのリンカーフラグは使用しないでください。ターミナルを開き、次の Mozilla rr コマンドを実行します:
rr record <path_to_the_application_executable>その結果、Mozilla rr のトレースファイルは次のフォルダーに作成されます: ~/.local/share/rr/<executable_name>
Mozilla rr を使用したリモートデバッグ
リモートマシンで、 Mozilla rr トレースを収集します。
リモートマシンで、ループバックリスナーを使用して Delve を起動します:
dlv --headless --api-version=2 --listen=127.0.0.1:2345 replay /path/to/trace/dir/path/to/trace/dir を記録されたトレースディレクトリに置き換えます。
ローカルマシンで、SSH 経由でデバッガーポートを転送します:
ssh -N -L 2345:127.0.0.1:2345 user@remote-hostユーザーとremote-hostを SSH ユーザー名とリモートコンピューターのアドレスに置き換えます。 デバッグ中は接続を開いたままにします。 Delve 接続は認証されません。デバッガーポートは非公開にしてください。ローカルマシンで、 Go リモート 実行 / デバッグ構成を作成します。 ホスト を
127.0.0.1に、 ポート を2345に設定します。 実行/デバッグ構成の作成の詳細については、 実行/デバッグ構成を作成するを参照してください。ローカルマシンで、 Go リモート 実行 / デバッグ構成が構成のリストから選択されていることを確認します。
ローカルマシンで をクリックします。 または、「Shift+F9 」を押します。