Freigeben über


Methoden zum Steuern von Haltepunkten

Ein Haltepunkt ist ein Speicherort im ausführbaren Code, an dem das Betriebssystem die Ausführung beendet und in den Debugger einbricht. Auf diese Weise können Sie die Ziel- und Problemdebuggerbefehle analysieren.

Sie können den Speicherort eines Haltepunkts durch eine virtuelle Adresse, durch Modul- und Routineoffsets oder durch eine Quelldatei und Zeilennummer angeben (im Quellmodus). Wenn Sie einen Haltepunkt auf eine Routine ohne Offset setzen, wird der Haltepunkt aktiviert, wenn die Routine aufgerufen wird.

Es gibt mehrere zusätzliche Arten von Haltepunkten:

  • Ein Haltepunkt kann einem bestimmten Thread zugeordnet werden.

  • Ein Haltepunkt kann eine feste Anzahl von Durchläufen über eine Adresse ermöglichen, bevor er ausgelöst wird.

  • Ein Haltepunkt kann bestimmte Befehle automatisch ausführen, wenn er ausgelöst wird.

  • Ein Haltepunkt kann in nicht-ausführbarem Speicher gesetzt werden, um zu überwachen, ob diese Speicherstelle gelesen oder beschrieben wird.

Wenn Sie mehrere Prozesse im Benutzermodus debuggen, hängt die Sammlung von Haltepunkten vom aktuellen Prozess ab. Zum Anzeigen oder Ändern der Haltepunkte eines Prozesses müssen Sie den Prozess als aktuellen Prozess auswählen. Weitere Informationen zum aktuellen Prozess finden Sie unter Steuern von Prozessen und Threads.

Debuggerbefehle zum Steuern und Anzeigen von Haltepunkten

Zum Steuern oder Anzeigen von Haltepunkten können Sie die folgenden Methoden verwenden:

In WinDbg gibt es mehrere Benutzeroberflächenelemente, die das Steuern und Anzeigen von Haltepunkten erleichtern. Siehe auch Festlegen von Haltepunkten in WinDbg (Klassisch).

Jeder Haltepunkt weist eine Dezimalzahl auf, die als Haltepunkt-ID bezeichnet wird. Diese Zahl identifiziert den Haltepunkt (Breakpoint) in verschiedenen Befehlen.

Haltepunktbefehle

Sie können einen Befehl in einen Haltepunkt einschließen, der automatisch ausgeführt wird, wenn der Haltepunkt erreicht wird. Der folgende Befehl hält beispielsweise bei MyFunction+0x47 an, schreibt ein Speicherabbild und setzt dann die Ausführung fort.

0:000> bu MyFunction+0x47 ".dump c:\mydump.dmp; g" 

Anmerkung Wenn Sie den Benutzermodusdebugger über den Kerneldebugger steuern, verwenden Sie nicht g (Go) in der Haltepunkt-Befehlszeichenfolge. Die serielle Schnittstelle kann möglicherweise nicht mit diesem Befehl auf dem Laufenden bleiben, und Sie können nicht wieder in CDB wechseln. Weitere Informationen zu dieser Situation finden Sie unter Steuern des User-Mode Debuggers aus dem Kerneldebugger.

Anzahl der Breakpoints

Im Kernelmodus können Sie maximal 32 Software-Haltepunkte verwenden. Im Benutzermodus können Sie beliebig viele Software-Breakpoints verwenden.

Die Anzahl der unterstützten Prozessorunterbrechungen hängt von der Zielprozessorarchitektur ab.

Bedingte Haltepunkte

Sie können einen Haltepunkt festlegen, der nur unter bestimmten Bedingungen ausgelöst wird. Weitere Informationen zu diesen Arten von Haltepunkten finden Sie unter Festlegen eines bedingten Haltepunkts.

Mehrdeutige Haltepunkte

In Version 10.0.25310.1001 oder höher der Debugger-Engine wird jetzt die mehrdeutige Haltepunktauflösung unterstützt. Mehrdeutige Haltepunkte ermöglichen es dem Debugger, Haltepunkte in bestimmten Szenarien festzulegen, in denen ein Haltepunktausdruck an mehreren Code-Positionen aufgelöst wird. Weitere Informationen finden Sie unter "Mehrdeutige Haltepunktauflösung".

Siehe auch

Verwenden von Haltepunkten

Haltepunktsyntax

bp, bu, bm (Haltepunkt festlegen)

Ungelöste Haltepunkte (bu Breakpoints)