About Instrumentation Levels for Collecting Error Data

Related Topics

When you run a native-compiled (unmanaged) program under Purify, Purify instruments each module for error checking at one of the following levels:

§          Precise instrumentation

§          Minimal instrumentation

§          Exclude

The default error-checking instrumentation level is based on the size of each module in the program and the availability of debug data, as specified in the PowerCheck tab in the settings dialog boxes. You can use the PowerCheck tab to change the defaults and also to specify how you want Purify to instrument individual modules.

The availability of relocation data, debug line data, and symbol data also affects the level at which Purify can perform instrumentation. For more information, click images\shortcut.gif

Precise instrumentation

Precise instrumentation provides full run-time error detection and precisely pinpoints problems in any component in the program.

With precise instrumentation, Purify uses Object Code Insertion (OCI) technology during instrumentation to insert checking instructions before each memory operation. These checking instructions validate every read, write, allocation and freeing of memory.

Minimal instrumentation

Minimal instrumentation provides quick instrumentation for modules whose errors are of less interest to you. With minimal instrumentation, Purify uses Object Code Insertion (OCI) technology during instrumentation to insert checking instructions into the program. Minimal instrumentation does not detect the following errors and warnings within those modules:

§          Exception messages (EX*).

§          Memory errors on the stack.

§          Heap messages (UMR, AB*, FM*, IP*, NP*, BS*), unless they were caused by a call to a Windows API function. However, Purify can detect heap write errors at a later point. When this occurs, Purify displays Late Detect Array Bounds Write (ABWL) and Late Detect Free Memory Write (FMWL) messages in the Error View.

With this level of instrumentation, Purify reports fewer messages in the Error View.

Exclude

Purify excludes from instrumentation "hook DLLs" (typically special mouse and glidepad drivers) that cause your program to malfunction when SetWindowsHook() is called. By default, Purify excludes all hook DLLs known at time of shipping. If you find a new DLL that needs to be excluded, please notify Rational Software Technical Support. For more information on contacting Technical Support, click images\shortcut.gif

Notes:

§      By default, Purify uses precise instrumentation on certain sets of modules. For example, any DLL whose name starts with Mfc*d.dll.

§      If the module you selected in the Module list in the Module Instrumentation dialog box is already instrumented and saved in the cache directory, and you change the instrumentation level, Purify automatically deletes the cached version and reinstruments the file the next time you run the program.

§      When you change instrumentation levels, you must rerun the program for the changes to take effect.

(C) Copyright IBM Corporation 1992, 2010.