Windows debugging - Analyse d'un crash dump BSOD

Table des matières :

Introduction

Nous avons tous déja vu au moins une fois un blue screen of death (BSOD) sur Windows. Mais que se passe t’il exactement ? Ou se trouvent les informations du crash ? Comment les analyser ?

Au moment d’un blue screen of death (BSOD), le système Windows génère un fichier situé dans C:\Windows\MEMORY.DMP contenant toutes les informations utile sur l’état du système au moment du crash.

Installation du Windows SDK

Pour travailler avec les kernel crashdumps de Windows, nous allons avoir besoin du logiciel WinDbg, présent dans le Software Developement Kit (SDK) de Windows:

Installation des outils

Dans un premier temps, nous allons installer les Debbuging Tools for Windows du SDK :

A la fin de l’installation, nous avons WinDbg d’installé sur la machine pour toutes les architectures supportées par Windows 10.

Configuration de WinDbg

Maintenant que nous avons WinDbg d’installé, nous devons le configurer avant d’importer un Crashdump. La première chose à configurer est la source de symboles pour le débogage. Pour cela, il faut aller dans le menu File > Symbol file path et coller cette valeur permettant d’ajouter les sources de symboles locales (cache dans C:\Windows\PDBcache) et en ligne (depuis http://msdl.microsoft.com/download/symbols):

SRV*C:\Windows\PDBcache*http://msdl.microsoft.com/download/symbols

Ce qui nous donne:

Cliquez ensuite sur OK et la source de symboles est configurée.

Chargement du dump dans WinDbg

Tout d’abord, nous devons lancer WinDbg en tant qu’Administrateur pour pouvoir lire le fichier MEMORY.DMP contenant toutes les informations récupérées au moment du crash et du Blue Screen of Death.

Ensuite nous choisissons le dump mémoire, (dans C:\Windows\MEMORY.DMP):

Analyse du crash

Maintenant que nous avons le dump mémoire chargé dans WinDbg, nous pouvons démarrer une analyse du crash:

Une fois le nous pouvons lancer une autoanalyse du crash avec !analyze -v. Ces premiers résultats d’analyse nous permettent d’avoir une idée de ce qui a causé le crash, et dans quelle librairie / fonction il s’est produit:

Références