Back to 9/96 Reviews SW: CheckIt Diagnostic Kit
Up to Table of Contents
Ahead to 9/96 Reviews SW: Financial Tune-Up

9/96 Reviews SW: Purify for Windows NT

Listing of September 1996 Reviews

Code Tool Filters Out Program Impurities

By Martin Heller

As all Windows programmers know, the devil's in the details. Did you free all the memory you allocated? Does the handle you passed to a system function refer to the correct type of object? Did you release all the resources you used?

There haven't been many third-party tools that could manage these issues. We've relied on NuMega's BoundsChecker (, which addresses a full range of Windows debugging problems, and MicroQuill's HeapAgent (, which specializes in dynamic memory allocation issues. Now Purify, which had a good reputation for its object code insertion (OCI) technology in the UNIX world, is available for Windows NT.

Purify works on 32-bit Windows NT executables built with Microsoft Visual C++. Build an application as you normally would, and then launch it from Purify. Purify reads the original executable image file, adds calls to its own diagnostic libraries before calls to functions it knows about, and saves an "instrumented" executable image in its own cache directory. Purify will also instrument all DLLs used by your program, a rather lengthy process, so I'd recommend caching the resulting images to save time.

Purify then launches the instrumented image and goes to work. Errors, warnings and informational messages are displayed synchronously as they occur. When the diagnostic functions detect a problem, they notify Purify's monitoring and display program; Purify can break execution of your program so that control passes to the debugger.

Purify's diagnose and display scheme works well for finding many kinds of problems. But what Purify doesn't give is a sense of sequence. Although it can be faster and more thorough than BoundsChecker-especially for checking memory errors-it doesn't report Windows messages and events, and isn't as good as BoundsChecker for understanding the flow of a program.

Although they are designed for the same purpose, Purify and BoundsChecker are almost complementary. Both help you ship cleaner, more robust programs.

--Info File--
Purify for Windows NT
$498; with 1-year subscription, $748
Pros: Effectively finds runtime errors and memory; good filtering
Cons: Reports harmless conditions; ignores event sequence
Platforms: Windows NT 3.51 or later; Microsoft Visual C++ 2.2 or later
Pure Software
408-720-1600, fax 408-720-9200
WinMag Box Score: 3.0

Back to 9/96 Reviews SW: CheckIt Diagnostic Kit
Up to Table of Contents
Ahead to 9/96 Reviews SW: Financial Tune-Up