Freigeben über


Starten der Debuggingsitzung

In dieser Dokumentation zum Steuern des Debuggens des Benutzermodus über den Kerneldebugger bezieht sich die Zielanwendung auf die Anwendung für den Benutzermodus, die gedebuggt wird, der Zielcomputer auf den Computer verweist, der die Zielanwendung und den NTSD- oder CDB-Prozess enthält, und der Hostcomputer verweist auf den Computer, der den Kerneldebugger enthält.

Um mit der Verwendung dieser Technik zu beginnen, müssen Sie die folgenden Schritte ausführen. Sie können die Schritte 1 und 2 in beiden Reihenfolge ausführen.

  1. Starten Sie NTSD oder CDB auf dem Zielcomputer mit der Befehlszeilenoption -d.

    Sie können sie z. B. mithilfe der folgenden Syntax an einen ausgeführten Prozess anfügen.

    ntsd -d [-y UserSymbolPath] -p PID

    Alternativ können Sie einen neuen Prozess als Ziel starten, indem Sie die folgende Syntax verwenden.

    ntsd -d [-y UserSymbolPath] ApplicationName

    Wenn Sie dies als Postmortemdebugger installieren, verwenden Sie die folgende Syntax.

    ntsd -d [-y UserSymbolPath]

    Weitere Informationen zu diesem Schritt finden Sie unter Debuggen eines Benutzermodusprozesses mithilfe von CDB.

  2. Starten Sie WinDbg oder KD auf dem Hostcomputer, als würden Sie den Zielcomputer debuggen, aber nicht tatsächlich auf den Zielcomputer einbrechen. Verwenden Sie die folgende Syntax, um WinDbg zu verwenden.

    windbg [-y KernelSymbolPath] [-k ConnectionOptions]

    Weitere Informationen zu diesem Schritt finden Sie unter Live Kernel-Mode Debugging Using WinDbg (Classic).

    Hinweis : Wenn Sie WinDbg als Kerneldebugger verwenden, sind viele der vertrauten Features von WinDbg in diesem Szenario nicht verfügbar. Sie können z. B. das Fenster "Lokal", das Fenster "Demontage" oder das Fenster "Aufrufliste" nicht verwenden, und Sie können den Quellcode nicht durchlaufen. Dies liegt daran, dass WinDbg nur als Viewer für den Debugger (NTSD oder CDB) fungiert, der auf dem Zielcomputer ausgeführt wird.

  3. Wenn Sie den Symbolpfad für den Benutzermodus nicht festgelegt haben, legen Sie ihn über die Eingabeaufforderung> fest. Wenn Sie den Kernelmodussymbolpfad nicht festgelegt haben, legen Sie ihn aus der KD-Eingabeaufforderung> fest. Informationen dazu, wie Sie auf diese Eingabeaufforderungen zugreifen und zwischen den Modi wechseln können, finden Sie unter "Modi wechseln".

Wenn Sie CDB verwenden, bleibt das Dem CDB zugeordnete Eingabeaufforderungsfenster gesperrt und nicht verfügbar, während das Debuggen fortgesetzt wird. Wenn Sie NTSD verwenden, wird kein zusätzliches Fenster erstellt, obwohl NTSD eine Prozess-ID auf dem Zielcomputer zugeordnet hat.

Wenn Sie den Benutzermodusdebugger über den Kerneldebugger ausführen und ihn auch als Debugserver verwenden möchten, lesen Sie die Kombination dieser Methode mit Remotedebugging.