When you instrument a native-compiled (unmanaged) program, Purify makes a copy of the executable and its associated modules. It uses Object Code Insertion (OCI) technology to insert two types of instructions:
§ Error-checking instructions. Purify inserts these before each memory operation in the instrumented version of the code. These instructions validate every read, write, allocation and freeing of memory.
§ Coverage-monitoring instructions. These instructions increment counters every time a line or function is executed. Purify inserts these instructions only if you are collecting coverage data.
By default, Purify stores all instrumented files in the Purify cache directory. You can identify an instrumented file by its name, which includes the cache directory, the encoded path of the original file, and other information used by Purify.
Purify provides different levels of instrumentation for error checking and coverage monitoring, and assigns a default level for each component in your program. For information about error-checking instrumentation levels, click . For information about coverage-monitoring instrumentation levels, click
.
Using Purify's PowerCheck tab in the settings dialog boxes, you can override defaults and set the instrumentation levels you want on a per module basis. For more information, click
Notes:
§ The availability of relocation data, debug line data, and symbol data affects the level at which Purify can perform instrumentation. For more information, click
§ If you are using Microsoft Windows 2000 or higher, the Windows File Protection feature (WFP) may cause problems when you use Purify's /replace command line option. For a workaround to this problem, click .
(C) Copyright IBM Corporation 1992, 2010.