我想使用 Windows 10 SDK(版本 10.0.18362.1)提供的 ApplicationVerifier 来加速调试在 64 位 Windows 10(内部版本 1909)下运行的 32 位应用程序中的(可能的)堆损坏。不幸的是,启用堆时使用 Basic 列表下的默认设置(并且仅启用该功能)的功能,一旦其内存使用量接近 2 GiB,应用程序就会耗尽内存,即使应用程序本身被编译为大地址感知。
无论我使用 Application Verifier x86 还是 Application Verifier x64 来激活堆检查,都会出现此问题。(而且我什至不确定这两个版本之间的区别是什么。)
我已经通过“帮助”菜单搜索了可用的文档,该菜单实际上非常广泛,但没有找到任何原因。我知道插入保护页面并将分配的开始或结束对齐到页面边界会增加内存消耗,但我不希望它将可用内存减少一半或以其他方式限制虚拟地址空间,至少在没有明确启用此类设置的情况下不会堆功能的选项。有谁知道这种行为的原因并且可以告诉我如何规避这个限制?