Freigeben über


Debuggen von User-Mode Prozessen ohne Symbole

Es ist wichtig, symbole auf dem fehlerhaften Computer zu haben, bevor sie den Debugger für einen Benutzermodusfehler starten. Manchmal wird der Debugger jedoch ohne Symbole gestartet. Wenn das Problem leicht reproduzierbar ist, können Sie einfach Symbole kopieren und erneut ausführen. Wenn das Problem jedoch nicht erneut auftritt, können noch einige Informationen aus dem Fehler abgerufen werden:

  1. Um herauszufinden, was die Adressen bedeuten, benötigen Sie einen Computer, der mit dem Fehler übereinstimmt. Es sollte über dieselbe Plattform (x86 oder x64) verfügen und mit derselben Version von Windows geladen werden.

  2. Wenn Sie den Computer konfiguriert haben, kopieren Sie die Benutzermodussymbole und die Binärdateien, die Sie debuggen möchten, auf den neuen Computer.

  3. Starten Sie CDB oder WinDbg auf dem Computer ohne Symbol.

  4. Wenn Sie nicht wissen, welche Anwendung auf dem Computer ohne Symbol fehlgeschlagen ist, geben Sie eine | (Prozessstatus) Befehl. Wenn Sie dadurch keinen Namen erhalten, brechen Sie auf dem Computer ohne Symbol in KD ein, und führen Sie einen !process 0 0 aus, und suchen Sie nach der Prozess-ID, die vom CDB-Befehl angegeben wird.

  5. Wenn Sie die beiden Debugger eingerichtet haben – einer mit Symbolen, für die der Fehler nicht aufgetreten ist, und einer, der den Fehler ausgelöst hat, aber ohne Symbole ist – geben Sie einen k-Befehl (Display Stack Backtrace) auf dem Computer ohne Symbol aus.

  6. Geben Sie auf dem Computer mit Symbolen den Befehl u (Unassemble) für jede Adresse aus, die im Stapel ohne Symbol angegeben ist. Dadurch erhalten Sie die Stapelüberwachung für den Fehler auf dem Computer ohne Symbol.

  7. Wenn Sie sich eine Stapelüberwachung ansehen, können Sie die Modul- und Funktionsnamen sehen, die am Aufruf beteiligt sind.