Freigeben über


Zeitreise-Debugging – Eine Ablaufverfolgung aufzeichnen

Zeitreise-Debugging-Logo mit einer Uhr.

Dieser Abschnitt beschreibt die Aufzeichnung von Ablaufverfolgungen für das Zeitreise-Debugging (TTD). Es gibt zwei Möglichkeiten, eine Ablaufverfolgung in WinDbg aufzuzeichnen: Launch Executable (advanced) und Attach to a process.

Launch executable (advanced)

Gehen Sie folgendermaßen vor, um eine ausführbare Datei zu starten und eine TTD-Ablaufverfolgung aufzuzeichnen.

  1. Wählen Sie in WinDbg File>Start Debugging>Launch Executable (Advanced) aus.

  2. Geben Sie den Pfad zu der ausführbaren Datei im Benutzermodus ein, die Sie aufzeichnen möchten, oder wählen Sie Browse aus, um zu der ausführbaren Datei zu navigieren. Informationen zum Arbeiten mit dem Menü Launch Executable in WinDbg finden Sie unter WinDbg – Starten einer Sitzung im Benutzermodus.

  3. Aktivieren Sie das Kontrollkästchen Record with Time Travel Debugging, um eine Ablaufverfolgung aufzuzeichnen, wenn die ausführbare Datei gestartet wird.

    Screenshot von WinDbg mit dem Kontrollkästchen Start recording im Bildschirm Launch Executable (advanced).

  4. Wenn Sie Configure and Record auswählen, können Sie einen Speicherort für die Ablaufverfolgungsdatei festlegen.

    Screenshot des Dialogfelds Configure Recording mit der Schaltfläche Browse und dem angezeigten Dateipfad.

  5. Um die Aufzeichnung auf bestimmte Module zu beschränken, aktivieren Sie „Record subset of execution“, und geben Sie die Modulnamen ein. Wenn Sie zum Beispiel nur die Ausführung von notepad.exe aufzeichnen möchten, geben Sie „notepad.exe“ in das Textfeld ein. Wenn Sie die Ausführung von notepad.exe und kernelbase.dll aufzeichnen möchten, geben Sie „notepad.exe,kernelbase.dll“ in das Textfeld ein.

    Screenshot des Dialogfelds Configure Recording mit aktiviertem Kontrollkästchen Record subset of execution und dem Textfeld Module list.

  6. Wählen Sie OK aus, um die ausführbare Datei zu starten und die Aufzeichnung zu beginnen.

  7. Der Aufzeichnungsdialog erscheint und zeigt an, dass die Ablaufverfolgung aufgezeichnet wird.

    Screenshot des TTD-Aufnahme-Popups mit den Schaltflächen Stop und Debug sowie Cancel.

  8. Informationen zur Aufzeichnung finden Sie unter So nehmen Sie auf.

Anfügen an einen Prozess

Führen Sie die folgenden Schritte aus, um etwas an einen Prozess anzuhängen und eine TTD-Aufzeichnung zu erstellen.

  1. Wählen Sie in WinDbg File>Start debugging>Attach to process aus.

  2. Wählen Sie den Benutzermodusprozess aus, den Sie verfolgen möchten. Informationen über die Arbeit mit dem Menü Attach to a process in WinDbg finden Sie unter WinDbg – Starten einer Sitzung im Benutzermodus.

    Screenshot von WinDbg, der das Kontrollkästchen „Start recording“ im Bildschirm „Attach to Process“ anzeigt.

  3. Aktivieren Sie das Kontrollkästchen Record Process with Time Travel Debugging, um eine Ablaufverfolgung zu erstellen, wenn die ausführbare Datei gestartet wird.

  4. Wählen Sie Attach aus, um die Aufzeichnung zu starten.

  5. Der Aufzeichnungsdialog erscheint und zeigt an, dass die Ablaufverfolgung aufgezeichnet wird.

    Screenshot des TTD-Aufzeichnungs-Popups mit den Optionen Stop, Debug und Cancel.

  6. Informationen zur Aufzeichnung finden Sie unter So nehmen Sie auf.

So nehmen Sie auf

  1. Der Prozess wird aufgezeichnet, daher müssen Sie hier das Problem verursachen, das Sie beheben möchten. Sie können eine problematische Datei öffnen oder eine bestimmte Schaltfläche in der App auswählen, um das betreffende Ereignis auszulösen.

  2. Während das Dialogfeld für die Aufnahme angezeigt wird, können Sie Folgendes ausführen:

    • Stop and debug – Wenn Sie diese Option auswählen, wird die Aufzeichnung gestoppt, die Ablaufverfolgungsdatei erstellt und die Ablaufverfolgungsdatei geöffnet, damit Sie mit der Fehlersuche beginnen können.
    • Cancel – Wenn Sie diese Option auswählen, wird die Aufzeichnung beendet und die Ablaufverfolgungsdatei erstellt. Sie können die Ablaufverfolgungsdatei zu einem späteren Zeitpunkt öffnen.
  3. Sobald die Aufzeichnung abgeschlossen ist, schließen Sie Ihre Anwendung oder klicken Sie auf Stop and debug.

    Hinweis

    Sowohl Stop and debug als auch Cancel beenden den zugehörigen Prozess.

  4. Wenn die aufgezeichnete Anwendung beendet wird, wird die Ablaufverfolgungsdatei geschlossen und auf die Festplatte geschrieben. Dies ist auch der Fall, wenn Ihr Programm abstürzt.

  5. Wenn eine Ablaufverfolgungsdatei geöffnet wird, indiziert der Debugger die Ablaufverfolgungsdatei automatisch. Die Indizierung ermöglicht eine genauere und schnellere Suche nach Speicherwerten. Dieser Indizierungsprozess dauert bei größeren Ablaufverfolgungsdateien länger.

    ...
    00007ffc`61f789d4 c3              ret
    0:000> !index
    Indexed 1/1 keyframes
    Successfully created the index in 96ms.
    

    Hinweis

    Ein Keyframe ist eine Stelle in einer Ablaufverfolgung, die für die Indexierung verwendet wird. Keyframes werden automatisch erzeugt. Größere Ablaufverfolgungen enthalten mehr Keyframes. Wenn die Ablaufverfolgung indiziert ist, wird die Anzahl der Keyframes angezeigt.

  6. An diesem Punkt befinden Sie sich am Anfang der Ablaufverfolgungsdatei und können in der Zeit vor- und zurückreisen.

    Tipp

    Die Verwendung von Haltepunkten ist eine gängige Methode, um die Codeausführung bei einem bestimmten Ereignis von Interesse anzuhalten. Einzigartig an TTD ist, dass Sie einen Haltepunkt setzen und in der Zeit zurückreisen können, bis dieser Haltepunkt nach der Aufzeichnung der Ablaufverfolgung erreicht wird. Die Möglichkeit, den Prozessstatus zu untersuchen, nachdem ein Problem aufgetreten ist, um die beste Stelle für einen Haltepunkt zu bestimmen, ermöglicht zusätzliche Debugging-Abläufe. Ein Beispiel für die Verwendung eines Haltepunkts in der Vergangenheit finden Sie unter Zeitreise-Debugging – Beispiel-App Walkthrough.

Nächste Schritte

Jetzt, wo Sie eine TTD-Aufzeichnung aufgezeichnet haben, können Sie die Aufzeichnung wieder abspielen oder mit der Aufzeichnungsdatei arbeiten, z. B. indem Sie sie mit einem Kollegen teilen. Weitere Informationen finden Sie in diesen Themen.

Zeitreise-Debugging – Wiederholung einer Aufzeichnung

Zeitreise-Debugging – Arbeiten mit Ablaufverfolgungsdateien

Zeitreise-Debugging – Problembehebung

Zeitreise-Debugging – Beispiel-App Walkthrough

Weitere Informationen

Zeitreise-Debugging – Überblick