Configuring "Application Verifier" In Visual Studio

Brent Arias picture Brent Arias · Mar 29, 2011 · Viewed 10.3k times · Source

I see that I can launch application verifier within Visual Studio 2008 via Debug->Start With Application Verifier. But the documentation for app verifier shows a bunch of options that can be configured if it's UI is launched separately from Visual Studio. I can't figure how to set those options from within Visual Studio.

It turns into a trade-off. If I launch app verifier from the Debug menu, I get an IDE integrated response from app verifier about flaws in my execution. If I launch app verifier externally, and configure specific options, it still causes a "stop" to occur during my Visual Studio debugging, but then I don't get the IDE integrated app verifier output.

Does anyone know how to access the configuration capabilities of app verifier, and still have the VS fully-integrated experience?

Answer

franmon picture franmon · May 28, 2011

I often use Application verifier at my workplace, with VS2005 and with Windbg, so I can tell you a bit how it works.

First, you should launch the Application Verifier standalone application in order to add your application to the list of applications instrumented by Application verifier. Then, in the 'Test' right pane of the main dialog, you can select different aspects of your application you want the verifier to verify.

But, it is not enough to check the different tests, you must configure them so they behave like you want them to.

In your question, you mention having the 'problem' of having the debugger stop (break) during execution when an error is found by the verifier. This behaviour is configurable from the Application verifier UI. When you check a category to test, right click on it, and select 'Verifier Stop Options'. You will then see the following dialog appear:

Application Verifier - Verifier Stops

In this dialog, for each type of error that the verifier can detect (listed in the Verifier Stop list on the left), you will get a description of the error, and you can specify if you want the Verifier to completely ignore this kind of error (by checking 'Inactive'), or if you want an attached debugger to break, throw an exception or just log to a file when such an error occurs.

You can also specify if you want the error to be reported multiple times or just once per application run.

In your specific situation, since you do not want the debugger to break each time an error is found, you should just check the logging options, along with the 'No Break' radio button, except maybe for the most critical errors the verifier can find (for which you might want the debugger to break in order to trace and see what the problem is while you reproduce the issue).

When your options are set properly, you can then close the Application verifier application (settings will be saved to the registry), and launch your application from Visual Studio.

The 'Output' window of Visual Studio should contain logs of errors found by the verifier.

The logs generated by the Application Verifier are accessible from the verifier UI, via the View->Logs menu item.