Rational Purify: What it does
Using Purify
The basic steps Instrumenting and running your program Analyzing Purify error messages Correcting errors and rerunning Saving error data Using Purify with test harnesses, makefiles, and scripts Using the Purify Viewer Using the Purify Viewer Exit status summary Memory leaked summary Using the Purify help system Using Purify: an example Building and running the testHash example program Finding memory access errors in testHash Finding memory leaks in testHash Suppressing Purify Messages About suppressing messages Suppressing messages in the Viewer Specifying suppressions in a .purify file Viewing suppressed messages Removing and editing suppressions Using suppressions for multiple programs Setting Watchpoints About watchpoints Calling Purify watchpoint functions Saving watchpoints Using Rational products with Purify Using Rational PureCoverage with Purify Using Rational ClearQuest with Purify Using Rational ClearCase with Purify
The basic steps
Instrumenting and running your program
Analyzing Purify error messages
Correcting errors and rerunning
Saving error data
Using Purify with test harnesses, makefiles, and scripts
Using the Purify Viewer
Using the Purify Viewer Exit status summary Memory leaked summary Using the Purify help system
Exit status summary
Memory leaked summary
Using the Purify help system
Using Purify: an example
Building and running the testHash example program Finding memory access errors in testHash Finding memory leaks in testHash
Building and running the testHash example program
Finding memory access errors in testHash
Finding memory leaks in testHash
Suppressing Purify Messages
About suppressing messages Suppressing messages in the Viewer Specifying suppressions in a .purify file Viewing suppressed messages Removing and editing suppressions Using suppressions for multiple programs
About suppressing messages
Suppressing messages in the Viewer
Specifying suppressions in a .purify file
Viewing suppressed messages
Removing and editing suppressions
Using suppressions for multiple programs
Setting Watchpoints
About watchpoints Calling Purify watchpoint functions Saving watchpoints
About watchpoints
Calling Purify watchpoint functions
Saving watchpoints
Using Rational products with Purify
Using Rational PureCoverage with Purify Using Rational ClearQuest with Purify Using Rational ClearCase with Purify
Using Rational PureCoverage with Purify
Using Rational ClearQuest with Purify
Using Rational ClearCase with Purify
Customizing Purify
About customizing Purify Mailing Purify output to team members Annotating Purify output Customizing Purify messages Controlling message batching Customizing threads handling Enabling just-in-time debugging Reporting Purify status at exit Running shell scripts at exit Customizing the Purify Viewer Using and customizing Purify scripts Customizing the program controls Managing cached object files Selecting a configuration management system Configuring a change request management tool Using custom memory managers with Purify About custom memory managers Modifying fixed-size allocators Modifying pool allocators Modifying sbrk allocators Accessing auxiliary data
About customizing Purify
Mailing Purify output to team members
Annotating Purify output
Customizing Purify messages
Controlling message batching
Customizing threads handling
Enabling just-in-time debugging
Reporting Purify status at exit
Running shell scripts at exit
Customizing the Purify Viewer
Using and customizing Purify scripts
Customizing the program controls
Managing cached object files
Selecting a configuration management system
Configuring a change request management tool
Using custom memory managers with Purify
About custom memory managers Modifying fixed-size allocators Modifying pool allocators Modifying sbrk allocators Accessing auxiliary data
About custom memory managers
Modifying fixed-size allocators
Modifying pool allocators
Modifying sbrk allocators
Accessing auxiliary data
Purify messages
Purify messages: overview About memory access errors About memory access errors How Purify finds memory access errors About memory leaks About memory leaks How Purify finds and reports memory leaks Using the new leaks button Disabling memory leaked messages About file descriptors About file descriptor leaks File descriptor leak example File descriptors message ABR: array bounds read ABW: array bounds write BRK: misuse of brk or sbrk BSR: beyond stack read BSW: beyond stack write COR: core dump imminent FIU: file descriptors in use FMM: freeing mismatched memory FMR: free memory read FMW: free memory write FNH: freeing non-heap memory FUM: freeing unallocated memory IPR: invalid pointer read IPW: invalid pointer write MAF: malloc failure MIU: memory in use MLK: memory leak MRE: malloc reentrancy error MSE: memory segment error NPR: null pointer read NPW: null pointer write PAR: bad parameter PLK: potential memory leak PMR: partial UMR SBR: stack array bounds read SBW: stack array bounds write SIG: signal message SOF: stack overflow UMC: uninitialized memory copy UMR: unitialized memory read WPF: watchpoint free WPM: watchpoint malloc WPN: watchpoint entry WPR: watchpoint read WPW: watchpoint write WPX: watchpoint exit ZPR: zero page read ZPW: zero page write
Purify messages: overview
About memory access errors
About memory access errors How Purify finds memory access errors
How Purify finds memory access errors
About memory leaks
About memory leaks How Purify finds and reports memory leaks Using the new leaks button Disabling memory leaked messages
How Purify finds and reports memory leaks
Using the new leaks button
Disabling memory leaked messages
About file descriptors
About file descriptor leaks File descriptor leak example File descriptors message
About file descriptor leaks
File descriptor leak example
File descriptors message
ABR: array bounds read
ABW: array bounds write
BRK: misuse of brk or sbrk
BSR: beyond stack read
BSW: beyond stack write
COR: core dump imminent
FIU: file descriptors in use
FMM: freeing mismatched memory
FMR: free memory read
FMW: free memory write
FNH: freeing non-heap memory
FUM: freeing unallocated memory
IPR: invalid pointer read
IPW: invalid pointer write
MAF: malloc failure
MIU: memory in use
MLK: memory leak
MRE: malloc reentrancy error
MSE: memory segment error
NPR: null pointer read
NPW: null pointer write
PAR: bad parameter
PLK: potential memory leak
PMR: partial UMR
SBR: stack array bounds read
SBW: stack array bounds write
SIG: signal message
SOF: stack overflow
UMC: uninitialized memory copy
UMR: unitialized memory read
WPF: watchpoint free
WPM: watchpoint malloc
WPN: watchpoint entry
WPR: watchpoint read
WPW: watchpoint write
WPX: watchpoint exit
ZPR: zero page read
ZPW: zero page write
Purify options
About Purify options Using Purify options Build-time options Annotation option Exit processing options File descriptor options Mail mode option Memory access options Memory leak options Message appearance options Message batching option Output mode options Static checking options Suppression option Threads options Watchpoint option Miscellaneous options
About Purify options
Using Purify options
Build-time options
Annotation option
Exit processing options
File descriptor options
Mail mode option
Memory access options
Memory leak options
Message appearance options
Message batching option
Output mode options
Static checking options
Suppression option
Threads options
Watchpoint option
Miscellaneous options
Purify API
About Purify API functions Calling Purify API functions Annotation API functions Exit processing API function File descriptor API functions Memory access API functions Memory leak API functions Message batching API functions Pool allocation API functions Threads API function Watchpoint API functions Miscellaneous API functions
About Purify API functions
Calling Purify API functions
Annotation API functions
Exit processing API function
File descriptor API functions
Memory access API functions
Memory leak API functions
Message batching API functions
Pool allocation API functions
Threads API function
Watchpoint API functions
Miscellaneous API functions
Reference and contact information
Contacting Technical Support Filing bug reports with Rational Software Contacting Technical Publications Accessing the Rational Developer Network Purify overhead Troubleshooting Glossary
Contacting Technical Support
Filing bug reports with Rational Software
Contacting Technical Publications
Accessing the Rational Developer Network
Purify overhead
Troubleshooting
Glossary