Episode

Defrag Tools #186 - Time Travel Debugging - Advanced

In dieser Episode von Defrag Tools wird Andrew Richards von JCAB (Juan Carlos Arevalo Baeza) und Jordi Mola aus dem Windows Debugger-Team verbunden, um eine erweiterte Verwendung eines neuen Features von WinDbg Preview: Time Travel Debugging (TTD) zu demonstrieren.

Verwandte Links:

WinDbg Preview (Download aus dem Microsoft Store)
Übersicht über das Time Travel Debugging (Onlinedokumentation)
Debugging-Tools für Windows Blog Time Travel Debugging FAQ

Zeitachse:[00:00] Einführungen
[01:07] Beim Ausführen eines Skripts stürzt eine Speicherbeschädigung im Chakra Core ab. Schwer zu debuggen!
[05:33] Reproduzieren Sie jetzt denselben Absturz, während Sie eine Zeitreise-Debugging-Ablaufverfolgung aufzeichnen
[07:06] Betrachten der TTD-Ablaufverfolgung mit nicht optimierten Code
[07:55] Verwenden Sie den Befehl "!events ", um interessante Ereignisse und Ausnahmen in der Ablaufverfolgung aufzulisten und zu ihnen zu springen.
[11:43] Der beschädigte Speicher wurde gefunden, schritt rückwärts, um herauszufinden, woher es kam.
[13:15] Identifizieren des Speicherorts mit einem ungültigen Wert mit dx-Befehl und Festlegen eines Datenhaltepunkts (mit ba), um zu sehen, wer zuvor an ihn geschrieben hat.
[17:37] Näherkommen. Folgen Sie dem Weg rückwärts...
[19:29] Gefunden, wo der schlechte Wert stammt!
[21:08] Ein weiterer Anwendungsfall: Suchen Sie, wo ein Wert schlecht ist, und verfolgen Sie ihn mit einer binären Suche zurück (verwenden Sie !tt mit einem Prozentwert, um zu Speicherorten in der Ablaufverfolgung zu springen)
[22:09] Zweite Demo: Betrachten Sie denselben Absturz, aber mit optimiertem Produktionscode.
[25:09] Ausnahmen werden getroffen, wenn die Ablaufverfolgung entweder vorwärts oder rückwärts ausgeführt wird.
[26:54] Verwenden Sie den Feedback-Hub, um Feedback zu WinDbg Preview zu geben.