在Visual Studio中配置“应用程序验证器”

16
我发现可以通过Debug->Start With Application Verifier在Visual Studio 2008中启动application verifier。但是,如果从Visual Studio分别启动其UI,则documentation for app verifier中显示可以配置的一堆选项。我无法弄清楚如何从Visual Studio内部设置这些选项。
这成为一种权衡。如果我从Debug菜单启动app verifier,则会得到来自app verifier的IDE集成响应,指出执行中的缺陷。如果我外部启动app verifier并配置特定选项,则仍会在我的Visual Studio调试期间导致“停止”,但是我将不会得到IDE集成的app verifier输出。
有人知道如何访问app verifier的配置能力,并仍然拥有完全集成的VS体验吗?

当外部启动时,您无法获得哪些AppVerifier输出?我不熟悉它在VS中的使用,但我似乎总是可以从Windbg+AppVerif获取所需的信息 :) - paulcam
1个回答

21

我经常在工作中使用应用程序验证器(Application Verifier), 与VS2005和Windbg一起使用,所以我可以告诉您它是如何运作的。

首先,您需要启动独立的应用程序验证器(Application Verifier)应用程序,以将您的应用程序添加到由应用程序验证器检测的应用程序列表中。然后,在主对话框的“测试”右侧窗格中,您可以选择希望验证器验证的应用程序的不同方面。

但是,仅仅检查不同的测试是不够的,您必须配置它们以使其按照您的意愿运作。

在您的问题中,您提到了在验证器发现错误时调试器停止(中断)执行的“问题”。此行为可以从应用程序验证器UI进行配置。当您勾选要测试的类别时,请右键单击它并选择“验证器停止选项”。然后会出现以下对话框:

Application Verifier - Verifier Stops

在此对话框中,针对验证器能够检测到的每种类型的错误(列在左侧的验证器停止列表中),您将获得一个错误描述,并且您可以指定当此类错误发生时,您是否希望验证器完全忽略此类错误(选择“非活动”),或者您是否希望附加的调试器在出现此类错误时中断、抛出异常或仅记录到文件中。

您还可以指定是否要多次报告错误,还是每次运行应用程序时仅报告一次。

在您特定的情况下,由于您不想在找到错误时每次都让调试器中断,除了可能验证器可以找到的最严重的错误(您可能希望在此类情况下让调试器中断以跟踪并查看问题),您应该只勾选日志记录选项和“No Break”单选按钮。

当您的选项设置正确时,您就可以关闭应用程序验证器(Application Verifier)应用程序(设置将保存到注册表中),然后从Visual Studio启动您的应用程序。

Visual Studio的“输出”窗口应包含验证器发现的错误日志。

应用程序验证器生成的日志可通过验证器UI中的查看->日志菜单项进行访问。


1
你的回答真的很有道理!我有三个问题要问你:1. “!heap -p -a ACCESS_ADDRESS” 命令是什么?我在哪里配置 appVerifier 以便与 windbg.exe 一起使用?3. gFlags 和 appVerifier 之间有什么区别? - RRR

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接