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