问题标签 [application-verifier]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
542 浏览

windows - 应用程序验证器调试扩展

我正在 Visual Studio 2010 中编写一个 Windows C++ 程序并且有堆损坏。来自 Application Verifier 的 !heap 和 !avrf 调试器扩展有几个听起来对跟踪这个非常有用的工具,但是我不清楚如何有效地使用 Application Verifier。例如,Application Verifier 文档指出:

您可以使用!avrf -hp -a Address来显示影响指定地址的所有堆空间操作。

究竟在哪里键入此命令?(是的,我知道地址需要替换为实际地址。)是否需要以任何前缀?

0 投票
2 回答
45965 浏览

c++ - 如何使用 Microsoft 应用程序验证程序

使用 C++ 并在今天的演示中发现我遇到了损坏的堆(但仅在重要场合!!)。我在这里找到了一些关于 SO 的帖子,并决定下载Application Verifier and Debugging tool。我目前正在运行 Visual Studio 2010。

所以,现在我只剩下了调试工具的安装,我在其中获得了一个名为 Windows Kits 的文件夹。在文件夹中,我有一个名为 WinDbg 的应用程序,我试图打开我的应用程序并运行它。它工作得很好,但我无法获得有关我的堆损坏的任何信息。然后我安装了验证程序,它只给我留下了一个头文件和一个我不知道该怎么处理的 .dll 文件。

那么,谁能告诉我如何使用这个工具,这样我就不必再忍受这样的尴尬时刻了?一直在论坛上搜索,因为我什至不知道如何打开验证器,当我阅读如何使用它的说明时,我真的迷路了(从 2009 年开始)

0 投票
2 回答
2139 浏览

clr - 托管应用程序的 Microsoft Application Verifier 等效项

您知道托管应用程序的任何等效 Microsoft 应用程序验证程序吗?

谢谢!

0 投票
1 回答
1058 浏览

c++ - std::string 析构函数中的奇怪错误

我在 Application Verifier 下运行了我的应用程序,它在我的应用程序关闭时向我显示了以下问题:

堆栈跟踪:

注意 std::basic_string 的析构函数出了点问题。这可能是什么原因?

0 投票
1 回答
1622 浏览

gdi+ - App Verifier Stop 0202:在 GdiPlusShutdown 期间释放包含活动临界区的堆块

运行Microsoft Application Verifier0202时,我会在关机时收到错误消息:

调用时会发生错误GdiplusShutdown

从应用程序验证器文档中:

释放包含活动临界区的堆块

应用程序验证程序中断消息

释放包含活动临界区的堆块。大小为大小的内存位置包含一个活动锁。

可能的原因

如果堆分配包含临界区、分配已释放且临界区尚未删除,则会生成此中断。

Application Verifier 显示的信息

  • Parameter1 - 临界区地址
  • Parameter2 - 关键部分初始化堆栈跟踪
  • Parameter3 - 堆块地址
  • Parameter4 - 堆块大小
  • 描述 - 释放包含活动临界区的堆块

附加信息

验证程序停止代码 0202。

检查当前调用堆栈的内容。罪魁祸首通常是当前堆栈跟踪上 HeapFree 或 HeapDestroy 的调用者。

此错误的频率很高。

要调试此停止,请使用以下调试器命令:

  • !cs –s parameter1- 转储有关此关键部分的信息。
  • ln parameter1– 在临界区地址附近显示符号。这应该有助于识别泄漏的关键部分。
  • dds parameter2– 转储此临界区初始化的堆栈跟踪。

parameter3parameter4可能有助于了解该堆块在哪里分配(分配的大小可能很重要)。

0 投票
1 回答
252 浏览

windows - MS 应用程序验证程序膨胀堆栈?

有谁知道应用程序验证器是如何工作的?

我目前正在开发一个大量使用递归的树解析应用程序。该程序似乎按预期工作,但是我确实在一些地方使用了“new”,所以我想用 Application Verifier 检查内存泄漏。AV 不会报告任何错误,但是,在几分钟内,应用程序的映像会迅速增长到大约 1 GB,而没有它只会达到 60 兆左右。我似乎找不到任何内存泄漏,并且看到正在进行多少递归,我开始怀疑 AV 在堆栈上放置了额外的项目以用于测试目的,并且随着递归的深入,额外的“垃圾”会堆积起来并使程序崩溃。

有没有人对此事有任何见解?

0 投票
2 回答
453 浏览

c++ - C++ 堆状态差异

有一个用 C++ 编写的大项目。一些 gui 操作(按钮单击)分配 2 MB 内存。这不是内存泄漏,当然内存稍后会被释放。但我需要调查分配了哪些对象以尝试减少内存分配大小。

所以我尝试使用 debug crt

调试报告说只分配了 400 KB。但是任务管理器中两个断点之间的进程内存增加了 2 MB。

因此,创建的转储是无用的。你能解释一下剩余的内存分配在哪里吗?

0 投票
0 回答
133 浏览

c++ - 当 AppVerifier 运行时,map/set 迭代器不可递增

我正在尝试运行一个在应用程序验证程序下通过网络处理客户端的应用程序。
应用程序持有一个映射来维护客户端,以及一个最大计数为 1 的信号量来锁定映射。
没有验证器,它运行时没有错误,但是当附加了验证器时,我收到以下运行时错误:

映射/设置迭代器不可递增

对于以下代码:

任何可能的原因的想法?

提前致谢。

0 投票
1 回答
5616 浏览

visual-c++ - ASSERT(::IsWindow(m_hWnd)) 在 Afxwin2.inl 中失败

我正在我的项目中创建一个视图,它是 CView 的子类。

在 oncreate 函数中,我正在检查它是否为空,如下所示:

当我使用 ApplicationVerifier 进行调试时,我在 afxwin2.inl 的下面几行中得到了一个调试断言:

并且也m_hwnd显示为unused 0的内存地址0x00170fd6。下面给出的是应用程序验证器的输出。

以下是调试版本的调用堆栈。太长了,见谅。

非常感谢您的帮助。谢谢。

0 投票
1 回答
689 浏览

dll - MFC Win32 应用程序 + 应用程序验证器 - 虚拟预留泄露

我正在尝试使用 Application Verifier 分析我的 Win32 应用程序。我检查了 Basic 下的所有类别。所以在下面的代码中,

应用程序验证程序停止并抛出以下内容,

什么是虚拟预订地址?我还没有找到任何相关的链接。另外,为什么会出现这种情况?

编辑:

这是我根据上述建议执行的命令的输出。

dps 00825FC4

du 07870FE0

lm