应用程序validation程序自动进程转储文件创build

我知道如何使用AppVerif和windbg一起手动debugging一个进程的问题,但是我正在组装一个自动化系统来运行一系列压力testing,而不需要用户的参与。

我需要一种方法,只要AppVerif发现问题就生成一个进程转储,并继续(假设它是一个非致命错误)。

有没有一种方法可以将AppVerifconfiguration为只生成进程的转储而不是进入,或者是否需要附加windbg并以某种方式将其自动化,以便在中断时创build转储,然后继续。

不,这不是appverif.exe的内置功能。 不是一个真正的问题,你可以使用另一个程序来生成转储。 像SysInternals的ProcDump工具一样 。

运行appverif.exe来配置您的测试应用程序。 您想更改ExceptionOnStop属性(底部窗口)。 将其设置为TRUE,以便在测试失败时抛出异常。

然后用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. 

您可能需要更改转储文件的写入位置,并添加一些自动化功能,以便在生成转储时发出通知。