Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Microsoft应用程序验证程序 使用C++,今天在演示中发现我正遭受一个损坏的堆(但只有在重要的场合!)我找到了一个,并决定下载和下载。我目前正在运行VisualStudio2010_C++_Heap Corruption_Application Verifier - Fatal编程技术网

如何使用Microsoft应用程序验证程序 使用C++,今天在演示中发现我正遭受一个损坏的堆(但只有在重要的场合!)我找到了一个,并决定下载和下载。我目前正在运行VisualStudio2010

如何使用Microsoft应用程序验证程序 使用C++,今天在演示中发现我正遭受一个损坏的堆(但只有在重要的场合!)我找到了一个,并决定下载和下载。我目前正在运行VisualStudio2010,c++,heap-corruption,application-verifier,C++,Heap Corruption,Application Verifier,所以,现在我只剩下一个调试工具的安装,在那个里我得到了一个名为WindowsKits的文件夹。在文件夹中,我有一个名为WinDbg的应用程序,我试图打开并运行它。它起作用了,但我无法获得有关堆损坏的任何信息。然后我安装了验证器,只剩下一个头文件和一个.dll文件,我不知道该怎么办 那么,有谁能告诉我如何使用这个工具,这样我就不必再忍受像这样的尴尬时刻了?我一直在论坛上搜索,因为我甚至不知道如何打开验证器,当我阅读如何使用它的说明(从2009年开始)时,我真的迷路了。应用验证器将安装一个AppVe

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


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

应用验证器将安装一个
AppVerif.EXE
可执行文件。运行它,并告诉它验证您的应用程序。然后在调试器(WinDBG或IDE)中运行应用程序

考虑将与Visual Studio调试器结合使用

  • 启动Visual Studio并编译应用程序
  • 启动应用程序验证工具
  • 文件
    =>
    添加应用程序
  • 选择适当的
    测试(例如堆、异常等)
  • 使用Visual Studio
    调试
    启动应用程序
  • 当坏事发生时。。。调试器将停止。这会让你对问题的根源有一个很好的了解

    此外,在开始测试之前加载缺少的符号可能会有所帮助。在Visual Studio 2017中,您可以通过以下方式执行此操作:

  • Debug
  • 选项和设置
  • 调试
  • 符号
  • 加载所有符号
  • 祝你好运

    注意:完成后,请确保禁用已启用的AppVerfier检查。。。否则,在您忘记AppVerifier的6个月后,您可能会遇到一些意想不到的副作用

    参考资料
      • 我相信它也包含在各种Windows SDK中(以前称为Platfrom SDK)
      • 请注意,您可能安装了两个版本:
        • C:\Windows\SysWOW64\appverif.exe
          [32位版本]
        • C:\Windows\System32\appverif.exe
          [64位版本]

    在哪里?在program and files(程序和文件)下的app verifier文件夹中,我看不到任何可执行文件。它位于system32中,当我不知道它的名称时,我不知道如何查找它。最后一步是:重新运行app verifier并选择菜单项View->Logs(查看->日志);应用程序报告将与日期、检测到的错误和警告数一起列出。要查看结果,有查看按钮,但在我的系统上什么也不做。我保存为xml文件并使用通用文本查看器读取输出。Appverifier说要获得最佳结果,应用程序应在调试模式下运行。@Sahara:MSalters获得了我的投票,因为在我的情况下,Appverifier发现了问题,而我没有付出任何努力。我运行了c:\windows\system32\AppVerif.exe,通过“文件>添加应用程序”将我的应用程序添加到左侧窗口,在右侧窗口中选择“基本”,按“保存”和“退出”,然后在Visual Studio中以调试模式运行我的应用程序。它立即指出了我的代码将第7个元素添加到6元素数组末尾的位置。这就是允许AppVerifier“做它的事情”所需要做的一切。下面是您的问题的答案,非常详细@Rigel链接无效,以防其他人遇到我遇到的问题-请确保在管理员权限下运行appverif.exe。(右键单击“以管理员身份运行”)。如果您没有在管理条件下运行appverif.exe,它将不允许您添加应用程序进行测试。它只允许您查看以前的日志。使用VS 2019并在调试器下启动应用程序,我唯一看到的是“进程已退出,代码为X”-没有中断,只是完成状态。即使我在异常设置窗口中启用所有checkmarkus并禁用“仅我的代码”,appVerif.exe在Windows 10 19h1默认安装中也不存在。我确实在开发人员主机上找到了@C:\Windows\System32\appverif.exe,它有几个工具集。可能它是随Microsoft ADK或WDK调试器工具提供的。@kevinf正如上面的“参考”部分所述,您必须下载该应用程序。此版本的应用程序验证程序已过时,并按原样提供给早于WINDOWS 7的操作系统。新版本在Windows SDK-中发布。对于以前版本的Windows,存档的SDK版本可从以下站点获得:。