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
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
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 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
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