Nicht aufgelöste Breakpoints (bu Breakpoints)

Wenn ein Haltepunkt für einen Routinenamen festgelegt wird, der nicht geladen wurde, wird der Haltepunkt als verzögerter, virtueller oder nicht aufgelöster Haltepunkt bezeichnet. (Diese Begriffe werden austauschbar verwendet.) Nicht aufgelöste Breakpoints sind keiner bestimmten Last eines Moduls zugeordnet. Jedes Mal, wenn eine neue Anwendung geladen wird, wird sie auf diesen Routinenamen überprüft. Wenn diese Routine angezeigt wird, berechnet der Debugger die tatsächliche codierte Adresse des virtuellen Haltepunkts und aktiviert den Haltepunkt.

Wenn Sie mit dem Befehl bu einen Haltepunkt festlegen, wird der Haltepunkt automatisch als nicht aufgelöst betrachtet. Wenn sich dieser Haltepunkt in einem geladenen Modul befindet, ist der Haltepunkt weiterhin aktiviert und funktioniert normal. Wenn das Modul jedoch später entladen und neu geladen wird, verschwindet dieser Haltepunkt nicht. Andererseits wird ein Haltepunkt, den Sie mit bp festlegen, sofort in eine Adresse aufgelöst.

Es gibt drei Hauptunterschiede zwischen bp-Haltepunkten und Bu-Haltepunkten :

  • Ein Bp-Haltepunktstandort wird immer in eine Adresse konvertiert. Wenn eine Moduländerung den Code verschiebt, an dem ein Bp-Haltepunkt festgelegt wurde, bleibt der Haltepunkt an der gleichen Adresse. Andererseits bleibt ein Bu-Haltepunkt dem symbolischen Wert (in der Regel ein Symbol plus ein Offset) zugeordnet, der verwendet wurde, und verfolgt diese symbolische Position nach, auch wenn sich seine Adresse ändert.

  • Wenn eine Bp-Haltepunktadresse in einem geladenen Modul gefunden wird und dieses Modul später entladen wird, wird der Haltepunkt aus der Haltepunktliste entfernt. Auf der anderen Seite bleiben Bu-Haltepunkte nach wiederholten Entladungen und Ladevorgängen bestehen.

  • Haltepunkte, die Sie mit bp festlegen, werden nicht in WinDbg-Arbeitsbereichen gespeichert. Haltepunkte, die mit bu festgelegt werden, werden in Arbeitsbereichen gespeichert.

Steuern von Adress-Haltepunkten und nicht aufgelösten Haltepunkten

Adress-Haltepunkte können mit dem Befehl bp (Breakpoint festlegen) oder dem Befehl bm (Set Symbol Breakpoint) erstellt werden, wenn der Schalter /d enthalten ist. Nicht aufgelöste Haltepunkte können mit dem Befehl bu (Set Unresolved Breakpoint) oder dem Befehl bm erstellt werden, wenn der Schalter /d nicht enthalten ist. Befehle zum Deaktivieren, Aktivieren und Ändern von Haltepunkten gelten für alle Arten von Haltepunkten. Befehle, die eine Liste von Haltepunkten anzeigen, enthalten alle Haltepunkte und geben den Typ der einzelnen an. Eine Liste dieser Befehle finden Sie unter Methoden zum Steuern von Haltepunkten.

Im Dialogfeld WinDbg-Haltepunkte werden alle Haltepunkte angezeigt, die nicht aufgelöste Haltepunkte mit der Notation "u" angeben. Dieses Dialogfeld kann verwendet werden, um jeden Haltepunkt zu ändern. Das Textfeld Befehl in diesem Dialogfeld kann verwendet werden, um einen beliebigen Breakpointtyp zu erstellen. wenn der Typ ausgelassen wird, wird ein nicht aufgelöster Haltepunkt erstellt. Ausführliche Informationen finden Sie unter Bearbeiten | Haltepunkte. Wenn Sie einen Haltepunkt mit der Maus im Fenster "WinDbg Disassembly" oder "Quelle" festlegen, erstellt der Debugger einen nicht aufgelösten Haltepunkt.