WindDBG - Principe et prerequis

Qu'est-ce que WinDBG ?

WinDBG est un outil débugueur gratuit, distribué et réalisé par Microsoft® pour son système d'exploitation Windows®. C'est un logiciel muni d'un environnement graphique qui peut être utilisé pour débuguer des applications en mode utilisateur, des pilotes, ou le système d'exploitation lui-même en mode noyau.

 

WinDBG peut être utilisé pour débuguer des dumps (copie brute) mémoire en mode noyau ou utilisateur, après un plantage. Cette technique est connue sous le nom de débugage post-mortem. (source : Wikipedia).

Prérequis

Pour utiliser WinDBG, il est nécessaire de disposer du dump, de certaines DLL, enregistrées dans un répertoire visible par WinDBG. 

Récupérer le dump du processus problématique

Le dump peut être réalisé depuis le Gestionnaire de processus de Windows® ou à l'aide d'autres outils tels que Procdump de Sysinternals®.

Exemple de .bat en tâche planifiée ayant pour but de réaliser jusqu'à 5 dumps de watchdoc.exe et sa mémoire quand celui-ci prend un cpu core sur les 4 (25%) pendant plus de 80 secondes:

procdump.exe -c 24 -s 80 -ma -n 5 /accepteula watchdoc.exe

Plus d'information : https://technet.microsoft.com/en-us/sysinternals/dd996900.aspx

Récupérer les DLL

Pour récupérer les DLL, se placer sur le serveur où le dump a été réalisé et trouver :

  • sos.dll

  • clr.dll

  • mscorwks.dll

(Pour un système 64 bits, ces DLL se trouvent dans : C:\Windows\Microsoft.NET\Framework64\v4.0.30319)

Sauvegarder les DLLs

Pour sauvegarder les DLLs, créer un répertoire C:\global (par exemple) et déclarer ce répertoire dans la variable système PATH du poste où vous exécutez WinDBG.

Informations

Trouvez plus d'informations sur les sites suivants: