WinDBG - Procédure d'utilisation
Charger le dump et renommer mwcorwks.dll
Pour charger le dump :
-
exécutez WinDbg 64 bits (pour un dump réalisé sur une plateforme 64 bits) ;
-
ouvrez le fichier dump avec CTRL-D (surtout pas en drag&drop) ;
-
déterminez le nom du fichier attendu par WinDbg en exécutant la commande suivante :
.cordll -ve -u -l
Dans cet exemple, la dll mscordacwks.dll doit être renommée : mscordacwks_AMD64_AMD64_4.6.1055.00.dll
-
renommez le fichier DLL mscordacwks.dll avec le nom identifié à l'étape précédente.
Charger SOS et CLR
Charger les modules SOS et CLR grâce aux commandes suivantes :
!load sos
!load clr
si l'opération se déroule correctement, aucun message n'est affiché.
Commandes utiles
-
Identifier les processus ayant consommé du CPU grâce à la commande !runaway qui permet de les identifier :
-
Sélectionner un thread : lLa commnade ~<ID du Thread>s permet de se placer dans le contexte du thread voulu :
-
Afficher un dump de la stack : la commande !dumpstack -EE permet d'afficher la call stack managée avec les Method Descriptors :
-
Afficher la stack CLR : la commande !clrstack peut être couplée avec :
-p pour afficher les paramètres,
-l pour afficher les locals,
-a pour afficher les deux.
-
Afficher les infos du threadpool : la commande !threadpool affiche des informations notamment le nombre de workers, la charge CPU, etc.
-
Lister les threads et leurs statuts : la commande ~ permet d'afficher les threads et leurs états:
-
La commande !threads permet d'afficher les threads et d'autres informations comme le lock count :