2011-04-15 7 views
5

Estoy probando una aplicación que se ejecuta en IIS usando AppVerifier/WinDbg/cdb. Básicamente, el esquema es el siguiente: cuando IIS inicia cdb se conecta al proceso y crea una tubería con nombre, entonces uso WinDbg para conectarme a la tubería. Luego ejecuto miles de casos de prueba contra la aplicación y espero hasta que AppVerifier arroje algo.Automatización adicional con WinDbg

Problemas/Preguntas:

  1. durante su duración (alrededor de 10 horas) de la prueba, que se reinicie IIS alrededor de mil veces, cada vez que se reinicia WinDBG se apagará y tengo que manualmente volver a empezar el WinDbg. ¿Hay alguna manera de decir que WinDbg NO se cierre cuando la tubería está cerrada, pero reintentar conectarla?
  2. Tengo que sentarme continuamente delante de WinDbg y esperar a que AppVerifier arroje algo? ¿Hay alguna manera de decirle a WinDbg que emita un pitido o muestre una ventana emergente cuando la excepción lo detiene?

Gracias.

Respuesta

4

Puede usar el comando sxe (u otros comandos sx*) para que WinDbg ejecute un comando cuando se produce una excepción. Para un ejemplo trivial, esta imprime "Hola, mundo:" cuando se carga un módulo:

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

Se podría pensar combinar esto con el comando .beep, pero esto resulta en un error de sintaxis. Creo que eso podría estar relacionado con la nota en la ayuda de .beep que dice "Este comando no se puede usar en archivos de script". Sin embargo, debe poder usar .shell para hacer algo útil.

No lo he intentado, pero quizás es posible hackear el problema de reconexión usando los comandos sx* para atrapar el evento de "salida del proceso". O tal vez podría hacer que la instancia de cdb que se inició con IIS le notifique cuando se produce una excepción, para que luego pueda conectarse a ella utilizando WinDbg.

+0

"O tal vez podría hacer que la instancia de cdb que se inició con IIS le notifique cuando ocurre una excepción, para que luego pueda conectarse a ella usando WinDbg?" - Supongo que esto resolvería ambos problemas. ¿Alguna idea de cómo configurarlo de esta manera? –

+0

Creo que sería algo así como 'cdb -c" sxe -c "" .shell sendMeAnEmail.exe "" someException "'. (No tengo idea si esa es la forma correcta de escapar de las citas). – bk1e