Cet article détaille le plan d'action à mettre en place pour créer une règle dans Debug Diagnostic 1.2 afin d'automatiser la génération d'un dump au moment du crash d'un processus relatif à IIS (par exemple un processus "W3WP.exe").

Ce plan d'action est applicable lorsque votre processus "W3WP.exe" plante ce qui, dans le contexte d'IIS, sous-entend que le processus est tué ou redémarré. Ceci implique donc un arrêt du processus et s'il est relancé, un changement de PID. Il faut bien faire attention à ne pas confondre Crash et Hang, car configurer une règle en mode Crash pour un Hang ne permettra pas la génération de dumps.

Plan d'action

                

  • Dans la fenêtre "Select Target Type"
    • Choisissez "A specific IIS web application pool", puis cliquez sur "Suivant >"
      Cela aura pour conséquence de générer un dump uniquement sur le processus W3WP.exe correspondant à votre Application Pool.
      • Vous pouvez sélectionner "All IIS/COM+ related processes" si vous voulez surveiller tous les processus liés à IIS.
      • Vous pouvez également sélectionner "A specific process" pour surveiller toutes les instances d'un processus ou une unique instance (un processus spécifique avec un PID spécifique).
        "A specific process" pour une unique instance est qu'il faut recréer la règle à chaque redémarrage du processus étant donné qu'il va changer de PID. 

                

  • Sélectionnez l'application pool rencontrant le problème de crash, puis cliquez sur "Suivant >"

                

  • Ajoutez le breakpoint comme vous pouvez le voir dans le screenshot ci-dessous
    • Ceci permet de générer un dump dès que la commande "TerminateProcess" est remontée dans un processus sans attendre son arrêt complet

                        

  • Cliquez sur "Suivant >"

                 

  • Choisissez un nom et emplacement pour les dumps, puis cliquez sur "Suivant >"
    • Mettre ces dumps sur un autre emplacement que le C:\ ne pose pas de problème

Vérifiez qu'il y ait suffisamment d'espace disque disponible car la taille d'un dump d'un processus est égale à la taille consommée en mémoire par ce dernier

                 

  • Dans la fenêtre "Rule Completed", sélectionnez "Activate the rule now", puis cliquez sur "Terminer"
    • La règle est maintenant configurée et prête à générer des dumps

                  

  • Vérifiez que son statut est "Active"
    • Si ça n'est pas le cas, le service "DbgSvc" n'est surement pas démarré
    • Allez dans "Outils d'administration > Services" et démarrez le
  • Quand un dump sera généré, vous verrez la colonne "UserDump Count" s'incrémenter

Les dumps sont situés par défaut dans "C:\Program Files\DebugDiag\Logs\Crash rule for all IIS_COM+ related processes" ou dans "C:\Program Files\DebugDiag\Logs\Nom_De_La_Règle "

Pour retourner à l'article d'introduction sur Debug Diagnostic 1.2 cliquez ICI.


En espérant que cet article vous sera utile.
@ Bientôt
Sylvain Lecerf et L'équipe de support IIS Microsoft France