6

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

我试图将测试简化为使用基本测试将其连接到 Notepad.exe,这就是它的样子。请注意,保存按钮是灰色的,因为它确实已保存。如果您不点击保存,则不会生效。AppVerifier 记事本设置

然后,当我尝试直接运行 notepad.exe 时,出现此错误: 记事本启动错误

这与我在项目中遇到的错误完全相同。现在仔细查看帮助文档,我发现: 调试器安装和设置

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

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

它使用以下输出启动 WinDbg,这再次与我们项目的行为相匹配:在此处输入图像描述

我承认,我以前从未使用过 WinDbg,并且不清楚我应该如何做到这一点。我的初衷是在我的项目中诊断堆损坏。所以希望有人能解释为什么它适用于某些人而不适用于其他人,或者我做错了什么。谢谢!

4

1 回答 1

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)的一部分。此文件会导致应用程序验证程序失败。

于 2018-08-02T22:44:20.730 回答