Дальнейшая автоматизация с WinDbg

Я тестирую приложение, работающее в IIS, с помощью AppVerifier / WinDbg / cdb. В основном схема выглядит следующим образом: когда IIS запускает cdb, подключается к процессу и создает именованный канал, тогда я использую 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