WinDBG - Procédure d'utilisation

Charger le dump et renommer mwcorwks.dll

Pour charger le dump :

  1. exécutez WinDbg 64 bits (pour un dump réalisé sur une plateforme 64 bits) ;

  2. ouvrez le fichier dump avec CTRL-D (surtout pas en drag&drop) ;

  3. 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

  1. 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 :