Testing applications under XP with AppVerifier

by Wayne Maples [Published on 20 April 2004 / Last Updated on 20 April 2004]

The Application Verifier, AppVerifier, tool was developed by the Application Experience team at Microsoft to assist with testing applications running under XP for commonly encountered application compatibility issues as well as some very subtle kernel issues. The Application Verifier tool shipped with Windows XP and can be found in the /Support/Tools folder on the CD-ROM. To install AppVerifier on your Windows XP system:
  • Insert the Windows XP CD-ROM
  • Double-click ACT.EXE
  • Accept defaults for the Setup
AppVerifier can be found in the Application Compatibility Toolkit group on the Start menu.

This is not JUST a developers tools. Its an admins tool. Having a problem with an application? Want to learn what the application does? Run it while being monitored by AppVerifier then study the log generated. To monitor an application:

  • Click Start | Programs | Application Compatibility Toolkit | AppVerifier
  • Click the Add button
  • Browse to the folder location of the application and select the executable file to test.
  • Click the Open button when you have the file selected.
  • In the Test Settings pane, select the tests you want to perform from the following list:
    • Detect heap corruptions
      This test performs regular checks of the heap and adds guard pages at the end of each allocation to catch possible heap overruns.
    • Locks usage checking
      This test looks for common errors with locks. The output is displayed in a separate debugger application. Note that this test may cause access violations if an error is found.
    • Detect invalid handle usage
      Checks for common problems with handles. The output is displayed in a separate debugger application. Note that this test may cause access violations if an error is found.
    • Thread stack size checking
      This test disables stack growth. This will cause a stack overflow exception if the initial allocation was too small.
    • LogStartAndStop
      This option simply enters log information when the application starts or stops. This helps to make the logs easier to read when reviewing test data.
    • FilePaths
      This test monitors the application's attempts to obtain file path information to see if the program uses hard-coded paths, or a non-standard method of gathering the information. Note that this test may cause the application to crash if an improper method of determining file paths is used.
    • HighVersionLie
      In the past, many applications have been written to run on a single version of Windows. This test will return a very high version number when the application attempts to determine which version of Windows it is running in.
    • RegistryChecks
      This test monitors the application's use of the system registry for any inappropriate or dangerous calls. Any problems detected will be logged.

    as you can see from the list, AppVerifier, will generate a wide spectrum of information on an application
  • Click Options button to toggle on/off
    • Clear session logs when test settings are changed
    • Break to the debugger when event logged (requires debugger)
    • Use full page heap
    • Use AppVerifier debugger to get crash logs and log kernel checks
Check Application Compatibility Toolkit for updated information.

See Also

Featured Links