コードをステップスルーする
中断されたプログラムでは、プログラムの実行を制御できます。 プログラムをステップ実行することで、実行ポイントを目的のコードに進め、 このポイントでプログラムの状態を調べることができます。
コードがデバッグモードで実行されている場合、それを一時停止するには 2 つの方法があります。
検査するコード内の ブレークポイントの設定で、いずれかがヒットするまで待機します。
Ctrl+D, P でプログラムの実行を中断します。 デバッガーは、一時停止した瞬間に実行中のステートメントを終了し、次に実行する必要のあるステートメントで停止します。
一時停止状態では、 現在の実行ポイント (次に実行されるステートメント)は、エディターの左側のガターにある黄色の実行ポインター
でマークされます。 現在の実行ポイントをすばやく見つけるには、 Alt+F10 を押すか、 デバッグウィンドウ の 実行ポイントを表示
をクリックします。
すべてのステップコマンドは、 実行 メニューのショートカットを介して、および デバッグウィンドウ ツールバーのボタンで使用できます。

以下は、すべてのステップコマンドの簡単な概要です。
コマンド | アイコン | ショートカット | それを使用して ... |
|---|---|---|---|
| F7 | 現在の行から呼び出された最初の関数の最初のステートメントで停止する | |
Shift+F7 | 現在の行に複数の呼び出しがある場合、ステップインする関数を選択します | ||
| Shift+F8 | 現在の関数を最後まで実行し、呼び出し元のコンテキストで関数呼び出しに続くステートメントで停止する (または、途中の最初のブレークポイント(存在する場合)) | |
| F8 | 現在のステートメントとそれが呼び出すすべての関数を実行し、次のステートメントの前に停止する (または、途中の最初のブレークポイント(存在する場合)) | |
| Alt+Shift+F8 | ステップオーバー のように次のステートメントにステップしますが、呼び出されたメソッドのすべてのブレークポイントがあれば無視します | |
| Alt+F9 | プログラムの実行を再開し、ターゲットステートメントの前で停止する (または、途中の最初のブレークポイント(存在する場合)) | |
| Ctrl+Alt+F9 | カーソルまで実行 のようにターゲットステートメントまでコードを実行しますが、途中のすべてのブレークポイントを無視します | |
| Ctrl+Alt+Shift+F9 | ターゲットステートメントを次に実行するようにし、現在のステートメントとターゲットステートメント間のすべてのコードをスキップする |
デバッグセッションを終了するには、 Ctrl+F2 を押すか、メニューで を選択するか、 デバッグウィンドウ で Stop をクリックします。
ステップイン
現在の行から呼び出された関数をデバッグする必要がある場合、 実行 メニューおよび デバッグウィンドウ で使用可能な ステップイン
コマンド F7 を使用して、コールチェーンにステップダウンできます。
デバッガーは、現在の行から呼び出される最初の関数の最初のステートメントに実行ポインターを設定します。 関数が呼び出されない場合、デバッガーは次のステートメントに進みます。
デフォルトで、JetBrains Rider は 外部ソースデバッグを有効にしています。つまり、ライブラリコードにステップインすると、自動的にデコンパイルされ、デバッガーがその実行ポイントに移動します。
デバッガーがライブラリコードを無視したい場合は、外部ソースデバッグを無効化できます — JetBrains Rider 設定 の ページで 外部ソースデバッグを有効化 をクリアしてください Ctrl+Alt+S。
スマートステップイン
現在の行に複数のネストされたコールが含まれている場合、JetBrains Rider でどのコールにステップインするか選択できます。 次のコード行を考えてみましょう。
この行には複数の呼び出しが含まれており、 ステップイン を使うと、デバッガーは最初に Bar() の実装にステップインし、次に Baz() の実装にステップインし、さらに続きます。
Bar() など、どの呼び出しにステップインするかを選択する場合は、 スマートステップイン Shift+F7 を使用できます。

ステップインする関数を選択すると、デバッガーは選択した関数の最初のステートメントに実行ポインターを設定します。
セレクターは、どの呼び出しがすでに実行されたかを示し、これらの呼び出しを再度実行できるようにします。
複数のメソッド呼び出しを含む行で ステップイン F7 を呼び出すときに、「スマートステップイン」動作を有効にすることができます。 そのためには、 常にスマートステップインする 設定ページ  Ctrl+Alt+S で ビルド、実行、デプロイ | デバッガー | ステップ を選択します。
ステップアウト
関数(たとえば、ステップインしたばかりの関数)をデバッグする必要がなくなった場合は、 実行 メニューおよび デバッグウィンドウ でも使用可能な ステップアウト
コマンド Shift+F8 を使用します。
デバッガーは、関数の残りの行を単独で実行し、関数呼び出しの後のステートメントに実行ポインタを設定します。
ステップオーバー
特定の関数の動作に興味がない場合は、それをスキップできます(関数は実行されます)。その場合、 ステップオーバー
コマンド F8 を使用してください。このコマンドは 実行 メニューおよび デバッグウィンドウ でも利用できます。
強制ステップオーバー
ステップオーバーする関数にブレークポイントが含まれている場合、対応するステートメントが実行されると、デバッガーはそれらのブレークポイントで停止します。 強制ステップオーバー
コマンド Alt+Shift+F8 は、 実行 メニューおよび デバッグウィンドウ でも使用できるため、デバッガーに呼び出しチェーン内のブレークポイントを強制的にスキップさせることができます。
カーソルまで実行
特定のステートメントにブレークポイントを設定し、プログラムを再開して、ブレークポイントがヒットするのを待つ代わりに、 実行 メニューおよび デバッグウィンドウ でも使用できる カーソルまで実行
コマンド Alt+F9 を使用して、このステートメントまで実行するようにデバッガーを設定できます。
対象のステートメントにマウスを移動して、対応するアクションを選択することもできます。

カーソルまでノンストップ実行
現在の実行ポイントとターゲットステートメントの間にブレークポイントがある場合、 実行 メニューおよび デバッグウィンドウ でも利用可能な カーソルまでノンストップ実行
コマンド Ctrl+Alt+F9 を使用して、デバッガーにこれらのブレークポイントをスキップさせることができます。
カーソルまでスキップ
ターゲットステートメントまでプログラムを実行する代わりに、実際に実行せずにコードの一部をスキップすることもできます(たとえば、既知のバグを回避したり、ルーチンを繰り返さないようにするため)。 これは、 実行 メニューおよび デバッグウィンドウ でも使用可能な カーソルまでスキップ
コマンド Ctrl+Alt+Shift+F9 を使用して実行できます。
実行ポインタ
をマウスでドラッグしてターゲット行にドロップすることにより、プログラムの一部をスキップすることもできます。

別のステートメントに移動するときは、次のことに注意してください。
古い実行ポイントと新しい実行ポイント間のステートメントは実行されません。
すでに実行されたステートメントに戻る、つまりジャンプバックできます。 この場合、すでに実行されたステートメントは元に戻りません。
別の関数で次の文を設定することは不可能です。
ステップ時間
コードをステップ実行したり、ブレークポイント間でプログラムを実行したりすると、JetBrains Rider は最後の停止からの経過時間を可視化します:

時間の計算は、前回のデバッガーの一時停止から始まります。これは前回のブレークポイント、前回のステッピングコマンドの移動先、または 明示的なデバッガーの一時停止 です。