ProcDump et Visual Studio sont vos amis pour la vie.

Ce billet traitera moins de prospective ou de réactions à l’actualité pour rejoindre les soucis du quotidien de développeur…

Et quel pire souci peut il y avoir qu’un client qui vous appelle en vous disant « le logiciel que vous m’avez livré plante régulièrement, mais de manière complètement silencieuse »…

Vous voilà donc dans de beaux draps. Qu’un logiciel plante, d’accord, mais si je n’ai pas d’informations complémentaires, la situation est fort délicate.

Là, votre meilleur ami s’appelle … ProcDump. Le papa de votre meilleur ami n’est autre que Marc Russinovich, le pape des outils systèmes pour Windows (ex Sysinternals).
ProcDump est un outil en ligne de commande qui va se « brancher » sur un processus qui s’exécute et dumper le contenu de la mémoire et de la pile d’appel selon une ou plusieurs conditions :

  • arrêt du programme, que ce soit proprement ou pour cause d’exception non gérée
  • dépassement d’un seuil de consommation de ressources(CPU, mémoire) pendant plus que n secondes
  • le programme ne répond plus à l’OS

Bref, les conditions annonciatrices d’un problème dans l’exécution d’un code déployé.

A partir de là, on se retrouve fièrement en possession d’un fichier .DMP qui contient donc le contenu de la mémoire, l’état des threads et de la pile d’appels. Et que fait on me direz vous ?

Et bien on appelle notre autre meilleur ami, j’ai nommé Visual Studio 2010.
En effet, VS 2010 est l’outil d’analyse des fichiers DMP (minidumps).

A partir d’un fichier DMP et des fichiers PDB de l’application, il est alors possible de restaurer le processus au moment du dysfonctionnement, et de voir la source du problème (boucle infinie, détail de la pile et de l’exception non gérée).

Petit truc : si vous analysez un fichier de dump produit par une autre machine que la votre, il vous faut suivre le mode opératoire décrit dans cet article, et notamment bien valider l’option qui dit à Visual Studio d’aller chercher ses fichiers de symboles (les fameux PDB) sur un serveur de fichiers (mis à disposition par Microsoft sur un site web).

Plus d’excuses pour des plantages inexpliqués !

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *