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: