デバッグウィンドウ
デバッガーセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ(フレーム、スレッド、変数など)を表示して分析し、さまざまなデバッガーアクションを実行します。
これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。
ツールウィンドウのタブを切り替えるには、Alt+Right と Alt+Left を押します。
![JetBrains Rider: デバッグウィンドウ JetBrains Rider: Debug window](https://resources.jetbrains.com/help/img/rider/2024.1/rider_debug_window.png)
セッション
複数のデバッグセッションを同時に実行すると、それらはデバッグツールウィンドウの上部にあるタブに分割されます。
![デバッグウィンドウのセッションタブ Session tabs in the Debug window](https://resources.jetbrains.com/help/img/rider/2024.1/rdr_debug_session_tabs.png)
特定の実行 / デバッグ構成に対してサービスウィンドウを有効にすると、これらの構成のいずれかをデバッグするときに、デバッグウィンドウの全体ビューがサービスウィンドウ内に表示されます。
![サービスウィンドウ内のデバッグウィンドウ Debug window inside Services window](https://resources.jetbrains.com/help/img/rider/2024.1/services_window_with_debugger.png)
インライン変数値や実行ポイントなどのすべての情報が、選択したセッションタブに表示されます。これは、同じコードを使用する複数のデバッグセッションを並行して実行する場合に重要です。
タブ
デバッグツールウィンドウには、セッションごとに次のタブが表示されます。
コンソール: プログラム出力を表示します。
ローカルセッションの場合、このタブは、デバッガーを接続せずにプログラムを実行した場合と同じように機能します。
プロセスにアタッチすると、プログラム出力はリダイレクトされず、デバッガー出力のみがデバッガーコンソールに表示されます。
デバッグ出力: たとえば
Debug.WriteLine()
メソッドを使用して、アプリケーションからデバッグ出力に送信されたメッセージを表示します。並列スタック : ダイアグラム上のスレッドとそのスタックフレームを表示します。
デバッガー: 中断されたプログラムの現在の実行ポイントでオブジェクトの状態を調べることができます。
タブは次のペインに分かれています。
メモリ : ヒープ上で現在使用可能なオブジェクトに関する情報を提供し、それらのライフタイムを監視および分析できます。
タブを表示 / 隠す
をクリックして、表示するタブを選択します。
デフォルトレイアウトを復元する
デバッグツールウィンドウのレイアウトを変更し、新しい配置が気に入らない場合は、デフォルトの状態に戻すことができます。
デバッグツールウィンドウの右上隅にある
をクリックしてから、デフォルトレイアウトの復元をクリックします。
デバッグツールバー
選択したタブに関係なく、ウィンドウの左側にある次のツールバーコントロールをいつでも使用できます。
項目 | ツールチップとショートカット | 説明 |
---|---|---|
| 再実行 Ctrl+F5 | 現在のアプリケーションを停止してもう一度実行するには、このボタンをクリックします。 |
| 再開 F9 | アプリケーションが一時停止している場合は、このボタンをクリックしてプログラムの実行を再開します。 |
| 一時停止 Ctrl+Pause | プログラムの実行を一時停止するには、このボタンをクリックします。 |
| 停止 Ctrl+F2 | このボタンをクリックして、現在のプロセスを終了します。 |
| ブレークポイントの表示 Ctrl+Shift+F8 | このボタンをクリックすると、ブレークポイントの動作を設定できるブレークポイントダイアログが開きます。 |
| ブレークポイントのミュート | ブレークポイントの状態を切り替えるには、このボタンを使用します。 プロジェクト内のすべてのブレークポイントを一時的にミュートして、ブレークポイントで停止せずにプログラムを実行できます。 |
| デバッガー設定 | 次のオプションを含むメニューを開きます。
|
| タブをピン留め | 現在のタブを固定または固定解除するには、このボタンをクリックします。このウィンドウで最大数のタブに達したときにタブが自動的に閉じないようにするには、タブを固定する必要があります。 |
項目 | ツールチップとショートカット | 説明 |
---|---|---|
| 再実行 Ctrl+F5 | 現在のアプリケーションを停止してもう一度実行するには、このボタンをクリックします。 |
| 再開 F9 | アプリケーションが一時停止している場合は、このボタンをクリックしてプログラムの実行を再開します。 |
| 一時停止 Ctrl+Pause | プログラムの実行を一時停止するには、このボタンをクリックします。 |
| 停止 Ctrl+F2 | このボタンをクリックして、現在のプロセスを終了します。 |
| ブレークポイントの表示 Ctrl+Shift+F8 | このボタンをクリックすると、ブレークポイントの動作を設定できるブレークポイントダイアログが開きます。 |
| ブレークポイントのミュート | ブレークポイントの状態を切り替えるには、このボタンを使用します。 ブレークポイントで停止せずにプログラムを実行するには、プロジェクト内のすべてのブレークポイントを一時的にミュートすることができます。 |
| 設定 | このボタンをクリックして、次のオプションのメニューを開きます。
|
| タブをピン留め | 現在のタブを固定または固定解除するには、このボタンをクリックします。このウィンドウで最大数のタブに達したときにタブが自動的に閉じないようにするには、タブを固定する必要があります。 |
ステップツールバー
項目 | ツールチップとショートカット | 説明 |
---|---|---|
| 実行ポイントの表示 Alt+F10 | このボタンをクリックすると、エディターで現在の実行ポイントがハイライトされ、対応するスタックフレームがフレームペインに表示されます。 |
| カーソルにスキップ Ctrl+Alt+Shift+F9 | ターゲットステートメントまでプログラムを実行する代わりに、実際に実行せずにコードの一部をスキップすることもできます(たとえば、既知のバグを回避したり、ルーチンを繰り返さないようにするため)。これは、実行メニューおよびデバッグウィンドウでも使用可能なカーソルにスキップ 実行ポインタ ![]() 対象のステートメントにマウスを移動して、対応するアクションを選択することもできます。 ![]() 別のステートメントに移動するときは、次のことに注意してください。
|
| ステップオーバー F8 | このボタンをクリックすると、現在のメソッドまたはファイルの次の行までプログラムが実行され、現在の実行ポイント(存在する場合)で参照されているメソッドはスキップされます。現在の行がメソッド内の最後の行である場合、このメソッドの直後に実行された行へのステップが実行されます。 |
| 強制ステップオーバー Alt+Shift+F8 | このメソッドがブレークポイントを内部に持っていても、このボタンをクリックするとデバッガーがメソッドにステップインします。 |
| ステップイン F7 | デバッガーを現在の実行ポイントで呼び出されたメソッドにステップインさせるには、このボタンをクリックします。 デバッガーは、現在の行から呼び出される最初の関数の最初のステートメントに実行ポインターを設定します。関数が呼び出されない場合、デバッガーは次のステートメントに進みます。 デフォルトでは、JetBrains Rider は外部ソースのデバッグを有効にします。これは、ライブラリコードにステップインすると、自動的に逆コンパイルされ、デバッガーが実行ポイントをそこに移動することを意味します。 デバッガーにライブラリコードを無視させたい場合は、外部ソースのデバッグを無効にすることができます。JetBrains Rider 設定 Ctrl+Alt+S の外部ソースデバッグを有効にするをクリアします。 ページで |
| スマートステップイン Shift+F7 | 現在の行にネストされたコールが複数含まれている場合、JetBrains Rider ではステップインするコールを選択できます。次のコード行を考えてみましょう。 Console.WriteLine(Foo(Bar("input") + Baz("input"))); この行にはいくつかの呼び出しが含まれています。ステップインを使用すると、デバッガーはまず ![]() ステップインする関数を選択すると、デバッガーは選択した関数の最初のステートメントに実行ポインターを設定します。 セレクターは、どの呼び出しがすでに実行されたかを示し、これらの呼び出しを再度実行できるようにします。 複数のメソッド呼び出しを含む行でステップイン F7 を呼び出すときに、「スマートステップイン」動作を有効にすることができます。これを行うには、設定 Ctrl+Alt+S のビルド、実行、デプロイ | デバッガー | ステップページで常にスマートステップインするを選択します。 |
| ステップアウト Shift+F8 | このボタンをクリックすると、デバッガーが現在のメソッドから抜け出し、直後に実行される行に移動します。 |
| カーソル位置まで実行 Alt+F9 | このボタンをクリックしてプログラムの実行を再開し、実行ポイントがエディターの現在のキャレット位置の行に到達するまで一時停止します。ブレークポイントは必要ありません。実際には、キャレットの現在行に一時的なブレークポイントが設定されていますが、プログラムの実行が一時停止されると削除されます。キャレットがすでに実行されている行に配置されている場合、以前のブレークポイントにロールバックする方法がないため、プログラムはさらに実行するために再開されるだけです。このアクションは、メソッドシーケンスの奥深くまでステップアップし、複数のメソッドを一度にステップアウトする必要がある場合に特に便利です。 指定された行に移動する前に実行する必要がある行にブレークポイントが設定されている場合、デバッガーは最初に検出されたブレークポイントで一時停止します。 対象のステートメントにマウスを移動して、対応するアクションを選択することもできます。 ![]() |
| ノンストップカーソルまで実行 Ctrl+Alt+F9 | 現在の実行ポイントとターゲットステートメントの間にブレークポイントがある場合、ノンストップカーソルまで実行 |
| 式の評価 Alt+F8 | このボタンをクリックして、式を評価します。 |
項目 | ツールチップとショートカット | 説明 |
---|---|---|
| 実行ポイントの表示 Alt+F10 | このボタンをクリックすると、エディターで現在の実行ポイントがハイライトされ、対応するスタックフレームがフレームペインに表示されます。 |
| カーソルにスキップ Ctrl+Alt+Shift+F9 | ターゲットステートメントまでプログラムを実行する代わりに、実際に実行せずにコードの一部をスキップすることもできます(たとえば、既知のバグを回避したり、ルーチンを繰り返さないようにするため)。これは、実行メニューおよびデバッグウィンドウでも使用可能なカーソルにスキップ 実行ポインタ ![]() 対象のステートメントにマウスを移動して、対応するアクションを選択することもできます。 ![]() 別のステートメントに移動するときは、次のことに注意してください。
|
| ステップオーバー F8 | このボタンをクリックすると、現在のメソッドまたはファイルの次の行までプログラムが実行され、現在の実行ポイント(存在する場合)で参照されているメソッドはスキップされます。現在の行がメソッド内の最後の行である場合、このメソッドの直後に実行された行へのステップが実行されます。 |
| 強制ステップオーバー Alt+Shift+F8 | このメソッドがブレークポイントを内部に持っていても、このボタンをクリックするとデバッガーがメソッドにステップインします。 |
| ステップイン F7 | デバッガーを現在の実行ポイントで呼び出されたメソッドにステップインさせるには、このボタンをクリックします。 デバッガーは、現在の行から呼び出される最初の関数の最初のステートメントに実行ポインターを設定します。関数が呼び出されない場合、デバッガーは次のステートメントに進みます。 デフォルトでは、JetBrains Rider は外部ソースのデバッグを有効にします。これは、ライブラリコードにステップインすると、自動的に逆コンパイルされ、デバッガーが実行ポイントをそこに移動することを意味します。 デバッガーにライブラリコードを無視させたい場合は、外部ソースのデバッグを無効にすることができます。JetBrains Rider 設定 Ctrl+Alt+S の外部ソースデバッグを有効にするをクリアします。 ページで |
| スマートステップイン Shift+F7 | 現在の行にネストされたコールが複数含まれている場合、JetBrains Rider ではステップインするコールを選択できます。次のコード行を考えてみましょう。 Console.WriteLine(Foo(Bar("input") + Baz("input"))); この行にはいくつかの呼び出しが含まれています。ステップインを使用すると、デバッガーはまず ![]() ステップインする関数を選択すると、デバッガーは選択した関数の最初のステートメントに実行ポインターを設定します。 セレクターは、どの呼び出しがすでに実行されたかを示し、これらの呼び出しを再度実行できるようにします。 複数のメソッド呼び出しを含む行でステップイン F7 を呼び出すときに、「スマートステップイン」動作を有効にすることができます。これを行うには、設定 Ctrl+Alt+S のビルド、実行、デプロイ | デバッガー | ステップページで常にスマートステップインするを選択します。 |
| ステップアウト Shift+F8 | このボタンをクリックすると、デバッガーが現在のメソッドから抜け出し、直後に実行される行に移動します。 |
| カーソル位置まで実行 Alt+F9 | このボタンをクリックすると、プログラム実行を再開し、実行ポイントがエディターの現在のカーソル位置の行に達するまで一時停止します。ブレークポイントは必要ありません。実際には、プログラムの実行が一時停止されると削除されるキャレットの現在の行に一時的なブレークポイントが設定されています。すでに実行されている行にキャレットが配置されている場合は、前のブレークポイントにロールバックする方法がないため、プログラムはその後の実行のために再開されます。このアクションは、メソッドのシーケンスを詳しく調べて、一度にいくつかのメソッドを終了する必要がある場合に特に便利です。 指定された行に移動する前に実行する必要がある行にブレークポイントが設定されている場合、デバッガーは最初に検出されたブレークポイントで一時停止します。 対象のステートメントにマウスを移動して、対応するアクションを選択することもできます。 ![]() |
| ノンストップカーソルまで実行 Ctrl+Alt+F9 | 現在の実行ポイントとターゲットステートメントの間にブレークポイントがある場合、ノンストップカーソルまで実行 |
| 式の評価 Alt+F8 | このボタンをクリックして、式を評価します。 |
関連ページ:
![](https://resources.jetbrains.com/help/img/rider/2024.1/jit-selection.png)
開始、一時停止、再開、停止
プロセス(アプリケーション、単体テスト、静的メソッド、または実行可能構成を持つもの)をデバッグするには、接続されたデバッガーでこのプロセスを実行する必要があります。デバッグセッションを開始する:デバッグセッションを開始するには、いくつかのオプションがあります。IDE からソースコードを開始できる場合は、を押すか、ツールバーのデバッグをクリックします。このようにして、現在選択されている実行 / デバッグ構成を、接続されているデバッガー(デバッグモード)で起動します。アプリケーションがすでに実行...
![](https://resources.jetbrains.com/help/img/rider/2024.1/tool_window_bar_and_buttons_new_ui.png)
ツールウィンドウ
ツールウィンドウは、開発タスクへのアクセスを提供します。ソリューション構造の表示、アプリケーションの実行とデバッグ、バージョン管理システムやその他の外部ツールとの統合、コード分析、検索、ナビゲーションなどです。デフォルトでは、ツールウィンドウはメインウィンドウの下部と側面に接続されています。ただし、別のモニターなどで別のウィンドウとして使用するために、再配置したり、切り離したりすることもできます。一部のツールウィンドウは常に使用可能であり (たとえば、エクスプローラーおよび構造)、一部は特定のプ...
![](https://resources.jetbrains.com/help/img/rider/2024.1/debug_frames_pane.png)
中断されたプログラムを調べる
フレームを分析することで、中断されたアプリケーションの状態を調べることができます。コードがデバッグモードで実行されている場合、それを一時停止するには 2 つの方法があります。検査するコード内のブレークポイントの設定で、いずれかがヒットするまで待機します。でプログラムの実行を中断します。デバッガーは、一時停止した瞬間に実行中のステートメントを終了し、次に実行する必要のあるステートメントで停止します。一時停止状態では、現在の実行ポイント(次に実行されるステートメント)は、エディターの左側のガターにあ...
![](https://resources.jetbrains.com/help/img/rider/2024.1/debug_parallel_stacks.png)
マルチスレッドアプリケーションのデバッグ
マルチスレッドアプリケーションは、一度に複数のスレッドを追跡する必要があるため、デバッグは常に困難です。さらに、マルチスレッドアプリケーションでは、不均一なワークロード分散、ロック競合、シリアライズされた実行などの新しいタイプのバグやパフォーマンスの問題が発生します。デバッグセッションのステップ実行から得られるシーケンシャルフローのような錯覚は、マルチスレッドアプリのデバッグ中は役に立たず、誤解を招く可能性があります。同時実行のバグとなる可能性のある問題を調査する場合は、逐次ステップではなくブレ...
![](https://resources.jetbrains.com/help/img/rider/2024.1/debug_variables_changed_value.png)
変数の値とオブジェクトを調べる
プログラムが中断されると、現在選択されているフレームのコンテキストで変数と引数を調べることができます。それらの値を表示して、その場で編集できます。コンテキストを変更するには、フレームペインで別のフレームを選択してください。変数値を表示する:変数値を表示する方法はいくつかあります。変数ペイン変数値を調べるデフォルトの方法は、デバッグウィンドウの変数ペインを使用することです。変数が複合型の場合、ペイン内の対応するノードを展開して、変数に含まれる値を表示できることに注意してください。場合によっては、
![](https://pleiades.io/icons/rider.png)
変数と式を監視する
現在のフレームのコンテキストで多数の変数または式を評価し、すべて同時に表示し、プログラムをステップ実行しながらそれらの値の変化を追跡する場合は、それらの監視を作成できます。監視対象の変数と式の値は、アプリケーションがデバッグセッション中に中断され、関連するすべての変数が現在のスコープでアクセスできる場合にのみ表示されます。評価された式とは異なり、ウォッチはソリューションの一部として保存され、後続のデバッグセッションで評価されます。追加したすべての監視は、デバッグウィンドウの変数ペインの上部に表示...