Purify reports error locations precisely if debug line data is available when you instrument a program. Using debug data, Purify identifies the function name, the source file name, and the line number associated with the error location. For example:
main+0x4a5 [put.c:2564 ip=0x0045002e]
If no debug line data is available, but the module either exports functions by name or provides symbol data in a .map file, Purify identifies the nearest-named function and the module name associated with the error location. For example:
MyExportedFn+0x2345 [mydll.dll ip=0x50045322]
To distinguish between different function locations associated with the same function name, select Show instruction pointers and Show instruction pointer offsets in the Source Code tab in the Preferences dialog box. Since the module can contain many unnamed functions (typically declared static) the instruction pointer offsets from the nearest named function are typically large. If you provide a .map file, Purify can often present more understandable location information without requiring debug information.
Finally, if neither debug data nor exported function name information is available, Purify identifies the error location from the beginning of the module itself. For example:
mydll.dll+0x98345 [mydll.dll ip=0x50045322]
Note:
§ For information on how Purify locates debug data, click
(C) Copyright IBM Corporation 1992, 2010.