Debogage .NET avec WinDbg et … PSSCOR2

PSSCOR2 ?? Mais qu’est-ce que c’est ? Il est vrai que vous n’avez peut-être pas connaissance de cette dll. En fait, il s’agit simplement de la version interne Microsoft de l’extension WinDbg nommée "SOS". C’est à dire, l’outil indispensable pour déboguer des dumps .NET dans WinDbg.

Vous ne connaissez pas non plus SOS ou vous n’y êtes pas familier ? Voici comment débuter :

Sachez que PSSCOR2 était une version interne Microsoft et vient d’être rendu publique ces jours-ci. PSSCOR2 s’utilise exactement comme SOS.

Pour illustrer les différences, la première capture montre l’aide de "SOS" et les deux captures suivantes montrent celle de "PSSCOR2" (et oui, je n’ai eu assez de place sur mon écran pour faire une seule capture) :

SOS

SOS

 

PSSCOR2

PSSCOR2

+

PSSCOR2

 

Il n’y a pas photo comme on dit :-)

 

En tout premier, je vous invite à regarder les commandes suivantes

  • !DumpAllExceptions >> Quelles sont les exceptions encore présente dans le dump
  • !DumpDynamicAssemblies >> Quelles sont les assemblies compilées dynamiquement et quel est leur nombre
  • !SaveAllModules >> pratique pour utiliser Reflector sur les dlls choisies

Sans oublier, des commandes fort utiles et qui doivent être lancées avant tout travail sur les dumps que vous récupérez

  • !FindDebugTrue >> indique si les fichiers Web.config contiennent Debug=true. Ce qui est à proscrire en production
  • !FindDebugModules >> Quelles sont les dlls utilisées compilées en mode DEBUG alors qu’elles devraient être en RELEASE

-

Le lien de téléchargement direct est : "Psscor2 Managed-Code Debugging Extension for WinDbg" - https://www.microsoft.com/downloads/details.aspx?FamilyID=5c068e9f-ebfe-48a5-8b2f-0ad6ab454ad4&displayLang=en

Pour information, l’une des experts sur le sujet est Tess Ferrandez : https://blogs.msdn.com/tess/archive/2010/03/30/new-debugger-extension-for-net-psscor2.aspx

A bientôt,

Sebastien.