ブレークポイントを制御するメソッド
ブレークポイントの場所は、仮想アドレス、モジュールとルーチンのオフセット、またはソース ファイルと行番号 (ソース モードの場合) で指定できます。 オフセットなしでルーチンにブレークポイントを設定すると、そのルーチンが入力されたときにブレークポイントがアクティブになります。
ブレークポイントには、いくつかの追加の種類があります。
ブレークポイントは、特定のスレッドに関連付けることができます。
ブレークポイントは、トリガーされる前に、アドレスを通過する一定の数のパスを有効にすることができます。
ブレークポイントは、トリガーされたときに特定のコマンドを自動的に発行できます。
実行可能でないメモリにブレークポイントを設定し、その場所の読み取りまたは書き込みを監視できます。
ユーザー モードで複数のプロセスをデバッグする場合、ブレークポイントのコレクションは現在のプロセスによって異なります。 プロセスのブレークポイントを表示または変更するには、現在のプロセスとしてプロセスを選択する必要があります。 現在のプロセスの詳細については 「プロセスとスレッドの制御」を参照してください。
ブレークポイントを制御および表示するためのデバッガー コマンド
ブレークポイントを制御または表示するには、次のメソッドを使用できます。
bl (ブレークポイントの一覧) コマンドを使用して、既存のブレークポイントとその現在のステータスを一覧表示します。
.bpcmds (ブレークポイント コマンドの表示) コマンドを使用して、すべてのブレークポイントとその作成に使用されたコマンドを一覧表示します。
bp (ブレークポイントの 設定) コマンドを使用して、新しいブレークポイントを設定します。
新しいブレークポイントを設定するには、 bu (未解決のブレークポイントの設定) コマンドを使用します。 bu で設定されたブレークポイントは未解決のブレークポイントと呼ばれ bp で設定されるブレークポイントとは異なる特性を持ちます。 詳細については、「 未解決のブレークポイント (bu ブレークポイント)」を参照してください。
bm (シンボル ブレークポイントの設定) コマンドを使用して、指定したパターンに一致するシンボルに新しいブレークポイントを設定します。 /d スイッチが含まれている場合 bm で設定されたブレークポイントはアドレス ( bp ブレークポイントなど) に関連付けられます。このスイッチが含まれていない場合は、未解決 ( bu ブレークポイントなど) になります。
ba (アクセス時の中断) コマンドを使用して データ ブレークポイントとも呼ばれる プロセッサ ブレークポイントを設定します。 これらのブレークポイントは、メモリ位置の書き込み先、読み取り時、コードとして実行されたとき、またはカーネル I/O が発生したときにトリガーできます。 詳細については、「 プロセッサ ブレークポイント (ブレークポイント)」を参照してください。
bc (ブレークポイントクリア) コマンドを使用して、1 つ以上のブレークポイントを完全に削除します。
bd (ブレークポイントの 無効化) コマンドを使用して、1 つ以上のブレークポイントを一時的に無効にします。
be (ブレークポイント有効化) コマンドを使用して、無効になった 1 つ以上のブレークポイントを再度有効にします。
br (ブレークポイント番号の 変更) コマンドを使用して、既存のブレークポイントの ID を変更します。
bs (ブレークポイントの 更新コマンド) コマンドを使用して、既存のブレークポイントに関連付けられているコマンドを変更します。
bsc (条件付きブレークポイントの 更新) コマンドを使用して、既存の条件付きブレークポイントが発生する条件を変更します。
WinDbg には、ブレークポイントの制御と表示を容易にするユーザー インターフェイス要素がいくつかあります。 WinDbg (クラシック) でのブレークポイントの設定を参照してください。
各ブレークポイントには、ブレークポイント ID と呼ばれる 10 進数が関連付けられています。 この数値は、さまざまなコマンドのブレークポイントを識別します。
コマンドのブレークポイント
ブレークポイントにヒットしたときに自動的に実行されるコマンドをブレークポイントに含めることができます。 たとえば、次のコマンドは MyFunction+ 0x47 で中断し、ダンプ ファイルを書き込んでから実行を再開します。
0:000> bu MyFunction+0x47 ".dump c:\mydump.dmp; g"
注: カーネル デバッガーからユーザー モード デバッガーを制御する場合は、ブレークポイント のコマンド文字列で g (Go) を使用しないでください。 シリアル インターフェイスは、このコマンドに追いつくことができない可能性があり、CDB に戻すことができなくなります。 この状況の詳細については、「 カーネル デバッガーからのユーザー モード デバッガーの制御」を参照してください。
ブレークポイントの数
カーネル モードでは、最大 32 個のソフトウェア ブレークポイントを使用できます。 ユーザー モードでは、任意の数のソフトウェア ブレークポイントを使用できます。
サポートされているプロセッサ ブレークポイントの数は、ターゲット プロセッサ アーキテクチャによって異なります。
条件付きブレークポイント
特定の条件下でのみトリガーされるブレークポイントを設定できます。 これらの種類のブレークポイントの詳細については、「 条件付きブレークポイントの設定」を参照してください。
あいまいなブレークポイント
デバッガ エンジンのバージョン 10.0.25310.1001 以降では、あいまいなブレークポイント解決がサポートされるようになりました。 あいまいなブレークポイントにより、ブレークポイント式が複数の場所に解決される特定のシナリオで、デバッガーがブレークポイントを設定できます。 詳細については 「あいまいなブレークポイントの解決」を参照してください。