FACTOID # 7: The top five best educated states are all in the Northeast.
 
 Home   Encyclopedia   Statistics   States A-Z   Flags   Maps   FAQ   About 
   
 
WHAT'S NEW
RELATED ARTICLES
People who viewed "Purify" also viewed:
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Purify

Purify is a memory debugger program used by software developers to detect memory access errors in programs, especially those written in C or C++. It was originally written by Reed Hastings of Pure Software. Pure Software later merged with Atria Software to form Pure Atria Software, which in turn was later acquired by Rational Software, which in turn was acquired by IBM. A memory debugger is a programming tool for finding memory leaks and buffer overflows. ... Computer software (or simply software) refers to one or more computer programs and data held in the storage of a computer for some purpose. ... The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a standardized imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ... C++ (pronounced see plus plus, IPA: ) is a general-purpose computer programming language. ... Reed Hastings (Wilmot Reed Hastings, Jr. ... Rational Software was an independent software development company until 2003, when it was bought by IBM. Most of its products involved modelling and aiding in software development and maintenance. ... International Business Machines Corporation (IBM, or colloquially, Big Blue) NYSE: IBM (incorporated June 15, 1911, in operation since 1888) is headquartered in Armonk, NY, USA. The company manufactures and sells computer hardware, software, infrastructure services and consulting services. ...


Purify allows dynamic verification, a process by which a program discovers errors that occur when the program runs, much like a debugger. Static verification or static code analysis, by contrast, involves detecting errors in the source code without ever compiling or running it, just by discovering logical inconsistencies. The type checking by a C compiler is an example of static verification. A debugger is a computer program that is used to debug (and sometimes test or optimize) other programs which might be running on the same computer (host computer) as the debugger is running, or running on a second remote computer which might be a similar machine, a dissimilar computer, or... Static analysis is the term applied to the analysis of computer software that is performed without actually executing programs built from that software (analysis performed on executing programs is known as dynamic analysis). ... Source code (commonly just source or code) is any series of statements written in some human-readable computer programming language. ... On computer science, a datatype (often simply type) is a name or label for a set of values and some operations which can be performed on that set of values. ... The C Programming Language, Brian Kernighan and Dennis Ritchie, the original edition that served for many years as an informal specification of the language The C programming language is a standardized imperative computer programming language developed in the early 1970s by Dennis Ritchie for use on the Unix operating system. ... A diagram of the operation of a typical multi-language compiler. ...


When a program is linked with Purify, corrected verification code is automatically inserted into the executable by parsing and adding to the object code, including libraries. That way, if a memory error occurs, the program will print out the exact location of the error, the memory address involved, and other relevant information. Purify also includes garbage collection routines. These routines detect memory leaks, either at program exit or at any time, by calling the leak-detection functions from a debugger or from the program itself. Figure of the linking process, where object files and static libraries are assembled into a new library or executable. ... In computer science, object file or object code is an intermediate representation of code generated by a compiler after it processes a source code file. ... In computer science, garbage collection (also known as GC) is a form of automatic memory management. ... A memory leak is unnecessary memory consumption by a computer program. ...


The errors that Purify discovers include array bounds reads and writes, trying to access unallocated memory, and freeing unallocated memory (usually due to freeing the same memory for the second time). It is essential to note that most of these errors are not fatal (at least not at the site of the error), and often when just running the program there is no way to detect them, except by observing that something is wrong due to incorrect program behavior. Hence Purify helps enormously by detecting these errors and telling the programmer exactly where they occur. Because Purify works by instrumenting all the object code, it detects errors that occur inside of third-party or operating system libraries. These errors are often caused by the programmer passing incorrect arguments to the library calls, or by misunderstandings about the protocols for freeing data structures used by the libraries. These are often the most difficult errors to find and fix. In computer science, object file or object code is an intermediate representation of code generated by a compiler after it processes a source code file. ... Early computers lacked operating systems. ... A binary tree, a simple type of branching linked data structure. ...


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 reading 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. On the other hand, it should be noted that debugging with a debugger is essentially done by hand, much like coding itself, and many programmers may prefer to debug without it just by examining program output at various places. Purify, on the other hand, works automatically, save for the effort required to set it up so that it compiles with the code properly, and so most developers would probably avail themselves of the simplicity and power of the automatic verification of memory accesses it offers, at least if it were available on their system. A debugger is a computer program that is used to debug (and sometimes test or optimize) other programs which might be running on the same computer (host computer) as the debugger is running, or running on a second remote computer which might be a similar machine, a dissimilar computer, or... In computer science, a pointer is a programming language datatype whose value refers directly to (points to) another value stored elsewhere in the computer memory using its address. ... A debugger is a computer program that is used to debug (and sometimes test or optimize) other programs which might be running on the same computer (host computer) as the debugger is running, or running on a second remote computer which might be a similar machine, a dissimilar computer, or...


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 only makes sense in programming languages that leave memory management to the programmer. Hence, in Java, Lisp, or Visual Basic, for example, automatic memory management precludes occurrence of any memory leaks. Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early 1990s. ... Lisp is a family of computer programming languages with a long history and a distinctive fully-parenthesized syntax. ... The four colored boxes is the logo of VBA, and the two drums above them symbolize database connectivity Visual Basic (VB) is an event driven programming language and associated development environment created by Microsoft. ... A memory leak is unnecessary memory consumption by a computer program. ...


There are open source or free alternatives to Purify, some of them covering different or additional platforms (Purify exists for AIX/PPC, Microsoft Windows, Solaris/SPARC, IRIX/MIPS, HP-UX/PA-RISC, Linux/x86 and Linux/AMD64). See also memory debugger for a list of alternatives to Purify. Note that some of these alternatives do not instrument binary libraries, so their ability to detect errors in the use of these libraries is very limited in relation to Purify. If the program is compiled completely from source, including all libraries, this limitation obviously does not apply. AIX or Aix may be: Aix, a genus of two species of dabbling ducks, the Wood Duck (Aix sponsa) and the Mandarin Duck (Aix galericulata) AIX operating system Athens Internet Exchange, (AIX) a European IXP a place name: Aix-la-Chapelle, or Aachen, a city in Germany in France: Aix... PowerPC is a RISC microprocessor architecture created by the 1991 Apple-IBM-Motorola alliance, known as AIM. Originally intended for personal computers, PowerPC CPUs have since become popular embedded and high-performance processors as well. ... Microsoft Windows is a series of operating environments and operating systems created by Microsoft for use on personal computers and servers. ... This article contains information that has not been verified and thus might not be reliable. ... Sun UltraSPARC II Microprocessor Sun UltraSPARC T1 (Niagara 8 Core) SPARC (Scalable Processor ARChitecture) is a pure big-endian RISC microprocessor architecture originally designed in 1985 by Sun Microsystems. ... IRIX is the System V-based Unix Operating System with BSD extensions developed by Silicon Graphics (SGI) to run natively on their 32 and 64-bit MIPS architecture workstations and servers. ... MIPS may mean: MIPS architecture, a RISC microprocessor architecture. ... HP-UX (Hewlett Packard UniX) is Hewlett-Packards proprietary implementation of the Unix operating system. ... PA-RISC is a microprocessor architecture developed by Hewlett-Packards Systems & VLSI Technology Operation. ... Tux is the official Linux mascot. ... x86 or 80x86 is the generic name of a microprocessor architecture first developed and manufactured by Intel. ... Tux is the official Linux mascot. ... AMD64 Logo AMD64 (also x86-64 or x64) is a 64-bit microprocessor architecture and corresponding instruction set designed by Advanced Micro Devices. ... A memory debugger is a programming tool for finding memory leaks and buffer overflows. ...


Purify is proprietary and expensive to license for commercial purposes, although universities may obtain discounted academic licenses.


See also

Valgrind is a free programming tool for memory debugging, memory leak detection, and profiling. ...

External links

  • Rational's Purify site
  • Rational's PurifyPlus site

  Results from FactBites:
 
Purify Our Mind (2147 words)
TO purify our mind, we need to first broaden ourselves with activities of compassion so as to gradually get rid of the self-centered habits.
If we want to purify our mind, getting rid of the garbage in our mind might be the first thing we have to do.
Thus if we want to purify our mind, we have to learn to look at things or treat things with equality.
  More results at FactBites »

 
 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments

Want to know more?
Search encyclopedia, statistics and forums:

 


Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms, 1022, m