中断されたプログラムを調べる
フレームを分析することで、中断されたアプリケーションの状態を調べることができます。
コードがデバッグモードで実行されている場合、それを一時停止するには 2 つの方法があります。
検査するコード内のブレークポイントの設定で、いずれかがヒットするまで待機します。
Ctrl+D, P でプログラムの実行を中断します。デバッガーは、一時停止した瞬間に実行中のステートメントを終了し、次に実行する必要のあるステートメントで停止します。
一時停止状態では、現在の実行ポイント(次に実行されるステートメント)は、エディターの左側のガターにある黄色の実行ポインター でマークされます。現在の実行ポイントをすばやく見つけるには、Alt+F10 を押すか、デバッグウィンドウの実行ポイントの表示
をクリックします。
フレームとは
関数の呼び出しを実行するために、CLR は呼び出しデータを生成し、呼び出しスタックに入れます。このデータブロックはスタックフレーム(または略してフレーム)と呼ばれ、関数の場所、呼び出し引数、ローカル変数などが含まれます。
フレームを探る
デバッグ中は、現在のコールスタックからのすべてのフレームがデバッグウィンドウのスレッドと変数ペインに表示され、そこで任意のフレームを選択してそのデータを表示できます。
![JetBrains Rider: デバッグフレームペイン JetBrains Rider: Debug frames pane](https://resources.jetbrains.com/help/img/rider/2024.1/debug_frames_pane.png)
フレームを選択すると、このフレームのメソッド呼び出しで使用できるすべての変数と引数が右側に表示され、さらに詳しく調べることができます。
コールスタックにライブラリコードのフレームが含まれている場合は、それらのフレームを非表示にして、ソースコードのフレームに集中することができます。これを行うには、フレームリスト内の任意の場所を右クリックし、ライブラリフレームの表示 / 非表示を選択します。
フレームの表示をカスタマイズする (フレームに固定)
デフォルトでは、スタックフレームは、呼び出された関数とそのアセンブリの名前としてリストされます。
フレームの表示に意味のあるコンテンツを追加するには (たとえば、再帰的に呼び出される関数のフレームを区別するため)、呼び出し引数の値または関数のコンテキストでアクセス可能な任意のオブジェクトを使用できます。
デバッグウィンドウでフレームを選択します。
変数ビューで、フレームプレゼンテーションで使用するオブジェクトを見つけ、そのアイコンをクリックするか、右クリックして上にピン留めを選択します。
ピン留めされたオブジェクトはリストの一番上に移動し、そのアイコンはフラグアイコン
に置き換えられます。次のステップの後、ピン留めされたオブジェクトの値は、それらが属するフレームの文字列表現を形成するために使用されます。文字列互換の値を持つオブジェクトを選択するようにしてください。
ソリューション内のピン留めされたアイテムはすべて保存され、再起動後にも利用可能になります。それらはすべて、対応するノードのブックマークウィンドウで見ることができます。
フレーム表示でのオブジェクトの使用を停止するには、変数ビューでそのフラグアイコン
をクリックするか、オブジェクトを右クリックしてピン留め解除を選択するか、ブックマークウィンドウで固定されたアイテムを見つけて Delete を押します。
次の短いビデオは、再帰的に呼び出される関数のフレームにパラメーターを固定する方法を示しています。
関連ページ:
![](https://resources.jetbrains.com/help/img/rider/2024.1/breakpoint_condition_example.png)
ブレークポイント
ブレークポイントを使用すると、特定のステートメントでプログラムの実行を一時停止し、変数値、コールスタック、その他のプログラムパラメーターを分析したり、式を評価したり、プログラムをステップ実行したりできます。JetBrains Rider では、次の型のブレークポイントを操作できます。行ブレークポイント、コード内の特定の文に設定できます。実行がこの行に達すると、デバッガーはプログラムの実行を中断します。行ブレークポイントは実行可能な行にのみ設定できます。コメント、宣言、空行は、行ブレークポイントの...
![](https://resources.jetbrains.com/help/img/rider/2024.1/rider_debug_window.png)
デバッグウィンドウ
デバッガーセッションを開始すると、デバッグツールウィンドウが表示されます。このウィンドウを使用して、デバッガーセッションを制御し、プログラムデータ(フレーム、スレッド、変数など)を表示して分析し、さまざまなデバッガーアクションを実行します。これは、デバッグツールウィンドウの概要です。ツールウィンドウの使用に関する一般的な手順については、ツールウィンドウを参照してください。ツールウィンドウのタブを切り替えるには、とを押します。セッション:複数のデバッグセッションを同時に実行すると、それらはデ
![](https://pleiades.io/icons/rider.png)
コードをステップスルーする
中断されたプログラムでは、プログラムの実行を制御できます。プログラムをステップ実行することで、実行ポイントを目的のコードに進め、このポイントでプログラムの状態を調べることができます。コードがデバッグモードで実行されている場合、それを一時停止するには 2 つの方法があります。検査するコード内のブレークポイントの設定で、いずれかがヒットするまで待機します。でプログラムの実行を中断します。デバッガーは、一時停止した瞬間に実行中のステートメントを終了し、次に実行する必要のあるステートメントで停止します。...
![](https://resources.jetbrains.com/help/img/rider/2024.1/bookmarks_window.png)
ブックマーク
後でコードのどこかに戻りたい場合は、ソリューションとライブラリコードのファイルとフォルダーだけでなく、コード行もブックマークできます。行ブックマークがガターに表示されます。それに加えて、現在のソリューションのすべてのブックマークはブックマークツールウィンドウ ( ) で使用でき、リストにグループ化できます。ツールウィンドウには、すべてのブレークポイントとピン留めされたデバッガー項目も表示され、これらは専用のリストに自動的に追加されます。ブックマーク切り替え:使用できるブックマークには、次の 2...
![](https://resources.jetbrains.com/help/img/rider/2024.1/rider_attach_to_process.png)
プロセスに接続
JetBrains Rider は、ローカルプロセスとリモートプロセスの両方にデバッガーを接続する方法を提供します。プロセスにアタッチする手順は、プロセスが開始された方法と場所によって異なります。JetBrains Rider デバッガーは任意の .NET または .NETCore プロセスに接続できますが、ある場合はより単純な方法を選択することをお勧めします。同じマシンで実行されている「helloworld」に接続する必要はありません。ローカルプロセスにアタッチする:を押すか、メインメニュー...