问题标签 [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 投票
2 回答
994 浏览

windows-store-apps - 应用程序验证程序 6.2 (x64) AVRF:未能创建验证程序日志文件状态 C0000022

我的 Windows 应用商店应用程序不断被认证测试拒绝,并且在运行 appverif 的 LuaPriv-check 时,我设法重现了随之而来的崩溃。我得到了这个输出:

AVRF:无法创建验证程序日志文件 \??\C:\Users\xx\AppVerifierLogs\yy.exe.0.dat(状态 C0000022)

进程监视器告诉我 yy.exe 在此文件夹中的 CreateFile 操作上被拒绝访问。我已经为所有用户设置了完全访问权限(日志中报告的用户与文件夹的所有者相同)。我以管理员身份运行 Visual Studio 和应用程序验证程序,但这似乎并不适用。在win8上让用户xx完全访问这个文件夹的正确方法是什么?我尝试使用不同的日志文件夹进行 appverify,但没有成功。还有其他人可以将此工具与商店应用程序一起使用吗?

这篇文章描述了类似的问题。尝试按照建议的解决方法运行 AppVerif –sppath C:\MyLogsLocation 会给出 AVRF:错误:图像名称不正确:< 运行 appverif -enable 处理锁也是如此 -for myapp.exe -sppath c:\MyLogsLocation

0 投票
1 回答
202 浏览

c++ - App Verifier 错误模式“fafa”的意义是什么?

我的程序在应用程序验证程序中崩溃,我不完全理解崩溃。我有一个缓冲区,它是根据文件中的字节数动态分配的:

哪里dwSizeBytes(我可以在故障转储中看到)是38. 在此之后,我从文件中读取了一些数据:

这指定36dwSizeBytes缓冲区中的最后两个字节保留为 NULL,以便缓冲区以 NULL 终止。但是,在应用程序验证程序下,当我尝试std::wstring从缓冲区构造 a 时,这会导致崩溃。

当我在 windbg 中查看缓冲区的分配块时,我看到它看起来像这样:

请注意,0x26这表明我的缓冲区应该是 38 大小。现在我看看它自己的缓冲区,看看:

这表明我的缓冲区已被填充,ReadFileNULL应该留在的buf[36]地方buf[37](记住 memset)有一个应用程序验证器填充代码fafa(记住 unicode 字节被翻转,所以d0d0实际上是在fafa.

我看过这里:它向我展示了应用程序验证程序如何在分配后留下这些填充代码。但是fafa没有列出来,那是什么意思呢?为什么它会在memset应该清除的地方?

0 投票
1 回答
1572 浏览

qt - 无法检测到 QDialog 内存泄漏的原因

我正在做一个项目,使用 Qt 和一些定制的 QDialogs 供用户输入。由于我的开发盒的硬件限制,我想监控我的应用程序的内存使用情况。我如何执行对话框。

由于对话框是一个局部变量,我希望它在堆栈上创建并在函数结束后立即销毁(在第 5 行之后)。当应用程序反复打开和关闭对话框时,它的内存使用量会上升,并且它永远不会返回初始值 ['Memory (Working Set)' and 'Memory (Private Working Set)'任务管理器的列]。我使用了Application Verifier,启用了所有基本测试,并且没有显示错误。内存模式如下所示(数值仅由说明组成):

  • 应用程序启动(工作集 = 12000K,私有集 = 6000K)
  • 打开 Dialog-1(工作集 = 14000K,私有集 = 7000K)
  • 关闭对话框(工作集 = 12010K,私有集 = 6005K)
  • 打开 Dialog-2(工作集 = 14020K,私有集 = 7000K)
  • 关闭对话框(工作集 = 12010K,私有集 = 6008K)
  • 打开 Dialog-3(工作集 = 14080K,私有集 = 7010K)
  • 关闭对话框(工作集 = 12040K,私有集 = 6008K)
  • ...

那么,有什么想法可以追踪问题的根本原因吗?(实际上,我在使用 QFileDialog 的静态方法时也遇到了类似的问题getOpenFileName,并且在这里getSaveFileName找到了一些讨论,但似乎没有解决)

编辑我在我的对话框中使用 QFormLayout,并通过添加小部件layout->addRow("label text", mywidget);,我怀疑对象销毁是否无法干净地删除标签。

编辑我用 QDialog 创建了一个测试程序,有十个 QLineEdits,使用相同的添加小部件策略。问题依然存在。(如果我经常创建和关闭对话框,这个测试程序会出现问题,每秒说 10 次)

主窗口.h

主窗口.cpp

平台

  • Win 7 x64, MinGW 4.7.2 x64 (rubenvb-build), 4GB 内存
  • Qt 4.8.5(使用上述工具链本地构建)
  • Qt-Creator 2.6.1(使用上述工具链本地构建)
0 投票
1 回答
1143 浏览

qt - Qt 应用程序:VERIFIER STOP 00000013:当前堆栈跟踪的第一次机会访问冲突

自一周以来,我的 Qt 应用程序无法正常工作。我不熟悉这种堆损坏、访问冲突等东西。现在我知道它“很痛”,-)

同时我安装了应用程序验证器。我正在使用 VS2010、Qt 4.8.4、qwt 6.0.0。现在我将 GUI 类减少到最低限度,但仍然通过应用程序验证程序获得访问冲突。这是图形用户界面代码:

mygui.h:

mygui.cpp:

和大型自动生成的 ui_mygui.h (由于字符限制,我在中间跳过了一些部分):

这编译没有任何问题。但是当我启动应用程序(使用应用程序验证程序)时,我在方法之后得到一个触发断点

在ui_mygui.h中完成,进入MYengine的构造函数。没有执行构造函数的任何行,它只是触发一个断点。这是验证者报告:

======================================== VERIFIER STOP 00000013:pid 0x1CDC:第一次机会访问违规对于当前堆栈跟踪。

======================================== 这个验证器停止是可继续的。调试后使用“go”继续。

========================================

如果我只是删除单行

在 mygui.cpp 中,Gui 打开,没有应用程序验证程序断点,一切似乎都运行良好。

我完全迷路了。class MYengine 是一个嵌入在静态库中的大型类,还有数百个附加类。错误发生在 Myengine 的构造函数的第一行执行之前。那么为什么有或没有上述行的行为如此不同?任何想法将不胜感激。这段代码开始让我成功,-(

0 投票
1 回答
3824 浏览

windows-7 - 应用程序验证器安装问题

我在 Visual Studio 2010 中的应用程序中安装了用于检测堆损坏的应用程序验证程序。它运行的操作系统是 Windows 7。我遇到的问题非常愚蠢:我无法启动应用程序验证程序。我读到它安装在程序菜单中(但我在那里找不到应用程序验证程序),或者我只是运行 AppVerif.exe(我也找不到)。在我的应用程序验证程序文件夹中,我只有 REDIST.txt、vrfauto.dll、vrfauto.h 和 vrfauto.idl 文件,没有别的。我尝试再次卸载并重新安装它,但文件夹的内容保持不变,并且在我的计算机上没有 AppVerif.exe 的痕迹。在这一点上,我不知道该怎么办。我的应用程序卡住了,我无法继续。请帮帮我!

0 投票
1 回答
406 浏览

c++ - 使用 MS“应用程序验证程序”运行时 D3DXCreateTexture 失败

问题很简单,如标题:为什么 D3DXCreateTexture() 在使用 Application Verifier 运行时有时会因 E_OUTOFMEMORY 而失败?没有它 - 一切正常。好吧,几乎,当然,我使用 App Verifier 是有原因的:我怀疑我的代码中存在一些堆损坏情况,但是这个错误在调试或发布时从未发生过 - 只有 App Verifier (然后它发生在调试和发布中)。当谈到结果时,记忆博士并不太具体,主要指向 3rd 方库(openssl、freefont、directx 等),而不是我正在谈论的代码。你们有什么想法吗,发生了什么?提前致谢。

0 投票
0 回答
395 浏览

opengl - 应用程序验证器和 OpenGL 调用

我正在使用Application Verifier测试 app.without Application Verifier 应用程序运行正常。但是当应用程序到达 nvoglv64!DrvPresentBuffers+0x1e1d8e抛出异常(访问冲突)时,使用应用程序验证器。之后,我使用应用程序验证器和一个非常简单的 OpenGL 示例,它也在同一个地方抛出了相同的异常。我的驱动程序是 nvidia 320.49。是驱动程序问题吗?

0 投票
0 回答
425 浏览

windows - 开启 App Verifier 时 gethostbyname API 失败

我在尝试打开 Page Heap 的应用程序验证器下测试应用程序时遇到了问题。事实证明,即使对于像“localhost”这样的合法主机名,gethostbyname API 也总是失败。这个问题在我尝试过的每个 Win-7 或 Server 2008 R2 上都会重现,即使是使用 gethostbyname 的非常简单的测试应用程序。

复制步骤:在 appverifier 中检查“page heap”和“UseLFGGuard...”复选框,使用 gethostbyname(..) 运行任何应用程序。

应用验证标志

应用程序代码示例(appverifier 关闭时打印“127.0.0.1”,appverifier 开启时打印“getaddrinfo failed”):

最不寻常的是,我在互联网上找不到任何东西。这是一个已知问题吗?任何解决方法?

0 投票
0 回答
208 浏览

c# - windows 商店应用程序验证程序失败

我正在尝试使用应用程序验证程序调试我的应用程序,但出现此错误。有人知道吗?

0 投票
1 回答
1034 浏览

c++ - 在 MinGW 上调试内存损坏

我在一个相当大的项目中遇到了一些内存损坏问题,以控制一些科学硬件(约 6000 行),我不确定哪个是解决问题的最佳方法/工具。该项目使用 Qt 4.8,并使用 QtCreator 和 MinGW 构建。该程序或多或少地工作,但我遇到了一些稳定性问题。有时我会随机崩溃,但在某些情况下,当我稍微更改源代码时,程序会在完全相同的位置崩溃(以前工作过的位置)。这次它选择的位置是这样的:

当我在 gdb 中运行它时,第二行给出了分段错误 (SIGSEGV) - 这告诉我程序的内存存在某种问题,因为我确定这两行是正确的。此外,“崩溃站点”会根据确切的源代码而变化;我什至在 Qt 使用的 Windows DLL 中看到过崩溃。

我已经研究了一些选项来找到问题的原因,但我遇到了一些困难:

  • 我已经下载了 DUMA,但无法在 MinGW 上编译它——我必须更改包含命令才能创建库,但现在其中一个测试程序失败了。(任何提示或二进制文件的链接,有人吗?)
  • 我也尝试过应用程序验证程序,但是当我运行它时,它总是停在同一个位置,我正在使用的第 3 方 DLL 正在泄漏句柄。我有理由确定这不是我的问题的原因,但我无法继续调试过程,因为 gdb 总是回到相同的位置(它只会在我使用应用程序验证程序时卡在那里)。
  • 最后,我用 Dr. Memory 运行了我的程序,但它在到达主窗口之前就崩溃了,没有给我任何有用的输出(我唯一看到的是 Qt 显然在浪费一些内存)。

对于最终摆脱此错误的最有希望的方法,我将不胜感激。