your Windows® embedded community
Application Verifier attaches to an application and performs tests while the application runs. With the tool, you may be able to diagnose subtle problems with an application that would otherwise be difficult to diagnose on Microsoft Windows CE.In short, the Application Verifier, as its name implies, is generally used for testing "applications" -- so, how do you use it to test low-level driver code? To find out the answer to that $64,000 question, put on your safety glasses and head over to Mike Thompson's lengthy blog posting at MSDN, here.
Each test that Application Verifier runs is referred to as a shim. The tool inserts the shim into the code path between the calling function and the intended target function. A shim loads into the process space, and the kernel redirects calls from other libraries to the shim.
You might find it helpful to run a shim with a debugger attached to the target device. If a debugger is attached to the target device, the debugger points to the location where the exception occurred, which might be close to the source of the problem identified by the shim.
For a specified application, you can select the shims that Application Verifier uses to test the application. Examples of tests performed by shims for the tool include tests for memory leaks, tests for the usage of specific application programming interfaces (APIs), and tests for memory corruption.