ブレークポイント
ブレークポイントを使用すると、特定のステートメントでプログラムの実行を一時停止し、 変数値、コールスタック、その他のプログラムパラメーターを分析したり、 式を評価したり、 プログラムをステップ実行したりできます。 JetBrains Rider では、次の種類のブレークポイントを操作できます:
ラインブレークポイントは、コード内の特定のステートメントに設定できます。 デバッガーは、この行に到達したときにプログラムの実行を中断します。 ラインブレークポイントは実行可能ファイルの行のみに設定できます。コメント、宣言、空行はラインブレークポイントの有効な場所ではありません。
例外ブレークポイントは、指定された例外がスローされたときにプログラムを中断します。 特定のソース参照が必要な行ブレークポイントとは異なり、例外ブレークポイントはグローバルに適用されます。
メソッドブレークポイントは、指定したメソッドが呼び出されるたびにプログラムを一時停止します。 例外ブレークポイントと同様に、メソッドブレークポイントはエディターには表示されず、 ブレークポイントダイアログ (Ctrl+Shift+F8 または )でのみ表示および構成できます。
データブレークポイントは、特定のオブジェクトのマークされたプロパティが変更されたときにプログラムの実行を一時停止します。 データブレークポイントは、値の変化を観察し、実際にどのコードが変化を行ったのかを把握したい場合に役立ちます。
プログラムの デバッグを開始する前、およびプログラムがすでにデバッガー制御下で実行されている場合(デバッグモードの場合)にも、ブレークポイントを設定できます。 すべてのブレークポイントは保存され、JetBrains Rider を再起動しても失われません。
現在のソリューション内のすべてのブレークポイントを表示するには、 ブレークポイントダイアログ (Ctrl+Shift+F8 または ) を使用します。 リスト内の個々のブレークポイントごとに、必要に応じてそのプロパティを表示および変更できます。
行ブレークポイント
行ブレークポイントを設定する
プログラムの実行を一時停止したいステートメントにキャレットを置き、次のいずれかを実行します。
Ctrl+F8 を押します。
メインメニューで 実行 | ブレークポイントの切り替え | 行ブレークポイント へ移動します。
ブレークポイントを切り替える行の左のガター領域をクリックします。 デフォルトで、JetBrains Rider 設定 Ctrl+Alt+S の ページで マウスホバーでブレークポイントのプレビューを表示 オプションが有効化されているため、ブレークポイントを設定できる行にマウスを合わせるとプレビューアイコンが表示されます:

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

ブレークポイントを実際に削除せずに一時的に無効にするオプションがあります。 無効なブレークポイントは、空の赤い円
として表示されます。
行ブレークポイントを無効 / 有効にする
Alt を押しながら、左ガターに対応するブレークポイントアイコンをクリックします。
マウスの中ボタンでブレークポイントをクリックします。
ブレークポイントを右クリックし、 有効 オプションのチェックを外します。
ブレークポイントダイアログ (Ctrl+Shift+F8 または )で、ブレークポイント横のチェックボックスまたはブレークポイントプロパティの 有効 フラグを使用します。
すべての行ブレークポイントを無効 / 有効にする
デバッグウィンドウ で、 ブレークポイントのミュート
をクリックします。 ミュート状態では、エディターのすべてのブレークポイントが灰色の
で表示されます。
行ブレークポイントの状態
状態 | アイコン | 説明 |
|---|---|---|
有効 |
| 行ブレークポイント。 デザイン時に表示 |
条件付き |
| 条件付きラインブレークポイント。 ブレークポイントは、特定の条件が満たされた場合にのみヒットします。 設計時に表示されます。 |
無効 |
| 無効化されたブレークポイントは、プログラムの実行を中断しません。 将来、ブレークポイントを有効にして使用するには、ブレークポイントを削除する代わりに無効にすることをお勧めします。 |
複数 |
| 行内で複数の インラインブレークポイントが切り替えられます。 |
依存関係によって無効になっている |
| 従属行ブレークポイント。 従属ブレークポイントは、それが依存しているブレークポイントに到達した後でのみ使用可能になります。 |
トレースポイント |
| ブレークポイントがプログラムの実行を中断しない場合(ブレークポイントプロパティで 中断 フラグが無効になっている場合)、事実上 トレースポイントになり、プログラムがマークされたコード行にプログラムが到達したときに プログラムの状態をログに記録できます。 |
有効 |
| 実行時にブレークポイントが実行可能コード行に設定されているとデバッガーによって認識されたときに表示されます。 |
無効 |
| ブレークポイントがヒットしないことを示す実行不可能な行にブレークポイントが設定されている場合に表示されます。 デバッグされたプログラムに対して正しい PDB ファイルがないなど、ブレークポイントが無効になることがあります。 |
ミュート | すべてのブレークポイントが一時的に無効(ミュート)になっているときに表示されます。 デバッグウィンドウ で ブレークポイントのミュート |
行ブレークポイントを除去する
エディターで、削除する行ブレークポイントのある行を見つけて、左のガターにあるアイコンをクリックします。
目的の行にキャレットを置き、 Ctrl+F8 を押します。
ブレークポイントダイアログ (Ctrl+Shift+F8 または ) で、目的のブレークポイントを選択し、 削除
をクリックします。
ブレークポイントを削除した後、 Ctrl+F8 を押すか、ガター領域をクリックすると、再度切り替えることができます。 ただし、 条件を指定するなど、何らかの方法でブレークポイントを設定した場合は、新しいブレークポイントを切り替えるのではなく、ブレークポイントの以前の状態を復元する必要がある場合があります。
削除されたブレークポイントを復元する
メインメニューから を選択します。
デフォルトでは、ブレークポイントを復元するアクションにはショートカットはありませんが、頻繁に使用する場合は、このアクションに カスタムショートカットを割り当てることができます。
1 回だけ機能するブレークポイントが必要な場合は、専用のコマンドを使用して一時的なブレークポイントを設定するか、行、メソッド、または例外のブレークポイントを一時的にすることができます。 ヒットすると、そのようなブレークポイントはすぐに削除されます。
一時的な行ブレークポイントを設定する
実行を一時停止したいステートメントにキャレットを置きます。
次のいずれかを実行します:
Ctrl+Alt+Shift+F8 を押します。
メインメニューで 実行 | ブレークポイントの切り替え | 一時ブレークポイント行 へ移動します。
または、 ブレークポイントダイアログ (Ctrl+Shift+F8 または ) で目的のブレークポイントを選択し、目的の行ブレークポイントを選択して、ブレークポイントプロパティで 一度ヒットしたら削除する。 フラグを使用します。
複数文の行におけるインラインブレークポイント
行に複数のステートメントが含まれている場合は、各ステートメントのブレークポイントを個別に切り替えることができます。
インラインブレークポイントを切り替える
マークしたい文の中にキャレットを置き、 Ctrl+F8 を押します。
対応する行の横にあるガター領域をクリックします。 行内のステートメントの配置に応じて、IDE はネストされたステートメントまたは行内の最初の独立したステートメントのいずれかにブレークポイントを切り替えます。
その行の他のすべてのステートメントにはブレークポイントの装飾が表示され、必要に応じてクリックしてブレークポイントを切り替えることができます。

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

1 行に複数のインラインブレークポイントを切り替えた場合、その行のガターに複数のブレークポイントアイコン
が表示されます。 このアイコンをクリックすると、その行のすべてのブレークポイントが削除されます。
条件付き行ブレークポイント
デバッガーでは、特定のブレークポイントがヒットする条件を設定できます。 これは、変数が特定の値をとったときにプログラムがどのように動作するかを見たい場合に役立ちます。
行ブレークポイントの条件を設定する
次のいずれかを実行します:
行番号を右クリックして「条件付きブレークポイントの追加 」を選択します
左側のガターにある既存のブレークポイントアイコンを右クリックします。
ブレークポイントダイアログ (Ctrl+Shift+F8 または ) で、目的の行ブレークポイントを選択し、 条件 フラグを選択します。
コンテキストで使用可能な変数を使用し、
trueまたはfalseに評価される式を入力します。 Shift+Enter を押すと、複数行エディターが開きます。
式が true と評価されると、ブレークポイントがヒットします。 たとえば、以下の例では、ブレークポイントは result > 10 の場合にのみヒットします。

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

依存ブレークポイント
一部の複雑なデバッグの場合(たとえば、マルチスレッドアプリケーションのデバッグ)、ブレークポイントでの一時停止は、他のブレークポイントに到達するまであまり意味がない場合があります。 この目的のために、デバッガーでは依存するブレークポイントを作成できます。
現在のブレークポイントが依存する必要があるブレークポイントを設定する
次のいずれかを実行します:
左ガターの対応するブレークポイントアイコンを右クリックし、開いたブレークポイントのプロパティで その他 をクリックします。
ブレークポイントダイアログ (Ctrl+Shift+F8 または ) で、目的のブレークポイントを選択します。
選択されたブレークポイントに達するまで使用不可にする では、現在のブレークポイントが依存している必要があるブレークポイントを選択します。
ブレークポイントに達した後 で、選択します。
選択されたブレークポイントがヒットした後に現在のブレークポイントを無効にするには、 再度無効にする を使用します。
有効なままにする は、選択したブレークポイントに到達した後も現在のブレークポイントを有効なままにします。
プログラムの状態を記録するためのトレースポイント
場合によっては、特定の実行ポイントで式を評価して結果をログに記録したり、ブレークポイントに到達したという事実をログに記録したりする必要があります。 通常は、ログエントリごとにプログラムの実行を中断する必要はありません。
これらの目的のために、JetBrains Rider では任意の行、メソッド、例外ブレークポイントをトレースポイントに変換できます。 トレースポイントメッセージは、デバッグ出力(デバッグウィンドウ の デバッグ出力 タブ)に記録されます。
トレースポイントでプログラムの状態を記録する
行番号を右クリックして「ログ記録ブレークポイントを追加する 」を選択します
既存のブレークポイントをトレースポイントに変換するには、次のいずれかの操作を行います。
ブレークポイントを右クリックし、ブレークポイントのプロパティで その他 をクリックします。
ブレークポイントダイアログ (Ctrl+Shift+F8 または ) で、目的のブレークポイントを選択します。
トレースポイントにするには、 中断 チェックボックスをクリアします。 もちろんこれはオプションです。 両方をブレークポイントで停止し、そのヒットを記録するには、チェックボックスを選択したままにします。
ブレークポイントのヒットをログに記録する方法(「ブレークポイントヒット」メッセージ、この時点でのプログラムのスタックトレース、その両方)を選択します。
ラインブレークポイントでは、任意の式を評価し、その結果をログに記録できます。 評価して記録する。 を選択し、希望の式を入力してください。
スコープで使用可能な任意の変数、クラス、それらのメソッドを使用できます。 明確なテキストを出力に追加するには、
String.Format()または文字列連結を使用します。必要に応じて、 Shift+Enter を押して複数行エディターを開きます。
例: 次のような表現:

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

ブレークポイントのラベル
ブレークポイントダイアログ (Ctrl+Shift+F8 または )で、ブレークポイントに名前や簡単な説明を追加できます。ブレークポイントを右クリックし、コンテキストメニューから を選択し、希望の名前や説明を入力してください。
これらのラベルで特定のブレークポイントの目的を確認でき、ダイアログでラベル付きブレークポイントを検索するために文字入力もできます:

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

ブレークポイントのグループを作成する
ブレークポイントダイアログ (Ctrl+Shift+F8 または ) を開きます。
目的のブレークポイントを選択します。 複数のブレークポイントを選択するには、 Ctrl キーを押しながらブレークポイントを選択します。
選択範囲を右クリックし、コンテキストメニューから グループに移動 | 新規作成 ... を選択します。
新規グループ ダイアログで、新しいグループの名前を入力します。 選択したブレークポイントが新しく作成されたグループに移動します。
オプションで、ブレークポイントのグループを右クリックし、 デフォルトに設定 を選択することができます。 その後、新しく作成されたブレークポイントはすべて自動的にこのグループに追加されます。
必要に応じて、グループのチェックボックスを選択または選択解除して、グループ内のすべてのブレークポイントを有効または無効にすることができます。
グループが作成されたら、右クリックし、コンテキストメニューで グループに移動 を選択することによって、他のブレークポイントをそのグループに移動できます。
ブレークポイントをグループから移動するには、そのブレークポイントを右クリックして グループに移動 | [group name] または グループに移動 | <グループなし> を選択します。 最後のブレークポイントがグループ外に移動すると、グループが削除されます。
グループをすべてのブレークポイントとともに削除するには、そのグループが選択されているときに 削除 をクリックします。
スレッド固有のブレークポイント
マルチスレッドアプリケーションのデバッグは困難な場合があります。実行を続行するたびに、次にブレークポイントがヒットした際に別のスレッド上で動作している可能性があります。 特定のスレッドのデバッグに集中する場合、任意のブレークポイントをスレッド固有に設定できます。
デフォルトでは、任意のブレークポイントは、ヒットしたスレッドとは独立してプログラムの実行を中断します。
ブレークポイントをスレッド固有にする
デバッグセッションを開始するを使用すると、デバッガーはプログラムスレッドを収集できます。
ブレークポイントを右クリックするか、 ブレークポイントダイアログ ダイアログ Ctrl+Shift+F8 で見つけます。
特定のスレッドでのみ中断する を選択し、プログラムスレッドの 1 つを選択します。

メソッドのブレークポイント
メソッドブレークポイントは、指定されたメソッドが呼び出されるたびにプログラムを一時停止します。 例外ブレークポイントと同様に、メソッドブレークポイントはエディターには表示されず、 ブレークポイントダイアログ (Ctrl+Shift+F8 または ) でのみ表示および構成可能です。
メソッドブレークポイントを追加する
ブレークポイントダイアログ (Ctrl+Shift+F8 または ) を開きます。
をクリックして、 メソッドのブレークポイント を選択します。
開いたダイアログで、タイプの完全修飾名(
Namespace.TypeName)とメソッドの名前を指定し、次に OK をクリックします。
データブレークポイント
データブレークポイントを使用すると、特定のオブジェクトのマークされたプロパティが変更されたときにプログラムの実行を一時停止できます。 データブレークポイントは、値の変化を観察し、実際にどのコードが変化を行ったのかを把握したい場合に役立ちます。
他の種類のブレークポイントとは異なり、データブレークポイントは特定のデバッグセッションのオブジェクトに適用されるため、 デバッグウィンドウ Alt+5 のセッション中にのみ使用できます。
データブレークポイントを使用する
デバッグセッションを開始するを実行してからプログラムの実行を中断し、 プログラムの状態を調べます。 必要に応じて、目的のオブジェクトがローカルスコープに入るまで ステップを実行します。
デバッグウィンドウ を開き、 スレッド & 変数 タブに切り替え、目的のオブジェクトを見つけて展開し、値を監視するフィールドまたはプロパティを見つけます。
プロパティを右クリックし、 データブレークポイントを設定 を選択します。
プログラム実行 F9 を再開します。
ブレークポイントでマークされたプロパティがその値を変更するとすぐに、デバッガーは変更を引き起こした行でプログラムを中断します。