JetBrains Rider 2024.1 ヘルプ

ブレークポイント

ブレークポイントを使用すると、特定のステートメントでプログラムの実行を一時停止し、変数値、コールスタック、その他のプログラムパラメーターを分析したり式を評価したり、プログラムをステップ実行したりできます。JetBrains Rider では、次の型のブレークポイントを操作できます。

  • 行ブレークポイント、コード内の特定の文に設定できます。実行がこの行に達すると、デバッガーはプログラムの実行を中断します。行ブレークポイントは実行可能な行にのみ設定できます。コメント、宣言、空行は、行ブレークポイントの有効な場所ではありません。

  • 例外ブレークポイントは、指定された例外がスローされたときにプログラムを中断します。特定のソース参照が必要な行ブレークポイントとは異なり、例外ブレークポイントはグローバルに適用されます。

  • メソッドブレークポイントは、指定されたメソッドを呼び出すたびにプログラムを一時停止します。例外ブレークポイントと同様に、メソッドブレークポイントはエディターには表示されず、ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) でのみ表示および構成可能です。

  • データブレークポイントは、特定のオブジェクトのマークされたプロパティが変更されたときにプログラムの実行を一時停止します。データブレークポイントは、値の変更を観察し、実際に変更を行ったコードを特定したい場合に役立ちます。

プログラムのデバッグを開始する前、およびプログラムがすでにデバッガー制御下で実行されている場合(デバッグモードの場合)にも、ブレークポイントを設定できます。すべてのブレークポイントが保存され、JetBrains Rider を再起動した後に失われることはありません。

現在のソリューション内のすべてのブレークポイントを表示するには、ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) を使用します。リスト内の個々のブレークポイントごとに、必要に応じてそのプロパティを表示および変更できます。

行ブレークポイント

行ブレークポイントを設定する

  • プログラムの実行を一時停止したいステートメントにキャレットを置き、次のいずれかを実行します。

    • Ctrl+F8 を押します。

    • メインメニューで、実行 | ブレークポイントの切り替え | 行ブレークポイントに移動します。

  • ブレークポイントを切り替える行の左のガター領域をクリックします。デフォルトでは、JetBrains Rider 設定 Ctrl+Alt+Sビルド、実行、デプロイ | デバッガーページでマウスホバーでブレークポイントのプレビューを表示オプションが有効になっているため、ブレークポイントを設定できる行にマウスを移動するとプレビューアーイコンが表示されます。

    JetBrains Rider: Breakpoint suggestion on mouse hover

最初、ブレークポイントは左のガター breakpoint_enabled.png 上の赤い丸で表されています。ブレークポイントが設定されているコード行はハイライトされています。デバッグを開始した後、有効なブレークポイントは緑色のチェックマーク breakpoint_valid.png でマークされ、プログラムの実行はこのコード行が実行されるに停止します。

JetBrains Rider: A breakpoint is hit

ブレークポイントを実際に削除せずに一時的に無効にするオプションがあります。無効なブレークポイントは、空の赤い円 breakpoint_disabled.png として表示されます。

行ブレークポイントを無効 / 有効にする

  • Alt を押しながら、左ガターに対応するブレークポイントアイコンをクリックします。

  • マウスの中ボタンでブレークポイントをクリックします。

  • ブレークポイントを右クリックし、有効オプションをオフにします。

  • ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) では、ブレークポイントの横にあるチェックボックスまたはブレークポイントプロパティの有効フラグを使用します。

すべての行ブレークポイントを無効 / 有効にする

  • デバッグウィンドウで、ブレークポイントのミュート をクリックします。ミュート状態では、エディターのすべてのブレークポイントが灰色の Breakpoint muted で表示されます。

行ブレークポイントの状態

状態

アイコン

説明

有効

Breakpoint enabled

行ブレークポイント。デザイン時に表示

条件付き

Breakpoint enabled conditional

条件付きラインブレークポイント。ブレークポイントは、特定の条件が満たされた場合にのみヒットします。設計時に表示されます。

無効

Breakpoint disabled Breakpoint disabled conditional

無効化されたブレークポイントは、プログラムの実行を中断しません。将来、ブレークポイントを有効にして使用するには、ブレークポイントを削除する代わりに無効にすることをお勧めします。

複数

Breakpoint multiple Breakpoint disabled multiple

行内で複数のインラインブレークポイントが切り替えられます。

依存関係によって無効になっている

Breakpoint dependent Breakpoint dependent conditional

従属行ブレークポイント。従属ブレークポイントは、それが依存しているブレークポイントに到達した後でのみ使用可能になります。

トレースポイント

Tracepoint Tracepoint conditional

ブレークポイントがプログラムの実行を中断しない場合(ブレークポイントプロパティで中断フラグが無効になっている場合)、事実上トレースポイントになり、プログラムがマークされたコード行にプログラムが到達したときにプログラムの状態をログに記録できます。

有効

breakpoint_valid.png breakpoint_valid_conditional.png

実行時にブレークポイントが実行可能コード行に設定されているとデバッガーによって認識されたときに表示されます。

無効

breakpoint_invalid.png breakpoint_invalid_conditional.png

ブレークポイントがヒットしないことを示す実行不可能な行にブレークポイントが設定されている場合に表示されます。デバッグされたプログラムに対して正しい PDB ファイルがないなど、ブレークポイントが無効になることがあります。

ミュート

Breakpoint muted

すべてのブレークポイントが一時的に無効(ミュート)になっているときに表示されます。デバッグウィンドウブレークポイントのミュート をクリックすると、ブレークポイントをミュート / ミュート解除できます。

行ブレークポイントを除去する

  • エディターで、削除する行ブレークポイントのある行を見つけて、左のガターにあるアイコンをクリックします。

  • 目的の行にキャレットを置き、Ctrl+F8 を押します。

  • ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) で、目的のブレークポイントを選択し、除去 をクリックします。

ブレークポイントを削除した後、Ctrl+F8 を押すか、ガター領域をクリックすると、再度切り替えることができます。ただし、条件を指定するなど、何らかの方法でブレークポイントを設定した場合は、新しいブレークポイントを切り替えるのではなく、ブレークポイントの以前の状態を復元する必要がある場合があります。

削除されたブレークポイントを復元する

  • メインメニューから実行 | ブレークポイントの切り替え | ブレークポイントの復元を選択します。

  • デフォルトでは、ブレークポイントを復元するアクションにはショートカットはありませんが、頻繁に使用する場合は、このアクションにカスタムショートカットを割り当てることができます。

1 回だけ機能するブレークポイントが必要な場合は、専用のコマンドを使用して一時的なブレークポイントを設定するか、行、メソッド、または例外のブレークポイントを一時的にすることができます。ヒットすると、そのようなブレークポイントはすぐに削除されます。

一時的な行ブレークポイントを設定する

  1. 実行を一時停止したいステートメントにキャレットを置きます。

  2. 以下のいずれか 1 つを実行します:

    • Ctrl+Alt+Shift+F8 を押します。

    • メインメニューで、実行 | ブレークポイントの切り替え | 一時ブレークポイント行に移動します。

  3. または、ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) で目的のブレークポイントを選択し、目的の行ブレークポイントを選択して、ブレークポイントプロパティで一度ヒットしたら除去するフラグを使用します。

複数文の行におけるインラインブレークポイント

行に複数のステートメントが含まれている場合は、各ステートメントのブレークポイントを個別に切り替えることができます。

インラインブレークポイントを切り替える

  • マークしたい文の中にキャレットを置き、Ctrl+F8 を押します。

  • 対応する行の横にあるガター領域をクリックします。行内のステートメントの配置に応じて、IDE はネストされたステートメントまたは行内の最初の独立したステートメントのいずれかにブレークポイントを切り替えます。

    その行の他のすべてのステートメントにはブレークポイントの装飾が表示され、必要に応じてクリックしてブレークポイントを切り替えることができます。

    JetBrains Rider: Inline breakpoints

デバッガーがインラインブレークポイントでプログラムの実行を中断すると、対応するステートメントがハイライトされます。

JetBrains Rider: A program suspended on an inline breakpoint

1 行に複数のインラインブレークポイントを切り替えた場合、その行のガターに複数のブレークポイントアイコン Multiple breakpoint icon が表示されます。このアイコンをクリックすると、その行のすべてのブレークポイントが削除されます。

条件付き行ブレークポイント

デバッガーでは、特定のブレークポイントがヒットする条件を設定できます。これは、変数が特定の値をとったときにプログラムがどのように動作するかを見たい場合に役立ちます。

行ブレークポイントの条件を設定する

  1. 以下のいずれか 1 つを実行します:

    • 左ガターの対応するブレークポイントアイコンを右クリックします。

    • ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) で、目的の行ブレークポイントを選択し、条件フラグを選択します。

  2. コンテキストで使用可能な変数を使用し、true または false に評価される式を入力します。Shift+Enter を押すと、複数行エディターが開きます。

式が true と評価されると、ブレークポイントがヒットします。たとえば、以下の例では、ブレークポイントは result > 10 の場合にのみヒットします。

JetBrains Rider: conditional breakpoints

単純な条件の場合、特定のヒット数後にブレークポイントをトリガーするだけでよい場合 (たとえば、ブレークポイントがループ内にある場合)、さらにをクリックしてヒットカウントプロパティを構成できます。以下の例では、2、4、6、8 などの 2 の倍数の各ブレークポイントヒットでプログラムが中断されます。

JetBrains Rider: breakpoints. hit count

依存ブレークポイント

一部の複雑なデバッグの場合(たとえば、マルチスレッドアプリケーションのデバッグ)、ブレークポイントでの一時停止は、他のブレークポイントに到達するまであまり意味がない場合があります。この目的のために、デバッガーでは依存するブレークポイントを作成できます。

現在のブレークポイントが依存する必要があるブレークポイントを設定する

  1. 以下のいずれか 1 つを実行します:

    • 左ガターの対応するブレークポイントアイコンを右クリックし、開いたブレークポイントのプロパティでさらにをクリックします。

    • ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) で、目的のブレークポイントを選択します。

  2. 選択されたブレークポイントに達するまで使用不可にするでは、現在のブレークポイントが依存している必要があるブレークポイントを選択します。

  3. ブレークポイントに達した後

    • 選択されたブレークポイントがヒットした後に現在のブレークポイントを無効にするには、再度無効にするを使用します。

    • 有効なままにするは、選択したブレークポイントに到達した後も現在のブレークポイントを有効なままにします。

プログラムの状態を記録するためのトレースポイント

場合によっては、特定の実行ポイントで式を評価して結果をログに記録したり、ブレークポイントに到達したという事実をログに記録したりする必要があります。通常は、ログエントリごとにプログラムの実行を中断する必要はありません。

これらの目的のために、JetBrains Rider では、任意の行、メソッド、例外ブレークポイントをトレースポイントに変換できます。トレースポイントメッセージは、デバッグ出力(デバッグウィンドウデバッグ出力タブ)に記録されます。

トレースポイントでプログラムの状態を記録する

  1. 目的のステートメントでブレークポイントを設定する Ctrl+F8 を選択するか、既存のブレークポイントのいずれかを選択します。

  2. 以下のいずれか 1 つを実行します:

    • ブレークポイントを右クリックし、ブレークポイントのプロパティでさらにをクリックします。

    • ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) で、目的のブレークポイントを選択します。

  3. トレースポイントにするには、中断チェックボックスをクリアします。もちろんこれはオプションです。両方をブレークポイントで停止し、そのヒットを記録するには、チェックボックスを選択したままにします。

  4. ブレークポイントのヒットをログに記録する方法(「ブレークポイントヒット」メッセージ、この時点でのプログラムのスタックトレース、その両方)を選択します。

  5. 行ブレークポイントの場合、任意の式を評価してその結果をログに記録することもできます。評価して記録を選択し、目的の式を入力します。

    スコープで使用可能な任意の変数、クラス、それらのメソッドを使用できます。明確なテキストを出力に追加するには、String.Format() または文字列連結を使用します。

    必要に応じて、Shift+Enter を押して複数行エディターを開きます。

例: 次のような表現:

JetBrains Rider: evaluating expressions on tracepoint

デバッグ出力タブに次の結果が表示されます。

JetBrains Rider: evaluating expressions on tracepoint

ブレークポイントのラベル

ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) では、ブレークポイントに名前または簡単な説明を追加できます。ブレークポイントを右クリックし、コンテキストメニューから説明の編集を選択して、必要な名前 / 説明を入力します。

これらのラベルを使用して、特定のブレークポイントの目的を確認できます。また、ダイアログに入力を開始して、ラベル付きのブレークポイントを検索することもできます。

JetBrains Rider: searching breakpoints

ブレークポイントのグループ

ブレークポイントダイアログでは、たとえば特定の問題のブレークポイントをマークするために、グループ内にブレークポイントを編成できます。グループが作成されると、ブレークポイントをグループの内外に移動し、グループ内のすべてのブレークポイントを一度に有効 / 無効にすることができます。

JetBrains Rider: grouping breakpoints

ブレークポイントのグループを作成する

  1. ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) を開きます。

  2. 目的のブレークポイントを選択します。複数のブレークポイントを選択するには、Ctrl キーを押しながらブレークポイントを選択します。

  3. 選択範囲を右クリックし、コンテキストメニューからグループに移動 | 新規作成 ... を選択します。

  4. 新規グループダイアログで、新しいグループの名前を入力します。選択したブレークポイントが新しく作成されたグループに移動します。

  5. オプションで、ブレークポイントのグループを右クリックし、デフォルトに設定を選択することができます。その後、新しく作成されたブレークポイントはすべて自動的にこのグループに追加されます。

  6. 必要に応じて、グループのチェックボックスを選択または選択解除して、グループ内のすべてのブレークポイントを有効または無効にすることができます。

グループが作成されたら、右クリックし、コンテキストメニューでグループに移動を選択することによって、他のブレークポイントをそのグループに移動できます。

ブレークポイントをグループから移動するには、そのブレークポイントを右クリックしてグループに移動 | [ グループ名 ] またはグループに移動 | <グループなし> を選択します。最後のブレークポイントがグループ外に移動すると、グループが削除されます。

グループをすべてのブレークポイントとともに削除するには、そのグループが選択されているときに除去 Remove をクリックします。

スレッド固有のブレークポイント

マルチスレッドアプリケーションのデバッグは難しい場合があります。実行を継続すると、次にブレークポイントに到達したときに別のスレッドにいる可能性があります。特定のスレッドのデバッグに集中するために、任意のブレークポイントをスレッド固有にすることができます。

デフォルトでは、任意のブレークポイントは、ヒットしたスレッドとは独立してプログラムの実行を中断します。

ブレークポイントをスレッド固有にする

  1. デバッグセッションを開始するを使用すると、デバッガーはプログラムスレッドを収集できます。

  2. ブレークポイントを右クリックするか、ブレークポイントダイアログダイアログ Ctrl+Shift+F8 で見つけます。

  3. 特定のスレッドでのみ中断するを選択し、プログラムスレッドの 1 つを選択します。

    JetBrains Rider: Making a breakpoint thread-specific

メソッドブレークポイント

メソッドブレークポイントは、指定されたメソッドが呼び出されるたびにプログラムを一時停止します。例外ブレークポイントと同様に、メソッドブレークポイントはエディターには表示されず、ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) でのみ表示および構成可能です。

メソッドブレークポイントを追加する

  1. ブレークポイントダイアログ (Ctrl+Shift+F8 または実行 | ブレークポイントの表示 ...) を開きます。

  2. をクリックし、メソッドブレークポイントを選択します。

  3. 開いたダイアログで、タイプの完全修飾名(Namespace.TypeName)とメソッドの名前を指定し、次に OK をクリックします。

データブレークポイント

データブレークポイントを使用すると、特定のオブジェクトのマークされたプロパティが変更されたときにプログラムの実行を一時停止できます。データブレークポイントは、値の変化を観察し、実際にどのコードが変化を行ったのかを把握したい場合に役立ちます。

他の種類のブレークポイントとは異なり、データブレークポイントは特定のデバッグセッションのオブジェクトに適用されるため、デバッグウィンドウ Alt+5 のセッション中にのみ使用できます。

データブレークポイントを使用する

  1. デバッグセッションを開始するを実行してからプログラムの実行を中断し、プログラムの状態を調べます。必要に応じて、目的のオブジェクトがローカルスコープに入るまでステップを実行します。

  2. デバッグウィンドウを開き、スレッドと変数タブに切り替え、目的のオブジェクトを見つけて展開し、値を監視するフィールドまたはプロパティを見つけます。

  3. プロパティを右クリックし、データブレークポイントを設定を選択します。

  4. プログラム実行 F9 を再開します。

  5. ブレークポイントでマークされたプロパティがその値を変更するとすぐに、デバッガーは変更を引き起こした行でプログラムを中断します。

次の短いビデオは、データブレークポイントを設定して使用する方法を示しています。

関連ページ:

変数の値とオブジェクトを調べる

プログラムが中断されると、現在選択されているフレームのコンテキストで変数と引数を調べることができます。それらの値を表示して、その場で編集できます。コンテキストを変更するには、フレームペインで別のフレームを選択してください。変数値を表示する:変数値を表示する方法はいくつかあります。変数ペイン変数値を調べるデフォルトの方法は、デバッグウィンドウの変数ペインを使用することです。変数が複合型の場合、ペイン内の対応するノードを展開して、変数に含まれる値を表示できることに注意してください。場合によっては、

式の評価

JetBrains Rider を使用すると、別々の変数の値を表示できるだけでなく、メソッド呼び出し、演算子式、ラムダ式、匿名クラスなどのより複雑な式も評価できます。式は、デバッグウィンドウで現在選択されているスタックフレームのコンテキストで評価されます。エディターで式を評価する:式を評価する最も簡単な方法は、エディターのツールチップを使用することです。変数または式の値に子要素が含まれている場合は、をクリックするとノードが展開され、すべての子が表示されます。設定のビルド、実行、デプロイ | デ...

デバッグ例外

例外は実行時に発生するエラーであり、通常は通常の実行フローを中断します。JetBrains Rider を使用すると、アプリケーション例外を効果的にデバッグできます。つまり、未処理の例外または特定のタイプの例外がスローされたときに、プログラムの実行を一時停止するようにデバッガーに明示的に指示できます。JetBrains Rider は、例外が発生した直後 (例外処理が実行される前に) に実行を停止し、プログラムのスタックフレームと周囲のコンテキストを調べることができます。ユーザー未処理の例外をデ...

ブレークポイントダイアログ

ソリューションで定義されているすべてのブレークポイントは、ダイアログの左側に表示されます。これらは、タイプ(行ブレークポイント、メソッドブレークポイント、および例外ブレークポイント)ごとにグループ化されています。ダイアログの右側では、選択したブレークポイントのオプションを構成したり、選択した行ブレークポイントのコードコンテキストをプレビューしたりできます。このダイアログはモーダルではないことに注意してください。つまり、このダイアログを開いたまま IDE の他の部分を操作できます。ブレークポイント...

開始、一時停止、再開、停止

プロセス(アプリケーション、単体テスト、静的メソッド、または実行可能構成を持つもの)をデバッグするには、接続されたデバッガーでこのプロセスを実行する必要があります。デバッグセッションを開始する:デバッグセッションを開始するには、いくつかのオプションがあります。IDE からソースコードを開始できる場合は、を押すか、ツールバーのデバッグをクリックします。このようにして、現在選択されている実行 / デバッグ構成を、接続されているデバッガー(デバッグモード)で起動します。アプリケーションがすでに実行...

デバッグウィンドウ

デバッガーセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ(フレーム、スレッド、変数など)を表示して分析し、さまざまなデバッガーアクションを実行します。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。ツールウィンドウのタブを切り替えるには、とを押します。セッション:複数のデバッグセッションを同時に実行すると、それらはデ