Допълнителна автоматизация с WinDbg

Тествам приложение, работещо на IIS, използвайки AppVerifier/WinDbg/cdb. По принцип схемата е следната: когато IIS стартира, cdb се прикачва към процеса и създава named-pipe, след което използвам WinDbg, за да се свържа с канала. След това пускам хиляди тестови случаи срещу приложението и чакам, докато AppVerifier хвърли нещо.

Проблеми/Въпроси:

  1. За продължителността (около 10 часа) на теста IIS се рестартира около хиляди пъти, всеки път, когато се рестартира, WinDbg се изключва и аз трябва ръчно да рестартирам WinDbg. Има ли начин да кажете на WinDbg да НЕ се изключва, когато каналът е затворен, но да опитате отново да го свържете?
  2. Трябва непрекъснато да седя пред WinDbg и да чакам AppVerifier да хвърли нещо? Има ли начин да кажете на WinDbg да издава звуков сигнал или да показва изскачащ прозорец, когато е спрян по изключение?

Благодаря.


person Azho KG    schedule 15.04.2011    source източник


Отговори (1)


Можете да използвате командата sxe (или други sx* команди), за да накарате WinDbg да изпълни команда, когато възникне изключение. За тривиален пример, това отпечатва "Hello, world: ", когато се зарежда модул:

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

Може да решите да комбинирате това с командата .beep, но това води до синтактична грешка. Мисля, че това може да е свързано с бележката в .beep помощта, която гласи "Тази команда не може да се използва в скриптови файлове." Трябва обаче да можете да използвате .shell, за да направите нещо полезно.

Не съм го пробвал, но може би е възможно да хакнете проблема си с повторното свързване, като използвате командите sx*, за да прихванете събитието „изход от процеса“. Или може би бихте могли да накарате екземпляра на cdb, който се стартира с IIS, да ви уведомява, когато възникне изключение, така че след това да можете да се свържете с него чрез WinDbg?

person bk1e    schedule 15.04.2011
comment
Или може би бихте могли да накарате екземпляра на cdb, който се стартира с IIS, да ви уведомява, когато възникне изключение, така че след това да можете да се свържете с него чрез WinDbg? - Предполагам, че това ще реши и двата проблема - някакви идеи как да настроя по този начин? - person Azho KG; 19.04.2011
comment
Мисля, че ще бъде нещо подобно на cdb -c "sxe -c "".shell sendMeAnEmail.exe"" someException". (Нямам идея обаче дали това е правилният начин да избягам от кавичките.) - person bk1e; 19.04.2011