Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Wenn ein Haltepunkt für einen Routinenamen festgelegt ist, 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 Haltepunkte 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 einen Haltepunkt mithilfe des Bu-Befehls 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 festgelegt haben, sofort auf eine Adresse aufgelöst.
Es gibt drei Hauptunterschiede zwischen Bp-Haltepunkten und Bu-Haltepunkten :
Eine Bp-Haltepunktposition wird immer in eine Adresse konvertiert. Wenn ein Modul den Code verschiebt, an dem ein bp-Haltepunkt festgelegt wurde, bleibt der Haltepunkt an derselben Adresse. Andererseits bleibt ein Bu-Haltepunkt dem symbolischen Wert (in der Regel ein Symbol plus offset) zugeordnet, das verwendet wurde, und verfolgt diese symbolische Position auch dann, wenn sich die 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. Andererseits bleiben bu Haltepunkte nach wiederholten Entladevorgängen und Ladevorgängen bestehen.
Haltepunkte, die Sie mit bp festlegen, werden nicht in den WinDbg-Arbeitsbereichen gespeichert. Unterbrechungspunkte, die mit bu festgelegt sind, werden in Arbeitsbereichen gespeichert.
Steuern von Adresstrennpunkten und nicht aufgelösten Haltepunkten
Adresshaltepunkte können mit dem Befehl bp (Set Breakpoint) oder dem Bm-Befehl (Set Symbol Breakpoint) erstellt werden, wenn der Schalter /d enthalten ist. Nicht aufgelöste Haltepunkte können mit dem Befehl bu (Unresolved Breakpoint festlegen) oder dem BM-Befehl erstellt werden, wenn der Schalter /d nicht enthalten ist. Befehle, mit denen Haltepunkte deaktiviert, aktiviert und geändert werden, gelten für alle Arten von Haltepunkten. Befehle, die eine Liste von Haltepunkten anzeigen, enthalten alle Haltepunkte und geben den Typ der einzelnen Haltepunkte an. Eine Liste dieser Befehle finden Sie bei den Methoden zur Steuerung von Haltepunkten.
Im Dialogfeld "WinDbg Haltepunkte" werden alle Haltepunkte angezeigt, wobei nicht aufgelöste Haltepunkte mit der Notation "u" gekennzeichnet sind. Dieses Dialogfeld kann zum Ändern eines beliebigen Haltepunkts verwendet werden. Das Textfeld "Befehl" in diesem Dialogfeld kann verwendet werden, um einen beliebigen Haltepunkttyp zu erstellen; Wenn der Typ ausgelassen wird, wird ein nicht aufgelöster Haltepunkt erstellt. Details finden Sie unter Bearbeiten | Haltepunkte. Wenn Sie einen Haltepunkt mithilfe der Maus im WinDbg Disassembly-Fenster oder Quellfenster festlegen, erstellt der Debugger einen nicht aufgelösten Haltepunkt.