Episodio

Strumenti di deframmentazione #186 - Debug del viaggio temporale - Avanzato

In questo episodio di Defrag Tools, Andrew Richards è stato unito da JCAB (Juan Carlos Arevalo Baeza) e Dalla Mola del team debugger di Windows per dimostrare un uso più avanzato di una nuova funzionalità di WinDbg Preview: Time Travel Debugging (TTD).

Collegamenti correlati:

Anteprima di WinDbg (download da Microsoft Store)
Panoramica del debug di viaggi in tempo (documentazione online)
Domande frequenti sugli strumenti di debug per il debug del tempo di spostamento nel blog di Windows

Sequenza temporale:[00:00] Introduzione
[01:07] Quando si esegue uno script, si verifica un arresto anomalo del danneggiamento della memoria nel core di Python. Difficile eseguire il debug.
[05:33] Riprodurre ora lo stesso arresto anomalo durante la registrazione di una traccia di debug del viaggio temporale
[07:06] Esaminare la traccia TTD con codice non ottimizzato
[07:55] Usare il comando !events per elencare eventi ed eccezioni interessanti nella traccia e passare a essi
[11:43] Trovato la memoria danneggiata, passo indietro per capire da dove proviene.
[13:15] Identificazione della posizione di memoria contenente un valore non valido con il comando dx e impostazione di un punto di interruzione dei dati (con ba) per vedere chi ha scritto in precedenza.
[17:37] Sempre più vicino. Continuate a seguire il sentiero indietro...
[19:29] Trovato da dove proviene il valore cattivo!
[21:08] Un altro caso d'uso: trovare dove un valore non è valido e monitorarlo da lì con una ricerca binaria (usare !tt con un valore percentuale per passare alle posizioni nella traccia)
[22:09] Seconda demo: Esaminare lo stesso arresto anomalo ma con codice di produzione ottimizzato.
[25:09] Le eccezioni verranno rilevate durante l'esecuzione della traccia in avanti o indietro.
[26:54] Per inviare commenti e suggerimenti sull'anteprima di WinDbg, usare l'hub di Feedback.