Rational® PurifyPlus Family Release Notes

Version 2003.06.00

Legal Notices Information


Scope

These release notes provide information critical to installing and using Rational PurifyPlus Family products, including the list of supported platforms and known issues with this release.

Members of the PurifyPlus Family include:

References to PurifyPlus in these release notes applies to Purify, Quantify and PureCoverage.

Contents

What's New in This Release
Product Documentation
Hardware/Software Information
Installation, Upgrading, and Licensing
Installation Information
Installation Issues
Upgrades
Licensing
Compatibility Issues
With Rational Products
With Third-Party Products
Restrictions and Guidelines on Using the Rational PurifyPlus Family of products
Known Issues in This Release
Documentation Updates
Additional Information
Contacting Rational Technical Support

What's New in This Release

Product Documentation

Additional product documentation is available in the following locations:

Hardware/Software Information

The following sections outline the supported platforms and installations requirements for this version of the Rational PurifyPlus Family of products.

Table 1 Desktop Requirements and Recommendations
Item
Hardware Requirements and Recommendations
Operating Systems
  • Microsoft Windows XP Professional, No Service Pack, Service Pack 1
  • Microsoft Windows 2000 Professional, Service Pack 2, 3
  • Microsoft Windows 2000 Server, Service Pack 2, 3
  • Microsoft Windows 2000 Advanced Server, Service Pack 2, 3
  • Microsoft.NET Server, RC1
  • Microsoft.NET Enterprise Server, RC1
  • Microsoft Windows NT 4.0 Workstation, Service Pack 6a + SRP (Security Rollup Package, Q299444)
Hardware
  • Pentium III, Pentium 4, Xeon
  • 500 MHz or higher
  • 256 MB RAM required, 512 MB RAM recommended;
    more memory generally improves responsiveness
  • Swap space: 2 x physical memory
  • 600 X 800 X 256-color video resolution, or higher; high color or true color recommended
  • Microsoft Mouse or compatible pointing device
Disk Space to Install
  • Rational PurifyPlus - 140 MB
  • Rational Purify - 100 MB
  • Rational Quantify - 100 MB
  • Rational PureCoverage - 100 MB
Additional Disk Space

(needed to accommodate instrumentation cache)
  • Depends on the number and size of .exe and .dll files being instrumented. As a rough guide, expect instrumented modules to be 50% bigger than the original module.
Item
Software Requirements and Recommendations
Integrations with 3rd Party Applications
Compilers
  • Microsoft Visual C++ 6.0 with Visual Studio 6.0 Service Packs 3, 4, 5
  • Microsoft Visual C++ 6.0 Processor Pack
  • Microsoft Visual Basic 6.0 with Visual Studio 6.0 Service Packs 3, 4, 5
  • Microsoft Visual C++ .NET
  • Microsoft Visual C# .NET
  • Microsoft Visual Basic .NET
Debuggers
  • Microsoft Visual Studio 6.0 Service Packs 3, 4, 5 (Debug format: COFF, CV4) (Debug Files: .exe, .pdb, .dbg, .map)
  • Microsoft Visual Studio .NET (Debug Format: COFF, CV4, CLR) (Debug files: .exe, .pdb)
IDEs and Application Servers
Integrated Development Environments
  • Microsoft Visual Studio 6.0 Service Packs 3, 4, 5
  • Microsoft Visual Studio .NET
  • IBM WebSphere Application Developer 5.0
  • IBM WebSphere Studio WorkBench 2.0
Deployment Application Servers
  • Apache Jakarta Tomcat 4.x
  • BEA WebLogic 6.x
  • IBM WebSphere 4.x
  • Microsoft IIS 5.0, 6.0
Run-time Environments
  • Sun JVM 1.2.2, 1.3.0 Classic, 1.3.0 HotSpot (Quantify and Coverage only) 1.3.1 Classic, 1.3.1 HotSpot, 1.4.0 Client, 1.4.0 Server
  • IBM JVM 1.3.0
  • Microsoft JVM 3310, 3805
  • Microsoft .NET Framework, No Service Pack, Service Pack 1
Rational Documentation
Adobe Acrobat Reader 4.x or higher required to read online PDF files. Download the free Adobe Acrobat Reader from www.adobe.com.
Language Support
You can install the Rational PurifyPlus Family products on these international operating systems:
  • Simplified or Traditional Chinese
  • Dutch, French
  • German
  • Hebrew
  • Italian
  • Japanese
  • Korean
  • Swedish
All displays, menus, controls, wizards, reports, and user documentation are in U.S. English.
  • If you have a Traditional Chinese, Dutch, Hebrew, or Korean operating system, enter data (such as path names) in U.S. English or the ASCII character set.
  • If you have a Simplified Chinese, French, German, Italian, Japanese, or Swedish operating system, enter data in U.S. English or the native language character set. Regional date, time, currency, and numbering conventions are also supported for both input and output.

Installation, Upgrading, and Licensing

Installation Information

Caution - Before You Install

The Rational Setup Wizard removes earlier versions of Rational products (including Rational licenses) from your desktop. You or your system administrator must see the Rational Suite Upgrade Guide in theRational Solutions for Windows Documentation CD-ROM before you try to upgrade your Rational products.

In order for PurifyPlus to integrate into IBM WebSphere Application Developer 5.0, both PurifyPlus and the IBM shell must be installed on the same drive.

Installation Issues

Setting Up a Silent Install

If you have earlier Rational products installed on your system, you will see a warning page during your installation. If you are setting up a silent installation, pay particular attention to this message and take steps to ensure that users upgrade all Rational products. Users who install silently will not see this warning message. The message will appear in the user's installation log file, but the user may not remember to look at the log file after completing the installation.

Accessing Microsoft Office Products After Unsuccessful Rational Product Installation

If the installation of Rational PurifyPlus or an individual Rational PurifyPlus Family product fails, you may not be able to start Microsoft Office products. Should this happen, you may receive the following error message: "The feature that you are trying to use is on a network resource that is unavailable."

Restart your computer to resolve this problem.

Upgrades

For information about upgrading Rational Suite Products, see the Rational Suite Upgrade Guide on the Rational Solutions for Windows Online Documentation CD-ROM. Or go to http://www.rational.com/support/. Click Upgrades and Patches and select a product to upgrade.

Licensing

If you are using floating licenses, make sure that the license server system is running before you start the Rational License Key Administrator on your desktop. Otherwise, if the License Key Administrator is directed to get a license, it will return an error.

Compatibility Issues

This section identifies special considerations for using the Rational PurifyPlus Family of products with other products, including Rational products and third-party software products.

With Rational Products

Rational produces synchronized releases of all its products. If you install multiple Rational products on a single system, or on multiple systems in the same network environment, they must all be at the same version number. This is necessary because of the tight integration between products.

Rational XDE

Current versions (v. 2003.06.00) of the Rational PurifyPlus Family of products are not compatible with XDE version 1.0 or XDE version 1.1. If either of those products are on your system, you should not install the PurifyPlus Visual Studio .NET integration.

With Third-Party Products

Installing Rational Software in a Windows Terminal Server Environment

You can install and run the Rational PurifyPlus Family of products on a Windows Terminal Server console system as you would on any other supported Windows NT Server or Windows 2000 Server system.

To use Rational products on a Terminal Server client, you must configure your console system to use floating licenses.

Sun JVM 1.3.0 HotSpot

Purify does not support Sun JVM 1.3.0 HotSpot. The profiling interface implementation within that JVM does not generate consistent memory allocation notifications, making the profiling information unreliable. Quantify and PureCoverage are unaffected by the issue and fully support this JVM.

Sun JVM 1.3.1

There are stability problems with this JVM that affect memory profiling with Purify. These problems have been resolved in JVM 1.3.1_01.

Restrictions and Guidelines on Using the Rational PurifyPlus Family of products

Table 2 Restrictions and Guidelines
Topic
Applies To
Restriction
AppInit_DLLs PurifyPlus PurifyPlus does not work correctly when dlls are injected into a process via the AppInit_DLLs registry key because it fails to instrument the injected libraries. In order for PurifyPlus to work correctly, the application which uses the key must be uninstalled and the system must be rebooted. The utility ComSpyNT is known to use this registry key.
Visual C++ PurifyPlus Applying changes to a running, instrumented program, using "Edit & Continue" in Visual C++ is not supported.
SetWindowsHook PurifyPlus There are compatibility problems between PurifyPlus and applications that use SetWindowsHook() and SetWindowsHookEx(). Often these compatibility problems can be solved by using minimal instrumentation for the hook DLL.

The SetWindowsHookEx() API is disabled in instrumented programs. This is to avoid hooking uninstrumented code from within an instrumented application. For workarounds to this, please contact Rational Software's Technical Support.

Stdin PurifyPlus You cannot use the stdin redirection request, as in test.exe < test.txt, when you instrument and run programs using the Run Program dialog. Use the command line interface instead.
argv[0] PurifyPlus In natively instrumented applications, argv[0] is set to the instrumented filename. You can specify a name for the instrumented file in Settings>Executable Settings>Files>Instrumented File Name, if your application depends on a specific value for argv[0].
Debug Data PurifyPlus PurifyPlus does not support the use of the NB05 debug data format in modules. You can use the cvpack utility program, included with Microsoft Visual Studio, to update the debug information for use with PurifyPlus. To do this, make a backup copy of the module, then run cvpack on the module. It will rewrite the module in place with the new debug information.
Instrumentation PurifyPlus The instrumentation of files fails to happen in the following situations:
  • A .pdb file is supplied after a .dll or .exe file has been instrumented. When the application is re-run, the .pdb file is not reinstrumented.
  • Two .dlls that have the same name and the same creation time are swapped, such as a debug version and a production version. The "new" .dll is not instrumented, because an identically-named file with the same timestamp already exists in the cache directory.
  • Instrumented .dll and .exe files that are located outside of the cache directory are not deleted when a new version of PurifyPlus is installed. When an application that uses one of these files is run, the existing instrumented version is used.
In each case, the problem can be resolved by deleting the instrumented files to force reinstrumentation.
Cache directory PurifyPlus PurifyPlus does not support Universal Naming Convention (UNC) names for the cache directory setting. Instead, a network drive should be mapped to specify a cache directory on a remote machine.
VirtualAlloc PurifyPlus PurifyPlus does not support VirtualAlloc regions that contain executable code. The code is considered to be part of the data section, and is not instrumented.
Relocations PurifyPlus PurifyPlus requires relocation data in order to provide source line information for an instrumented application. To ensure an application contains the necessary relocations, the Visual C++ linker option /FIXED:NO should be used when building an executable.
Hand-coded Assembly PurifyPlus PurifyPlus does not support modules that include hand-coded assembly. To ensure proper behavior, these modules should be instrumented in Exclude mode.
Japanese Language Pack PurifyPlus Due to a synchronization problem within the Japanese Language Pack on Windows XP, PurifyPlus must change the default keyboard setting for instrumented programs from Japanese to English. Before doing this, a dialog box will be displayed requesting consent to do so.
SetErrorMode Purify SetErrorMode() suppresses all system-level message boxes, including the Windows Application Error message box. If you enable Purify's Break On Error for a program that calls SetErrorMode(), Purify displays the access error in the Error View window, but the Application Error message box does not appear and the program continues to run.
Debugging Purify Purify assigns a default debugger based on the default AeDebug Debugger entry in the Registry. If you do not have Microsoft Visual Studio installed, it's possible that the registered program will not support full debugging.
Unlisted source files PureCoverage For Visual Basic 6.0 projects and p-code, PureCoverage does not list the source files in which no procedures are executed (i.e. those with 0% procedure coverage). These files are listed for VB6 natively-compiled executables.

Known Issues in this release

Table 3 Known Issues
Topic
Applies To
Defect Number
Description
Debugging PurifyPlus RATLC00031747 When debugging a managed application from within Visual Studio .NET, setting breakpoints and single-stepping will not work if PurifyPlus is engaged. This is a known problem in Visual Studio .NET that is targeted to be fixed in Visual Studio .NET 2003. Although the official version is not yet released, tests conducted against the Final Beta have been successful.
Debugging PurifyPlus RATLC00369792 Within Visual Studio .NET, the PurifyPlus engage button does not work for unmanaged applications. In order to run an unmanaged application with PurifyPlus engaged, the Run menu item should be selected for one of the PurifyPlus Family products. As an example, to run an unmanaged application with Purify engaged, select PurifyPlus>Purify>Run. In order to debug an unmanaged application with Purify engaged, the application must be run from the standalone Purify GUI with Run under the debugger checked in the Run dialog. It is currently not possible to debug an unmanaged application with PureCoverage or Quantify engaged.
JNI Quantify RATLC00369104 When profiling native code invoked through Java's JNI interface, the Java runtime may throw an exception and abort. This is a known problem that can be worked around by specifying the Quantify option /profiler-runtime-flags=4 when instrumenting the native code. This may cause the Descendant time for functions that return back through JNI to appear larger than normal. The function time, however, will still be correct.
Data Set operations Quantify RATLC00369110 Data set operations such as focus and delete subtree data can change F and F+D times or even eliminate certain functions that have annotated source. Currently all the data collected at line level is NOT changed during data set operations (it reflects the totals over the entire dataset).

Documentation Updates

There are no known documentation issues at this time.

Additional Information

Table 4 Product Notes
Topic
Applies To
Note
Debug data PurifyPlus PurifyPlus has a limited ability to display symbolic and line level information if it can not find the associated debug data for a given module. When you copy a DLL that you want to instrument into your working directory, also copy any related .pdb, .dbg, or .map files. This ensures that messages and profiling detail are as informative as possible. To verify that the debug data has been found and instrumented, check the module instrumentation dialog (Settings>Executable Settings>PowerCheck>Modules to Instrument>Configure).
Custom Allocators Purify Purify supports some custom memory allocators. Custom versions of new and malloc may initialize memory or increase the size of allocations. Custom allocation schemes that do their own sub-allocation are also supported. The function prototypes and calling conventions of overloaded new, malloc, calloc, realloc, delete, and free must match the standard allocators. In addition, it is still important to match new/delete and malloc/free calls.
First chance exceptions Purify When you run an application instrumented with Purify under a debugger, "First-chance exceptions" or access violations are displayed. These messages can safely be ignored.
Object Reference Data Purify In the Object List View of the Data Browser (for Java code), the Object + Reference (O+R) column does not list data by default. Since the O+R calculation is potentially time-consuming, it is an optional calculation. To force the system to make this calculation, display the Object details view: Right click in the Object reference graph pane and select the Line Scale Factors->Linear or the Line Scale Factors->Logarithmic menu item.
Stock Sample Purify Purify provides the source files to build a sample program, the Stock program. The Stock program contains intentional errors. If you try to run the program outside of Purify or a debugger, the program might crash.

Additional product information is available at the Rational Suite Web site: http://www.rational.com/products/pqc

Contacting Rational Technical Support

If you have questions about installing, using, or maintaining this product, contact Rational Technical Support as follows:

Your Location Telephone Facsimile E-mail
North America

(800) 433-5444
(toll free)

(408) 863-4000
Cupertino, CA

(781) 676-2460
Lexington, MA

support@rational.com
Europe, Middle East, Africa

+ 31 (0) 20 4546 200
Netherlands

+31 (0) 20 4545 202
Netherlands

support@europe.rational.com
Asia Pacific

+61 2 9419 0111
Australia

+61 2 9419 0123
Australia

support@apac.rational.com

When you contact Rational Technical Support, please be prepared to supply the following information: