Differences With Traditional Debuggers
The ability to detect non-fatal errors is a major distinction between Purify and similar programs from the usual debuggers. By contrast, debuggers generally only allow the programmer to quickly find the sources of fatal errors, such as a program crash due to dereferencing a null pointer, but do not help to detect the non-fatal memory errors. Debuggers are useful for other things that Purify is not intended for, such as for stepping through the code line by line or examining the program's memory by hand at a particular moment of execution. In other words, these tools can complement each other for a skilled developer.
Purify also includes other functionality, such as high-performance watchpoints, which are of general use while using a debugger on one's code.
It is worth noting that using Purify makes the most sense in programming languages that leave memory management to the programmer. Hence, in Java, Lisp, or Visual Basic, for example, automatic memory management reduces occurrence of any memory leaks. These languages can however still have leaks; unnecessary references to objects will prevent the memory from being re-allocated. IBM has a product called Rational Application Developer to uncover these sorts of errors.
Read more about this topic: IBM Rational Purify
Famous quotes containing the words differences and/or traditional:
“No sooner had I glanced at this letter, than I concluded it to be that of which I was in search. To be sure, it was, to all appearance, radically different from the one of which the Prefect had read us so minute a description.... But, then, the radicalness of these differences ... these things ... were strongly corroborative of suspicion.”
—Edgar Allan Poe (18091849)
“The community and family networks which helped sustain earlier generations have become scarcer for growing numbers of young parents. Those who lack links to these traditional sources of support are hard-pressed to find other resources, given the emphasis in our society on providing treatment services, rather than preventive services and support for health maintenance and well-being.”
—Bernice Weissbourd (20th century)