2015-07-09 4 views
4

Я знаю, как использовать AppVerif вручную вместе с windbg для отладки проблем с процессом, но я собираю автоматизированную систему для запуска серии стресс-тестов без присутствия пользователя ,Application Verifier Автоматическое создание дампа процесса

Мне нужен способ просто создать дамп процесса, когда AppVerif обнаружит проблему и продолжит работу (если предположить, что это нефатальная ошибка).

Есть ли способ настроить AppVerif прямо, чтобы просто сгенерировать дамп процесса вместо того, чтобы ворваться, или мне нужно прикрепить windbg и каким-то образом автоматизировать его для создания дампа при ударе брейка, а затем продолжить на.

ответ

2

Нет, это не встроенная функция appverif.exe. Не настоящая проблема, вы можете использовать другую программу для создания мини-накопителя. Мне нравится SysInternals' ProcDump utility.

Запустите приложение appverif.exe, чтобы настроить тестовое приложение. Вы хотите изменить свойство ExceptionOnStop (нижнее окно). Установите его ИСТИННО, чтобы исключение выдавалось, когда тест терпит неудачу.

Затем запустите свой тест с помощью procdump, сообщите ему, чтобы создать дамп в необработанном исключении с аргументом -e. Например:

c:\bin\procdump -e -x . broken.exe 

Похоже, это когда я попробовал его на broken.exe, он намеренно искажает ручку:

ProcDump v7.1 - Writes process dump files 
Copyright (C) 2009-2014 Mark Russinovich 
Sysinternals - www.sysinternals.com 
With contributions from Andrew Richards 

Process:    broken.exe (5892) 
CPU threshold:   n/a 
Performance counter: n/a 
Commit threshold:  n/a 
Threshold seconds:  10 
Hung window check:  Disabled 
Log debug strings:  Disabled 
Exception monitor:  Unhandled 
Exception filter:  * 
Terminate monitor:  Disabled 
Cloning type:   Disabled 
Concurrent limit:  n/a 
Avoid outage:   n/a 
Number of dumps:  1 
Dump folder:   .\ 
Dump filename/mask: PROCESSNAME_YYMMDD_HHMMSS 


Press Ctrl-C to end monitoring without terminating the process. 

[11:23:30] Exception: C0000008.INVALID_HANDLE 
[11:23:30] Exception: C0000421 
[11:23:30] Unhandled: C0000421 
[11:23:30] Dump 1 initiated: .\broken.exe_150713_112330.dmp 
[11:23:30] Dump 1 complete: 1 MB written in 0.0 seconds 
[11:23:31] Dump count reached. 

Вы, вероятно, хотите, чтобы изменить место, где записывается файл дампа и добавьте некоторую автоматизацию, поэтому появляется уведомление о создании дампа.

+0

Для этого требуется инструмент для запуска процесса? Как это будет работать с сервисом (если вообще)? При этом он будет продолжать работать после захвата дампа для исключения appverif (т. Е. Утечки кучи)? –

+0

Я понятия не имею, как этот комментарий имеет значение. Когда вы хотите протестировать приложение, вам нужно его запустить. При запуске приложения или запуске procdump не имеет значения. Только реальная вещь, которую вы можете сделать неправильно, - это не попробовать. –