ブレークポイントの構成オプションを検討する
- 6 分
デバッガーはコードの分析に役立ち、プログラムのランタイム実行を制御するために使用できます。 Visual Studio Code デバッガーを起動すると、すぐにコードの実行が開始されます。 コードはマイクロ秒単位で実行されるため、効果的なコード デバッグは、コード内の任意のステートメントでプログラムを一時停止できるかどうかによって異なります。 ブレークポイントは、コードの実行が一時停止する場所を指定するために使用されます。
ブレークポイントを設定する
Visual Studio Code には、コードでブレークポイントを構成するいくつかの方法が用意されています。 例えば次が挙げられます。
- コード エディター: 行番号の左側にある列をクリックして、Visual Studio Code エディターでブレークポイントを設定できます。
- [実行] メニュー: [ 実行 ] メニューからブレークポイントのオン/オフを切り替えることができます。 エディターの現在のコード行は、[ ブレークポイントの切り替え ] アクションが適用される場所を指定します。
ブレークポイントを設定すると、エディターの行番号の左側に赤い円が表示されます。 デバッガーでコードを実行すると、ブレークポイントで実行が一時停止します。
ブレークポイントの削除、無効化、および有効化
アプリケーションでブレークポイントを設定し、それらを使用して問題を特定した後、ブレークポイントを削除または無効にすることができます。
ブレークポイントを削除するには、ブレークポイントの設定に使用するアクションを繰り返します。 たとえば、行番号の左側にある赤い円をクリックするか、[ 実行 ] メニューの [ブレークポイントの切り替え] オプションを使用します。
ブレークポイントの場所を保持するが、次のデバッグ セッション中にトリガーしたくない場合はどうなりますか? Visual Studio Code を使用すると、ブレークポイントを完全に削除するのではなく、ブレークポイントを "無効" にすることができます。 アクティブなブレークポイントを無効にするには、行番号の左側にある赤い点を右クリックし、コンテキスト メニューから [ ブレークポイントの無効化 ] を選択します。
ブレークポイントを無効にすると、行番号の左側にある赤い点が灰色のドットに変更されます。
注
ブレークポイントを右クリックしたときに表示されるコンテキスト メニューには、ブレークポイント の削除 (削除) と ブレークポイントの編集のオプションも含まれています。 ブレークポイント の編集 オプションは、このユニットの後半の 「条件付きブレークポイントと Logpoints 」セクションで調べられます。
エディターで個々のブレークポイントを管理するだけでなく、[ 実行 ] メニューには、すべてのブレークポイントに対して動作する一括操作を実行するためのオプションが用意されています。
- [すべてのブレークポイントを有効にする]: 無効になっているすべてのブレークポイントを有効にするには、このオプションを使用します。
- [すべてのブレークポイントを無効にする]: このオプションを使用して、すべてのブレークポイントを無効にします。
- [すべてのブレークポイントを削除]: このオプションを使用して、すべてのブレークポイントを削除します (有効と無効の両方のブレークポイントが削除されます)。
条件付きブレークポイント
条件付きブレークポイントは特別な種類のブレークポイントであり、指定した条件が満たされた場合にのみトリガーされます。 たとえば、 numItems という名前の変数が 5 より大きい場合に実行を一時停止する条件付きブレークポイントを作成できます。
ブレークポイントを右クリックすると、ブレークポイントの 編集 オプションを含むコンテキスト メニューが開きます。 [ ブレークポイントの編集] を選択すると、標準ブレークポイントを条件付きブレークポイントに変更できます。
既存のブレークポイントを編集するだけでなく、条件付きブレークポイントを直接設定することもできます。 (左クリックではなく) 右クリックして新しいブレークポイントを設定する場合は、条件付きブレークポイントの作成を選択できます。
条件付きブレークポイントを作成するときは、条件を表す式を指定する必要があります。
デバッガーは、条件付きブレークポイントを検出するたびに、式を評価します。 式が trueとして評価されると、ブレークポイントがトリガーされ、実行が一時停止します。 式が falseとして評価された場合、ブレークポイントがないかのように実行が続行されます。
たとえば、 for ループのコード ブロック内にあるコードをデバッグする必要があるとします。 デバッグ中の問題は、ループが数回繰り返し完了した後にのみ発生することに気付きました。 ループの反復制御変数 ( i) が 3 より大きい場合にブレークポイントをトリガーすることを決定します。 条件付きブレークポイントを作成し、式 i > 3を指定します。
デバッガーでコードを実行すると、 i > 3 が trueとして評価されるまで、ブレークポイントをスキップします。
i = 4すると、条件付きブレークポイントで実行が一時停止します。
Hit CountブレークポイントのサポートとLogpoints
Visual Studio Code の C# デバッガーでは、Hit CountブレークポイントとLogpointsもサポートされています。
"ヒット カウント" ブレークポイントを使用して、ブレークポイントが実行を "中断" する前に発生する必要がある回数を指定できます。 新しいブレークポイントを作成するとき ([条件付きブレークポイントの追加] アクションを使用)、または既存のブレークポイントを変更する場合 ([条件の編集] アクションを使用して) ヒット カウントの値を指定できます。 どちらの場合も、ドロップダウン メニューを含むインライン テキスト ボックスが開き、ヒット カウント値を入力できます。
"ログポイント" はブレークポイントの一種であり、デバッガーに "割り込む" のではなく、コンソールにメッセージを記録します。 ログポイントは、一時停止または停止できない運用環境のデバッグ中にログを挿入する場合に特に便利です。 ログポイントは、塗りつぶされた円ではなく、"ひし形" のアイコンで表されます。 ログ メッセージはプレーン テキストですが、中かっこ ('{}') 内で評価される式を含めることができます。
ログ ポイントには、条件付き 'expression' や 'hit count' を含め、ログ メッセージが生成されるタイミングをさらに制御できます。 たとえば、次のようにログ メッセージを生成するために、 i = {i} の Logpoint メッセージをヒット カウント条件 >4組み合わせることができます。
まとめ
このユニットで覚えておく必要があるいくつかの重要な点を次に示します。
- Visual Studio Code では、コード エディターまたは [実行 ] メニューからブレークポイントを設定できます。 ブレークポイントコード行は、行番号の左側に赤いドットでマークされます。
- ブレークポイントは、設定に使用したのと同じオプションを使用して削除または無効化できます。 すべてのブレークポイントに影響を与える一括操作は、[ 実行 ] メニューで使用できます。
- 条件付きブレークポイントを使用すると、指定した条件が満たされたとき、または "ヒットカウント" に達したときに実行を一時停止できます。
- Logpoint を使用すると、実行を一時停止したりコードを挿入したりすることなく、ターミナルに情報をログに記録できます。