読み込まれていないルーチン名に ブレークポイント が設定されている場合、ブレークポイントは 遅延ブレークポイント、 仮想ブレークポイント、または 未解決 ブレークポイントと呼ばれます。 (これらの用語は同じ意味で使用されます)。未解決のブレークポイントは、モジュールの特定の負荷には関連付けされません。 新しいアプリケーションが読み込まれるたびに、このルーチン名がチェックされます。 このルーチンが表示された場合、デバッガーは仮想ブレークポイントの実際のコード化されたアドレスを計算し、ブレークポイントを有効にします。
bu コマンドを使用してブレークポイントを設定すると、ブレークポイントは自動的に未解決と見なされます。 このブレークポイントが読み込まれたモジュール内にある場合、ブレークポイントは引き続き有効になり、正常に機能します。 ただし、モジュールが後でアンロードされて再読み込みされた場合、このブレークポイントは消えません。 一方、 bp で設定したブレークポイントはすぐにアドレスに解決されます。
bp ブレークポイントと bu ブレークポイントには、主に次の 3 つの違いがあります。
bp ブレークポイントの場所は常にアドレスに変換されます。 モジュールの変更によって bp ブレークポイントが設定されたコードが移動された場合、ブレークポイントは同じアドレスに残ります。 一方、 bu ブレークポイントは、使用されたシンボル値 (通常はシンボルとオフセット) に関連付けられたままであり、アドレスが変更された場合でも、このシンボリック位置を追跡します。
読み込まれたモジュールで bp ブレークポイント アドレスが見つかり、そのモジュールが後でアンロードされた場合、ブレークポイントはブレークポイントリストから削除されます。 一方、 bu ブレークポイントは、アンロードと読み込みを繰り返した後も保持されます。
bp で設定したブレークポイントは、WinDbg ワークスペースには保存されません。 bu で設定されたブレークポイントは、ワークスペースに保存されます。
アドレス ブレークポイントと未解決のブレークポイントの制御
アドレス ブレークポイントは、bp (ブレークポイントの設定) コマンド、または /d スイッチが含まれている場合は bm (シンボル ブレークポイントの設定) コマンドを使用して作成できます。 未解決のブレークポイントは、bu (未解決のブレークポイントの設定) コマンド、または /d スイッチが含まれていない場合は bm コマンドを使用して作成できます。 ブレークポイントを無効にし、有効にし、変更するコマンドは、あらゆる種類のブレークポイントに適用されます。 ブレークポイントの一覧を表示するコマンドには、すべてのブレークポイントが含まれており、それぞれの種類を示します。 これらのコマンドの一覧については、「 ブレークポイントを制御する方法」を参照してください。
[WinDbg ブレークポイント ] ダイアログ ボックスには、すべてのブレークポイントが表示され、"u" という表記の未解決のブレークポイントが示されます。 このダイアログ ボックスを使用して、ブレークポイントを変更できます。 このダイアログ ボックスの [コマンド ] テキスト ボックスを使用して、任意の種類のブレークポイントを作成できます。型を省略すると、未解決のブレークポイントが作成されます。 詳細については、「 編集 |ブレークポイント。 WinDbg 逆アセンブル ウィンドウ または ソース ウィンドウでマウスを使用してブレークポイントを設定すると、デバッガーは未解決のブレークポイントを作成します。