ブレークポイントとトレースポイントの使用
このトピックの内容は、次の製品に該当します。
エディション |
Visual Basic |
C# |
F# |
C++ |
Web Developer |
---|---|---|---|---|---|
Express |
|||||
Pro、Premium、Ultimate |
このトピックでは、ブレークポイントの基本情報について説明します。
ブレークポイントのグリフ
基本的なブレークポイント
単一行に対する複数のブレークポイント
高度なブレークポイント
ブレークポイントの制限
ブレークポイントのグリフ
ソース ウィンドウと [逆アセンブル] ウィンドウでは、左の余白に表示される "グリフ" と呼ばれる記号で、ブレークポイントの位置が示されます。 次の表は、このグリフについての説明です。
マウスをブレークポイントのグリフに合わせると、ブレークポイントの詳細なヒントが表示されます。 このヒントは、エラーや警告のブレークポイントの場合、特に便利です。
グリフ |
説明 |
---|---|
通常のブレークポイント。 塗りつぶしのグリフは、ブレークポイントが有効であることを示します。 中空のグリフは、無効であることを示します。 |
|
高度なブレークポイント。 アクティブまたは無効。 + 記号は、ブレークポイントに 1 つ以上の高度な機能 (条件、ヒット カウント、フィルターなど) が付属していることを示します。 |
|
マップされたブレークポイント。 アクティブまたは無効。 このブレークポイントは、ASP/ASP.NET コードで設定され、対応する HTML ページのブレークポイントにマップされるか、またはサーバー側のスクリプト ファイルに設定され、対応するクライアント側スクリプト ファイルにマップされます。 |
|
トレースポイント。 アクティブまたは無効。 このポイントをヒットすると、指定したアクションが実行されますが、プログラムの実行は中断されません。 |
|
高度なトレースポイント。 アクティブまたは無効。 + 記号は、トレースポイントに 1 つ以上の高度な機能 (条件、ヒット カウント、フィルターなど) が付属していることを示します。 |
|
マップされたトレースポイント。 アクティブまたは無効。 このトレースポイントは、ASP/ASP.NET コードで設定され、対応する HTML ページのトレースポイントにマップされます。 |
|
ブレークポイントまたはトレースポイントのエラー。 X 記号は、ブレークポイントまたはトレースポイントが、エラー状態のために設定できなかったことを示します。 |
|
ブレークポイントまたはトレースポイントの警告。 感嘆符 (!) は、ブレークポイントまたはトレースポイントが、一時的な状況のために設定できなかったことを示します。 一般に、ブレークポイントまたはトレースポイントの位置にあるコードが読み込まれていないことを意味します。 プロセスにアタッチしたのにそのプロセスのシンボルが読み込まれなかったときにも表示されることがあります。 コードまたはシンボルが読み込まれると、ブレークポイントは有効になり、グリフも変わります。 |
基本的なブレークポイント
最も基本的なブレークポイントは、ソース コードの行または関数に設定するものです。 次のトピックで、基本的なブレークポイントの設定方法と操作方法について説明します。
方法 : [呼び出し履歴] ウィンドウで関数呼び出しにブレークポイントを設定する
注意
1 つのソース ファイルのコード行数が 64,000 行を超える場合、64,000 行より後のブレークポイントはヒットしません。
単一行に対する複数のブレークポイント
コード 1 行に実行可能なステートメントが複数含まれていることがあります。 そのような場合、その行に複数のブレークポイントを設定できます。 現在選択されているブレークポイントが含まれるコード ステートメントの近くにボックスが表示されます。 このボックスは、同じ行の複数のブレークポイントを区別するのに便利です。 ブレークポイントは、[ブレークポイント] ウィンドウで選択するか、ソース ウィンドウでブレークポイントが含まれるステートメントをクリックします。
高度なブレークポイント
Visual C++ Express または Visual Studio の任意のエディションを使用すると、より高度なブレークポイントの設定、高度な機能を持つブレークポイントの作成、および高度な方法でのブレークポイント操作が可能になります。
Visual Studio を設定するときに選択した既定の IDE 設定により、必要なメニュー コマンドが非表示になるタスクがあります。 詳細については、「方法 : 非表示のデバッガー コマンドを復元する」を参照してください。
メモリ アドレス上のブレークポイントとメモリの変更
メモリ アドレスにブレークポイントを設定できます。 詳細については、「方法 : アドレス ブレークポイントを設定する」を参照してください。 C/C++ では、メモリの変更時にヒットするブレークポイントを設定できます。 詳細については、「方法 : データ ブレークポイントを設定する (ネイティブのみ)」を参照してください。
フィルター、ヒット カウント、および条件
フィルター、ヒット カウント、および条件は、トレースポイントを含むすべてのブレークポイントに設定できる高度な機能です。
フィルターによって、ブレークポイントは指定したコンピューター、プロセス、およびスレッドに設定されます。 フィルターが特に便利なのは、複数のプロセッサで実行されているアプリケーションをデバッグするときです。 詳細については、「方法 : ブレークポイント フィルターを指定する」を参照してください。
ヒット カウントでは、ブレークポイントのヒット回数を追跡します。 既定では、ブレークポイントにヒットするたびに実行が中断されます。 この動作は、ブレークポイントのヒット カウントが指定の値に達したときや超えたとき、またはヒット カウントが指定した値の倍数になったときに中断するように変更できます。 指定したヒット カウントは、そのデバッグ セッションでのみ保持されます。 詳細については、「方法 : ヒット カウントを指定する」を参照してください。
条件は、ブレークポイントで中断するかどうかの決定を評価する式です。 詳細については、「方法 : ブレークポイント条件を指定する」を参照してください。
高度なブレークポイントのインターフェイス
パワー ユーザーは、次のトピックで説明する高度な機能を活用できます。
ブレークポイントの制限
混在モード (ネイティブおよびマネージ) のコードをデバッグするときは、システム コンポーネントにブレークポイントを設定しないでください。 混在モード デバッグ時にシステム コンポーネントにブレークポイントを設定すると、共通言語ランタイムが中断し、デバッガーが反応しなくなる可能性があります。 詳細については、「方法 : 混合モード アプリケーションをデバッグする」を参照してください。
デバッガーからサービスへのアタッチは、ステップ インで XML Web サービスへの呼び出しを行わない限り、自動的には行われません。 つまり、XML Web サービス内に設定されたブレークポイントにヒットするためには、目的のサービスをステップ インで呼び出す必要があります。 [ステップ イン] ではなく、[デバッグ開始] または [続行] を使用してブレークポイントまで実行しようとしても、そのブレークポイントはヒットしません。
スクリプト ファイルに含まれているマップされたブレークポイントの制限の詳細については、「Limitations on Script Debugging」を参照してください。