如何在Windows 10上使用AppVerifier / WinDbg?

时间:2018-08-02 19:18:47

标签: crash windbg launch application-verifier

我在Windows 10 17134上,并已安装Windows 10 SDK 16299。我实际上有一个较旧的Windows版本和4个不同版本的SDK,但决定升级到最新的Windows版本并卸载我所有的Win10 SDK,并仅安装我们用于项目16299的版本。团队中的一些人能够运行AppVerifier,但大多数不能。

我已尝试简化测试,以通过基本测试将其简单地连接到Notepad.exe,这就是下面的样子。请注意,保存按钮显示为灰色,因为它确实已保存。如果不单击“保存”,则任何内容都不会生效。 AppVerifier Notepad settings

然后,当我尝试直接运行notepad.exe时,出现此错误: Notepad launch error

这与我在项目中遇到的错误完全相同。现在仔细查看帮助文档,我发现: Debugger install and setup

好的,所以我在安装完整的Windows 10 SDK时拥有WinDbg。然后按照指南运行建议的命令行:

> C:\Program Files (x86)\Windows Kits\10\Debuggers\x86>windbg -xd av -xd
> ch -xd sov notepad.exe

它使用以下输出启动WinDbg,该输出再次与我们项目的行为匹配:enter image description here

我承认,我以前从未使用过WinDbg,也不清楚应该怎么做。我的最初意图是诊断我的项目中的堆损坏。因此,希望有人可以解释为什么它适用于某些人而不适用于其他人,或者我做错了什么。谢谢!

1 个答案:

答案 0 :(得分:3)

仅需执行一个附加步骤。在上一张图像的底部,您可以键入命令“ k”以生成调用堆栈。生成此信息:

> # ChildEBP RetAddr  00 0016f3d4 0f758c21 vrfcore!VerifierStopMessageEx+0x599 01 0016f420 0f75b235
> vfbasics!AVrfpSanityCheckAddressRange+0x57
**> *** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Windows\SysWOW64\hmpalert.dll** -  02 0016f42c 74485868
> vfbasics!AVrfpRtlEnterCriticalSection+0x15 WARNING: Stack unwind
> information not available. Following frames may be wrong. 03 0016f480
> 74481b37 hmpalert!CVCCP+0x76b8 04 0016f784 77d4f72e
> hmpalert!CVCCP+0x3987 05 0016f848 77d4ecf0
> ntdll!AVrfpSnapDllImports+0x166 06 0016f868 77d4f5a6
> ntdll!AVrfpDllLoadNotificationInternal+0xb4 07 0016f878 77d4e6a5
> ntdll!AVrfpSnapAlreadyLoadedDlls+0x41 08 0016f8a8 77d425dc
> ntdll!AVrfInitializeVerifier+0x19f 09 0016fb14 77d01e92
> ntdll!LdrpInitializeProcess+0x150d 0a 0016fb70 77d01d5c
> ntdll!_LdrpInitialize+0xe0 0b 0016fb80 00000000
> ntdll!LdrInitializeThunk+0x1c

hmpalert.dll是Sophos(Interceptx或Hitman Pro)的一部分。此文件导致应用程序验证程序失败。