应用程序验证工具 - 功能

辅助功能

Microsoft 致力于使每个人都可以更轻松地使用其产品和服务。 应用程序验证程序中的功能可使其更易于访问,例如键盘快捷方式、文本阅读器以及更改字体和主题的功能。

使用键盘快捷方式

通过在应用程序验证器中使用键盘快捷方式,可以快速完成以下常见任务。

要执行的操作 使用此键盘快捷键
添加要测试的应用程序 Ctrl+A
删除应用程序 Ctrl + D
启用所有测试 Ctrl + E
禁用所有测试 Ctrl + I
还原测试默认值 Ctrl + R
保存更改 Ctrl + S
退出应用程序验证程序 Atl + E
打开属性窗口 Ctrl + P
打开日志屏幕 Ctrl + L

日志

验证程序在验证应用程序期间停止时生成日志。

访问日志

应用程序验证程序显示一个“日志”窗口,其中包含以前运行的应用程序及其关联的日志。 若要访问日志窗口,请在“视图”菜单上选择“日志”。 若要查看日志的详细信息,请选择应用程序的名称。

应用程序验证程序屏幕截图,其中显示了测试应用的单个日志。

将日志保存/导出为 XML

如果将日志导出到 XML,可以在外部工具(如 Microsoft Excel)中打开日志文件。 若要将日志导出到 XML,请选择应用程序,然后选择要导出的日志。 单击“另存为”并输入要为文件及其位置提供的名称,然后单击“保存”。

筛选日志

你可能希望筛选有关严重性等项的日志信息、仅查看警告,或跟踪可在其中定义自定义筛选器以仅显示包含应用程序的项。 筛选日志的一种方法是使用电子表格(如 Excel)。

  1. 将日志保存到 XML 并在 Excel 中将其打开。
  2. 在 Excel 中,突出显示第一行(包含列标题)。
  3. 在“数据”菜单上,单击“筛选器”,然后单击“自动筛选”。

删除日志

应用程序验证程序允许单独删除日志或删除应用程序并删除与其关联的所有日志。

若要单独删除日志,请选择日志,然后单击“删除”或右键单击日志,然后选择“删除”。

若要删除应用程序并删除与之关联的所有日志,请右键单击应用程序名称,然后选择“删除”。

删除所有日志:

  1. 打开“应用程序验证程序”主窗口。

  2. 在“文件”菜单上,选择“ 清除所有日志”。

添加印章

进程运行时,可以将标记添加到其关联的日志文件中。 戳记信息可以是任意字符串,例如当前时间。 稍后可以使用此信息作为筛选器来检索感兴趣的日志。

若要将戳记添加到日志文件中,请执行以下作:

  1. 选择日志文件,然后单击“ 添加标记”。

  2. 输入字符串作为标记信息。

输出选项

默认情况下,用户帐户下运行的服务/应用的日志存储在: %USERPROFILE%\serviceprofiles\AppVerifierLogs下。

对于在本地服务帐户下运行的服务/应用,日志文件将写入到以下位置: %windir%\serviceprofiles\LocalService\AppVerifierLogs

对于在系统帐户下运行的服务/应用,日志文件存储在:%windir%\system32\config\systemprofile\AppVerifierLogs 用于本地服务,%windir%\syswow64\config\systemprofile\AppVerifierLogs 用于 wow64 服务/应用。

对于在网络服务帐户下运行的服务/应用,日志文件存储在: %windir%\serviceprofiles\NetworkService\AppVerifierLogs下。

如果应用程序无权在默认日志文件路径中写入/创建日志文件,则会失败并出现错误0xC0000022。

设置VERIFIER_LOG_PATH环境变量会替代默认的日志文件创建。 如果希望将所有日志文件存储在单个位置,这非常有用。

受保护的进程无法访问环境变量,因此无法创建日志文件。 若要解决此问题,可以使用AppVerif.EXE命令行设置受保护的进程日志路径: appverif.exe –sppath <drive:>\<path> 设置受保护的日志路径。

命令行; appverif.exe –cppath 清除受保护的日志路径。

符号路径 – 符号路径将用于解析日志文件中的堆栈跟踪。 如果未指定符号路径,应用程序验证程序将自动查看_NT_SYMBOL_PATH,以查看其中是否指定了任何符号路径。

从,到 – 可以指定起始标记和结束标记。 您只能看到日志内容,该内容是在插入 From stamp 之后和插入 End stamp 之前记录的。 如果未提供 From 或 To 标记,应用程序验证程序将分别显示文件开头到文件末尾的日志。

受保护的进程日志记录

应用程序验证程序日志文件创建取决于环境变量,例如VERIFIER_LOG_PATH和 %USERPROFILE%。 如果受保护的(安全)进程等进程无法访问这些环境变量,则无法创建日志文件。 以下命令行选项可用于设置/清除受保护的进程日志路径。 仅当进程无法在VERIFIER_LOG_PATH或 %USERPROFILE%下创建日志文件时,才使用此日志路径。

设置受保护的进程日志路径:

appverif –sppath [PROTECTED_PROCESS_LOG_PATH]

例如:以下命令行将受保护的进程日志路径设置为“c:\My Logs\Verifier Logs”。

appverif –sppath c:\My Logs\Verifier Logs

注意:确保存在“c:\My Logs”,并且受保护的进程有权在此路径中创建文件。

以下命令行显示了现有的受保护的进程日志路径。

appverif –sppath

若要显示现有的受保护的进程日志路径并清除它,请使用以下命令行:

appverif -cppath

请注意,“应用程序验证程序 – 日志”窗口显示已登录用户的 %USERPROFILE% 中的日志文件。 如果希望受保护的进程日志显示在此 UI 中,则需要手动将其复制到 %USERPROFILE%\AppVerifierLogs。

属性窗口

“属性”窗口提供对每个验证层和检查的各种设置的访问权限。

访问属性窗口 - 属性窗口在屏幕下半部分显示其信息。

若要查看“属性”窗口 - 在“视图”菜单上,请选择“属性窗口”。 在“属性窗口”选择旁边将会出现对勾。

关闭属性窗口 - 如果需要,可以从视图中删除属性窗口。

若要关闭属性窗口 - 在“视图”菜单上,选择“属性窗口”。 将清除属性窗口选项旁边的勾选标记。

设置属性

每个验证层都有自己的一组要设置和更改的属性。 若要设置验证层的属性,请选择测试区域中的层(例如基本信息)。 此步骤将显示所选测试的属性。

显示堆测试属性的应用程序验证程序屏幕截图。

设置属性

应用程序验证程序中有两组属性。 一个基于给定验证层中的检查,另一个基于图像(解决方案或项目)。 可从属性窗口访问这些属性。

应用程序验证程序显示允许编辑的每个属性的以下信息:

名称 - 每个属性的唯一名称

类型 - 布尔值、DWORD、字符串、MultipleString

- 可以更改并因类型而异的元素

说明 - 该说明解释了属性的含义。

编辑图像属性

对于在应用程序验证程序中测试的每个图像,可以编辑以下内容。

传播 - 将验证程序设置从父进程传播到子进程。 并非所有测试都可以传播。 如果启用此属性(勾选框),则会传播设置。 否则,设置不会被应用。

AutoClr - 在指定映像开始运行后,已验证的映像将会清除它自身的设置。 如果启用此属性(已选中框),则验证的图像将清除设置。 否则不会清除设置。

AutoDisableStop - 验证程序只会针对识别到的相同问题警告一次。 如果验证程序再次找到相同的问题,则不会生成错误。 如果启用此属性(已选中框),验证程序将仅为给定问题生成一个错误。 否则,验证程序会在每次出现问题时生成错误。

LoggingOnLocksHeld - 将记录 dll 加载/卸载事件。 验证器在该加载器锁被持有时正在执行 I/O。 这可能会导致应用程序挂起。 如果启用此属性(已选中框),则会记录该事件。 否则,不会记录该事件。

ExceptionOnStop – 对于每次验证器停止,将引发异常,而不是触发调试中断。 如果此属性已启用(已选中框),则验证程序报告的每个停止都会引发异常。 否则,验证程序报告的每次停止都会进入调试器。

MinimumMemoryOverhead – 通过禁用仅用于调试的某些功能来降低内存开销。 如果启用此属性(已选中框),则会禁用某些功能以减少内存开销。 否则,这些功能不会被禁用。

注释

除非绝对有必要减少内存开销,否则不要启用 MinimumMemoryOverhead 属性。 启用此属性时,缺少调试信息,并且更难诊断错误。

设置/编辑用于检查的属性

这些属性与检查项相关,因此请参阅这些主题以获取详细的字段信息。 若要编辑属性,可以采用以下两种方法之一:

单独 - 在属性窗口中,双击要编辑的属性。 这将显示一个对话框,允许你编辑项目,并将其设置回默认值。 更改条目,然后单击“确定”。

组 - 在测试区域中,单击需要编辑的测试层或验证层。 使用鼠标右键选项来显示所有属性的列表。 更改属性或重置回默认值,然后单击“确定”。

另请参阅

应用程序验证程序 - 概述

应用程序验证程序 - 测试应用程序

应用程序验证程序 - 应用程序验证程序中的测试

应用程序验证程序 - 停止代码和定义

应用程序验证程序 - 调试应用程序验证程序停止

应用程序验证程序 - 常见问题