Appverify 未捕获 C++ 堆损坏

Appverify not catching C++ heap corruption

我有一个 Windows C++ 程序,它很明显是堆损坏,但是当我 运行 AppVerify 时它没有报告任何错误。 AppVerify 确实捕捉到了这些东西,对吧?

我有一个 MFC 应用程序,它在中途崩溃了,我认为这是堆损坏,因为在开始时设置但之后未修改的变量正在更改值。

运行 Appverifier as Admin 并将其指向我的程序,选择所有基本错误检查。

AppVerifier 添加我的程序:

运行 Visual Studio(作为我,不是管理员)和 运行 程序直到崩溃。 运行 AppVerifier 像我一样查看了日志,它报告了 0 个警告,0 个错误。

AppVerfied 报告 0 个错误和 0 个警告:

是我不明白 AppVerifier 的作用,还是我用错了?

(1) 你的变量可能不在堆上。
(2) 使用 C++ 你拥有强大的力量,而且很容易犯下诊断工具看不到的错误。

建议:在调试器下尝试 运行 您的程序,以更好地了解其行为并查看是否可以发现问题所在。