デバッグ例外
例外は実行時に発生するエラーであり、通常は通常の実行フローを中断します。JetBrains Rider を使用すると、アプリケーション例外を効果的にデバッグできます。つまり、未処理の例外または特定のタイプの例外がスローされたときに、プログラムの実行を一時停止するようにデバッガーに明示的に指示できます。JetBrains Rider は、例外が発生した直後 (例外処理が実行される前に) に実行を停止し、プログラムのスタックフレームと周囲のコンテキストを調べることができます。
ユーザー未処理の例外をデバッグする
JetBrains Rider は、未処理の例外がスローされたときにプログラムの実行を中断し、呼び出しスタックとともに例外ポップアップを表示することができます。再開 F9 をクリックしてプログラムの実行を続行するか、スタックトレースエクスプローラーをクリックしてスタックトレースウィンドウで例外の詳細を開き、スタックトレースをすぐにまたは後で調べることができます。
![JetBrains Rider: 例外からスタックトレースを開く JetBrains Rider: Opening stack trace from exception](https://resources.jetbrains.com/help/img/rider/2024.1/stacktrace_from_exception.png)
デバッガーがどの種類の例外でブレークするかを構成するには、設定 Ctrl+Alt+S のビルド、実行、デプロイ | デバッガーページで次のオプションを使用します。
- 未処理の例外を回避する (Mono を除く)
このオプションを使用して、次のすべての条件を満たす例外でデバッガーを停止します。
現在のソリューションのコード内では処理されません
外部コードで処理
現在のソリューションのコードまたは外部コードのいずれかでスローされますが、常に現在のソリューションのコードがコールスタックにあります
- コード外で例外を処理する (Mono を除く)
このオプションを使用して、次のすべての条件を満たす例外でデバッガーを停止します。
外部コードでスローされます
外部コードで処理
コールスタックに現在のソリューションのコードがありません
外部コードで停止する必要がない場合は、特に外部コードが多くの例外をスローする場合に、デバッガーのパフォーマンスに影響を与える可能性があるため、このチェックボックスを無効にしておくことをお勧めします。これは、.NET デバッグエンジンが比較的遅い macOS および Linux ではさらに顕著になる可能性があります。
- 未処理の例外を解決する
このオプションを使用して、ユーザーコードでもライブラリコードでも処理されない例外を解除します。このような例外はアプリケーションプロセスを停止するため、このオプションを有効にしておくことをお勧めします。
例外ブレークポイント
特定のタイプの例外をデバッグするには、特別な例外ブレークポイントを作成する必要があります。行ブレークポイントとは異なり、例外ブレークポイントは特定のコード行ではなく、特定の例外タイプに割り当てられます(たとえば、C# の場合、Exception
タイプから継承された任意のタイプにすることができます)。
例外ブレークポイントを追加する
以下のいずれか 1 つを実行します:
メインメニューから
を選択します。ブレークポイントダイアログ (Ctrl+Shift+F8 または ) で、
をクリックし、C# または Visual Basic の場合は CLR 例外ブレークポイント、JavaScript で記述されたスクリプトをデバッグする場合は JavaScript 例外ブレークポイントを選択します。
開いたダイアログで、目的の例外タイプ名を入力し、OK をクリックします。ブレークポイントは、ブレークポイントダイアログの CLR 例外ブレークポイントまたは JavaScript 例外ブレークポイントのブレークポイントのリストに追加されます。
ブレークポイントのプロパティを指定します。コードでのみが有効になっている場合、ユーザーコードによって例外がスローされた場合にのみ、デバッガーはプログラムを中断します。
関連ページ:
![](https://resources.jetbrains.com/help/img/rider/2024.1/Reference__Windows__Stack_Trace_Explorer.png)
例外スタックトレースを調べて移動する
外部スタックトレースを受け取った場合 (たとえば、バグレポートから)、専用のスタックトレースウィンドウでそれを開き、対応する例外が発生したコードに移動できます。このウィンドウで、ファイル、タイプ、メソッドをクリックして、エディターに表示できます。各スタックトレースは新しいタブで開かれ、それを閉じるかソリューションを閉じるまで使用できます。スタックトレースウィンドウを閉じた場合は、メニューからを選択して再び開くことができます。例外の原因となったコードに移動する例外スタックトレースをクリップボードに...
![](https://resources.jetbrains.com/help/img/rider/2024.1/debug_frames_pane.png)
中断されたプログラムを調べる
フレームを分析することで、中断されたアプリケーションの状態を調べることができます。コードがデバッグモードで実行されている場合、それを一時停止するには 2 つの方法があります。検査するコード内のブレークポイントの設定で、いずれかがヒットするまで待機します。でプログラムの実行を中断します。デバッガーは、一時停止した瞬間に実行中のステートメントを終了し、次に実行する必要のあるステートメントで停止します。一時停止状態では、現在の実行ポイント(次に実行されるステートメント)は、エディターの左側のガターにあ...
![](https://resources.jetbrains.com/help/img/rider/2024.1/breakpoint_condition_example.png)
ブレークポイント
ブレークポイントを使用すると、特定のステートメントでプログラムの実行を一時停止し、変数値、コールスタック、その他のプログラムパラメーターを分析したり、式を評価したり、プログラムをステップ実行したりできます。JetBrains Rider では、次の型のブレークポイントを操作できます。行ブレークポイント、コード内の特定の文に設定できます。実行がこの行に達すると、デバッガーはプログラムの実行を中断します。行ブレークポイントは実行可能な行にのみ設定できます。コメント、宣言、空行は、行ブレークポイントの...
![](https://resources.jetbrains.com/help/img/rider/2024.1/breakpoints_dialog.png)
ブレークポイントダイアログ
ソリューションで定義されているすべてのブレークポイントは、ダイアログの左側に表示されます。これらは、タイプ(行ブレークポイント、メソッドブレークポイント、および例外ブレークポイント)ごとにグループ化されています。ダイアログの右側では、選択したブレークポイントのオプションを構成したり、選択した行ブレークポイントのコードコンテキストをプレビューしたりできます。このダイアログはモーダルではないことに注意してください。つまり、このダイアログを開いたまま IDE の他の部分を操作できます。ブレークポイント...
![](https://resources.jetbrains.com/help/img/rider/2024.1/data_flow_analysis_off.png)
予測デバッガー
プログラムをデバッグすると、通常はその現在の状態が表示され、すでに実行されたコードを分析できます。関数にステップインした場合、追加のステップアクションを適用するまで、関数の本体内で何が起こっているかはわかりません。予測デバッガーを使用すると、ステップを実行せずに、現在のステートメントの後に何が起こるかを確認できます。コードがバックグラウンドで実行され、次のインサイトが得られます。ブール式の結果を予測して表示します。実行されないメソッド部分を視覚的に「ミュート」します。それ以降の実行は例外で終了す...
![](https://pleiades.io/icons/rider.png)
外部コードをデバッグする
JetBrains Rider は、外部コードをオンザフライで逆コンパイルしてデバッガーにインジェクションする統合デコンパイラーにより、external-library コードのデバッグを簡単にします。外部コードのデバッグは、.NET フレームワークおよび .NET Core 全体でサポートされています。独自のコードと同じ一般的な手順に従って、外部ライブラリまたは .NET フレームワークをデバッグすることができます。デバッグセッションを開始するか、実行中の .NET プロセスにデバッガーをアタ...