2011-04-15 1 views
5

Je teste une application exécutée sur IIS à l'aide AppVerifier/WinDbg/cdb. Fondamentalement, le schéma est le suivant: lorsque IIS démarre cdb attache au processus et crée un canal nommé, j'utilise WinDbg pour se connecter au canal. J'exécuter des milliers de cas de test contre l'application et attendre jusqu'à ce que AppVerifier jette quelque chose.Une automatisation accrue avec WinDbg

Problèmes/Questions:

  1. Pour la durée (environ 10 heures) du test, IIS est redémarré environ mille fois, chaque fois qu'il est redémarré WinDbg est arrêté et je me suis à nouveau manuellement démarrage le WinDbg. Y a-t-il un moyen de dire que WinDbg ne doit pas s'arrêter lorsque le tuyau est fermé, mais réessayer de le connecter?
  2. J'ai asseoir en permanence sur le devant de WinDbg et attendre AppVerifier jeter quelque chose? Existe-t-il un moyen de dire à WinDbg d'émettre un bip ou d'afficher un popup quand il est arrêté par exception?

Merci.

Répondre

4

Vous pouvez utiliser la commande sxe (ou d'autres commandes sx*) pour que WinDbg exécute une commande lorsqu'une exception est atteinte. Pour un exemple trivial, cette affiche « Bonjour, monde: » lorsqu'un module est chargé:

sxe -c ".printf \"Hello, world: \"" ld 

Vous pourriez penser à combiner avec la commande .beep, mais cela se traduit par une erreur de syntaxe. Je pense que cela pourrait être lié à la note dans la .beep aide qui dit: « Cette commande ne peut pas être utilisé dans les fichiers de script. » Cependant, vous devriez pouvoir utiliser .shell pour faire quelque chose d'utile.

Je ne l'ai pas essayé, mais il est peut-être possible de contourner votre problème de reconnexion en utilisant les commandes sx* pour intercepter l'événement "exit de processus". Ou peut-être que vous pourriez avoir l'instance de cdb qui est démarrée avec IIS vous notifier quand une exception se produit, de sorte que vous pouvez vous connecter à l'aide de WinDbg?

+0

"Ou peut-être que l'instance cdb démarrée avec IIS vous avertirait lorsqu'une exception se produit, afin que vous puissiez vous y connecter en utilisant WinDbg?" - Je suppose que cela résoudrait les deux problèmes - des idées comment configurer de cette façon? –

+0

Je pense que ce serait quelque chose comme "cdb -c" sxe -c "" .shell sendMeAnEmail.exe "" someException "'. (Je ne sais pas si c'est la bonne façon d'échapper aux citations, cependant.) – bk1e

Questions connexes