Testing Applications

The tests included in the Application Verifier are to help software developers avoid common mistakes by using verification layers to validate the usage of the following API families:

Lock Verifier– Verifies the correct usage of critical sections.

Handle Verifier– Tests to ensure the application is not attempting to use invalid handles.

Heap Verifier– Checks for memory corruption issues in the heap.

Start Testing an Application

To start testing an application, select Start with Application Verifier from the Debug menu. This option will only appear for VC++ projects. Therefore, if you are creating a VB, VC# and VJ# project, Application Verifier will not appear as an option.

If you have a VC++ project but the option does not appear or it is grayed out it could be due to one of the following:

  1. A solution or project must be opened in the Integrated Development Environment (IDE).

  2. It will also appear disabled while the process of building the project is still in progress.

  3. Once you have selected to run your program under the debugger with Application Verifier, the option will appear disabled or grayed out until the debug session ends.

Testing with the Application Verifier download and Visual Studio

Application Verifier is available from two different locations: the Debug menu within Visual Studio as well as a stand alone version from https://go.microsoft.com/fwlink/?LinkId=49500. There are a few differences between the two; most notably the layout of the Application Verifier settings in the registry from the Visual Studio version. If you are using both versions you may encounter the following error:

There are existing settings for image <App_Name.exe> on machine <Machine_Name>. If you want to continue debugging with Application Verifier, the existing settings will be lost. Click OK to continue debugging or CANCEL to continue debugging without Application Verifier

This error occurs if there are existing settings in the registry for an application that you are testing by enabling the stand alone Application Verifier and then selecting Application Verifier from the Debug menu within Visual Studio. For example, if you enabled page heap with the downloaded version and then selected Application Verifier from the Debug menu you see this error. In this scenario, clicking on OK will delete the existing page heap settings and run the application under the Visual Studio Application Verifier. Clicking on CANCEL will leave the page heap settings alone and run the application without Visual Studio Application Verifier.

Error Messages

Application Verifier will display seven messages. Please see the related topic in which they are explained in detail:

  1. "Application Verifier is not supported on the Operating System running on your machine <Machine_Name>. Please upgrade to Windows XP or above" is detailed under the System Requirements on the Application Verifier topic.

  2. "Application Verifier is not supported for the selected debug mode. Please see the supporting documentation for more information. Click on OK to continue debugging without verifier" is detailed under the Where Applicable header on the Application Verifier topic.

  3. "Application Verifier requires an updated system file that is not detected on your machine <Machine_Name>. Do you want to go to the Windows download center to get the update?" is detailed under the System Requirements on the Application Verifier topic.

  4. "Access denied. You need administrative credentials to use Application Verifier on image <App_Name.exe> on machine <Machine_Name>. Contact your system administrator for assistance" is detailed under the User Requirements header on the Application Verifier topic.

  5. "Error: <error>. Application Verifier settings could not be enabled on image <App_Name.exe> on machine <Machine_Name>. Contact your system administrator for assistance".  This is displayed if you fail to enable verifier settings for any reason other than ACCESS_DENIED due to administrator privileges on Windows XP and above.

  6. "There are existing settings for image <App_Name.exe> on machine <Machine_Name>. If you want to continue debugging with Application Verifier, the existing settings will be lost. Click OK to continue debugging or CANCEL to continue debugging without Application Verifier" is detailed above.

  7. "Access denied. You need administrative credentials to use Application Verifier on image <App_Name.exe> on machine <Machine_Name> or per user verifier settings should be enabled by the administrator. Please refer to documentation for more information" is detailed under the User Requirements on the Application Verifier topic.