Konfigurieren des automatischen Debuggens

Benutzer können das automatische Debuggen konfigurieren, um festzustellen, warum ihr System oder eine Anwendung nicht mehr reagiert.

Konfigurieren des automatischen Debuggens für Systemabstürze

Um den Zielcomputer so zu konfigurieren, dass eine Absturzabbilddatei generiert wird, wenn das System nicht mehr reagiert, verwenden Sie die Systemanwendung in Systemsteuerung. Klicken Sie auf Erweiterte Systemeinstellungen, um das Dialogfeld Systemeigenschaften anzuzeigen. Klicken Sie auf der Registerkarte Erweitert dieses Felds unter Start und Wiederherstellung auf Einstellungen, und verwenden Sie dann die entsprechenden Wiederherstellungsoptionen. Alternativ können Sie Absturzabbildoptionen mithilfe des folgenden Registrierungsschlüssels konfigurieren:

HKEY_LOCAL_MACHINE\SYSTEM\Currentcontrolset\Steuerung\CrashControl

Die Datei, die Sie angeben können, ist die Absturzabbilddatei. Der Standardname ist Memory.dmp. Sie können ein Absturzabbild mit einem Kernelmodusdebugger wie WinDbg oder KD debuggen. Weitere Informationen finden Sie in der Dokumentation, die im Debugger enthalten ist.

Konfigurieren des automatischen Debuggens für Anwendungsabstürze

Wenn eine Anwendung nicht mehr reagiert (z. B. nach einer Zugriffsverletzung), ruft das System automatisch einen Debugger auf, der in der Registrierung für das postmortale Debuggen angegeben ist. Die Prozess-ID und das Ereignishandle werden an den Debugger übergeben, wenn die Befehlszeile ordnungsgemäß konfiguriert ist. Im folgenden Verfahren wird beschrieben, wie Sie einen Debugger in der Registrierung angeben.

So legen Sie einen Debugger als Postmortemdebugger fest

  1. Wechseln Sie zum folgenden Registrierungsschlüssel:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Currentversion\AeDebug

  2. Fügen Sie den Debuggerwert mithilfe einer REG_SZ Zeichenfolge hinzu, die die Befehlszeile für den Debugger angibt, oder bearbeiten Sie diesen.

    Die Zeichenfolge sollte den vollqualifizierten Pfad zur ausführbaren Debuggerdatei enthalten. Geben Sie die Prozess-ID und das Ereignishandle mit den Parametern "%ld" an der Befehlszeile des Debuggers an. Verschiedene Debugger verfügen möglicherweise über eigene Parametersyntaxen zum Angeben dieser Werte. Wenn der Debugger aufgerufen wird, wird der erste "%ld" durch die Prozess-ID und der zweite "%ld" durch das Ereignishandle ersetzt.

    Der folgende Text ist ein Beispiel für die Einrichtung von WinDbg als Debugger.

    "C:\debuggers\windbg.exe" -p %ld -e %ld -g
    
  3. Wenn der Debugger ohne Benutzerinteraktion aufgerufen werden soll, fügen Oder bearbeiten Sie den Auto-Wert mithilfe einer REG_SZ Zeichenfolge, die angibt, ob das System dem Benutzer ein Dialogfeld anzeigen soll, bevor der Debugger aufgerufen wird. Die Zeichenfolge "1" deaktiviert das Dialogfeld; die Zeichenfolge "0" aktiviert das Dialogfeld.

Ausschließen einer Anwendung vom automatischen Debuggen

Im folgenden Verfahren wird beschrieben, wie Sie eine Anwendung vom automatischen Debuggen ausschließen, nachdem der Auto-Wert unter der AeDebug-Taste auf 1 festgelegt wurde.

So schließen Sie eine Anwendung vom automatischen Debuggen aus

  1. Wechseln Sie zum folgenden Registrierungsschlüssel:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Currentversion\AeDebug

  2. Fügen Sie dem Unterschlüssel AutoExclusionList einen REG_DWORD Wert hinzu, wobei der Name der Name der ausführbaren Datei und der Wert 1 ist. Standardmäßig ist der Desktopfenster-Manager (Dwm.exe) vom automatischen Debuggen ausgeschlossen, da andernfalls ein System deadlock auftreten kann, wenn Dwm.exe nicht mehr reagiert (der Benutzer kann die vom Debugger angezeigte Benutzeroberfläche nicht sehen, weil Dwm.exe nicht reagiert, und Dwm.exe kann nicht beendet werden, weil sie vom Debugger gehalten wird).

    Windows Server 2003 und Windows XP: Der AutoExclusionList-Unterschlüssel ist nicht verfügbar. Daher können Sie keine Anwendung, einschließlich Dwm.exe, vom automatischen Debuggen ausschließen.

Die Standardmäßigen AeDebug-Registrierungseinträge können wie folgt dargestellt werden:

HKEY_LOCAL_MACHINE
   SOFTWARE
      Microsoft
         Windows NT
            CurrentVersion
               AeDebug
                  Auto = 1
                  AutoExclusionList
                     DWM.exe = 1

Aktivieren des Postmortemdebuggens mit WinDbg