Version 7.0.1
This file last updated: 10/05/2009
Material ID: GI11-9431-00
This documentation (the "Work") is protected under the copyright laws of the United States and/or other jurisdictions, as well as various international treaties. Any reproduction or distribution of the Work is expressly prohibited without the prior written consent of IBM Corporation.
Before using this information, be sure to read the general information in Appendix. Notices
Product changes described in this document apply to:
Note: This is a maintenance release of PurifyPlus, v7.0.
These Release Notes include:
These release notes provide information critical to installing and using PurifyPlus, including the list of supported platforms and known issues with this release.
Components of PurifyPlus include:
References to PurifyPlus in these release notes applies to Purify, Quantify and PureCoverage.
PurifyPlus product documentation is available from the following locations:
The following sections outline the supported platforms and installation requirements for this version of PurifyPlus.
Item | Hardware Requirements and Recommendations | ||
---|---|---|---|
Operating Systems |
|
||
Hardware |
|
||
Disk Space to Install |
|
||
Additional Disk Space (needed to accommodate instrumentation cache) |
|
||
Item | Software Requirements and Recommendations | ||
Integrations with 3rd Party Applications | Compilers
|
||
Debuggers
|
|||
IDEs | Integrated Development Environments
|
||
Run-time Environments |
|
||
IBM 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 PurifyPlus on these international operating systems:
|
This section identifies special considerations for using PurifyPlus with other products, including Rational products and third-party software products.
You can install and run PurifyPlus on a Windows Terminal Server console system as you would on any other supported Windows Server system.
To use IBM Rational products on a Terminal Server client, you must configure your console system to use floating licenses.
Topic | Applies To | Restriction |
---|---|---|
Installation | PurifyPlus | If PurifyPlus v7.0 (or earlier) is currently installed, you must uninstall it before you can install v7.0.1. This is because v7.0 used a different install technology that is incompatible with IBM Installation Manager. Use Add or Remove Programs to uninstall v7.0, then install v7.0.1. |
Installation | PurifyPlus | The IBM Rational Common Licensing client is an optional feature that is selected by default, and once installed will create an entry in the Add/Remove programs list. You should install this feature and you should not uninstall it by using Add/Remove programs. Use the Modify functionality of Installation Manager to both add and remove this feature. |
Installation | PurifyPlus | If you are installing on Windows 2000 SP4, you must have gdiplus.dll installed before Installation Manager will run. Gdiplus is not installed by default on Windows 2000, but will be installed as a part of various downloads such as Visual Studio, Platform SDKs, and others. If you don't have it installed, you should search for gdiplus.dll on www.microsoft.com/downloads to find an appropriate download. |
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:
|
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. |
Running as a non-administrative user | PurifyPlus |
The default location of the PurifyPlus cache directory is under the install folder which is typically
located in the c:\Program Files\Rational\PurifyPlus directory. A user
without administrative privileges
does not have write access to the Program Files folder and may encounter error
messages from PurifyPlus
about not being able to create (or write to) a cache directory. In order to resolve this
issue, non administrative users are advised to define an environment variable to point PurifyPlus to
a writable folder for the cache directory:
set RATL_PQC_PROFILE_DIR=<writable folder> - e.g. user's profile directory Further information can be found in the Files and File Locations section of the PurifyPlus online help. |
Analyzing unmanaged C/C++ modules built in Microsoft Visual Studio 2005 or Visual Studio 2008 when neither is installed | PurifyPlus | You can run modules buit in Visual Studio 2005 or Visual Studio 2008 on machines that
do not have either installed; however, in order to
provide details about symbolic data in the code being analyzed,
all PurifyPlus components (Purify, PureCoverage, and
Quantify) require that the Microsoft Debug Interface
Access Software Development Kit (DIA SDK) be installed.
The DIA SDK can be installed by using an install
package that comes with the Visual Studio 2005 installation.
The package is located in your Visual Studio 2005 install directory, typically
in Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages\vcredist_x86.exe.
If you do not install the DIA SDK, the PurifyPlus components will continue to operate, but will not be able to provide you with as much detailed information about unmanaged C/C++ modules as you normally see. |
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. |
Variable clock speed | Quantify | Quantify may provide incorrect timing results on systems equipped with variable clock rate mechanisms. Some processors, including many mobile processors, are designed so that their clock rates change on the fly. If the system is busy, the clock rate is higher; if it's not so busy the clock rate drops. Quantify measures the clock rate at a time when the processor is busy and then counts clock ticks to measure the times for functions that block or wait, such as Sleep(). When the clock rate slows down, there aren't as many clock ticks, and so the numbers that Quantify reports for functions like Sleep() may appear too low. To correct the timing results on these systems, shut down the operating system, and disengage the variable clock rate feature via the system's CMOS settings. This feature is known by different names, including SpeedStep (on Intel processors) and PowerNow! (on AMD processors). By disabling this feature while you are using Quantify, you can ensure that timing results are accurate even while the system is not constantly busy. |
The following table lists the known issues in PurifyPlus v7.0.1.
Topic | Product | Change Request | 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 problem is unique to Visual Studio .NET. Debugging works as expected in Visual Studio .NET 2003. |
Debugging | PurifyPlus | RATLC00369792 | Within Visual Studio .NET and Visual Studio .NET 2003, 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 components. 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. |
Selective instrumentation and ASP.NET | PurifyPlus | RATLC0070331 |
Using PurifyPlus to selectively instrument ASP.NET applications does not work. The options necessary to enable
this feature are not properly passed to the running application. This problem can be circumvented by setting
a system environment variable. For Purify, this can be accomplished with the following:
PURIFYOPTIONS=sys_ini_filename="<User Profile>\Application Data\Rational\Purify\purifyw_pure.ini" Where <User Profile> is the system-returned location for the Windows user profile directory. |
Profiling .NET application running as a Service | PurifyPlus | RATLC00031871 |
In order to correctly profile a .NET application running as a Windows Service, perform the following steps:
where <Product> is one of Purify, Quantify or PureCoverage. where <Basename of EXE> is the basename of your service executable (e.g. foo is the basename of foo.exe.) |
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). |
This table describes all issues resolved since v7.0.0.0-011 was released. This was the latest interim fix for v7.0.
This means that it includes issues that have already been delivered in post-v7.0.0.0-011 limited availability interim fixes. In these cases, the fix in which it was included is identified.
Issues that were first resolved in v7.0.1 are highlighted in grey.
Product | Defect Number | APAR | Description | Delivered in build |
---|---|---|---|---|
Purify, Quantify, PureCoverage | RATLC00402303 | PK86825 | CQ PurifyPlus Integration: CQ 7.1 is not integrated with PurifyPlus 7.0 | Limited Availability Interim Fix 7.0.0.0-011.B build 10240 |
PureCoverage | RATLC00415133 | - | CoverageW crashes when running Java program with no classes filtered | Limited Availability Interim Fix 7.0.0.0-011.B build 10240 |
Purify | RATLC00415252 | PK94479 | Purify'd app and Purify itself aborts after the memory leak button is clicked | Limited Availability Interim Fix 7.0.0.0-011.B build 10240 |
Purify | RATLC00768090 | IC48235 | Formatted string displays abnormally in status bar | Limited Availability Interim Fix 7.0.0.0-011.B build 10240 |
PureCoverage | RATLC01479817 | PK82870 | "PureCoverage has encountered a problem and needs to close." message displayed when PureCoverage exits | Limited Availability Interim Fix 7.0.0.0-011.A build 10193 |
Purify | RATLC01485928 | PK89722 | New Leaks button reports false memory leaks. | Limited Availability Interim Fix 7.0.0.0-011.A build 10193 |
Purify | RATLC01487543 | PK92049 | Using Quick Filter for an MLK causes a crash when New Leaks button is used after filtering. | Limited Availability Interim Fix 7.0.0.0-011.A build 10193 |
There are no known documentation issues at this time.
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 IBM Publications Center.
If you have questions about installing, using, or maintaining this product, contact IBM Customer Support as follows:
The IBM software support Internet site provides you with self-help resources and electronic problem submission. The IBM Software Support Home page for Rational products can be found at http://www.ibm.com/software/rational/support/.
Voice Support is available to all current contract holders by dialing a telephone number in your country (where available). For specific country phone numbers, go to http://www.ibm.com/planetwide/.
The IBM Support Assistant (ISA) is a locally installed serviceability workbench that makes it easier to resolve software product problems. ISA is a free, stand-alone application that you download from IBM.
ISA includes these features:
For more information about ISA, including instructions for downloading and installing ISA and product plug-ins, go to the ISA Software Support page.
IBM Support Assistant: http://www.ibm.com/software/support/isa/
This information was developed for products and services offered in the U.S.A. IBM may not offer the products, services, or features discussed in this document in other countries. Consult your local IBM representative for information on the products and services currently available in your area. Any reference to an IBM product, program, or service is not intended to state or imply that only that IBM product, program, or service may be used. Any functionally equivalent product, program, or service that does not infringe any IBM intellectual property right may be used instead. However, it is the user's responsibility to evaluate and verify the operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter described in this document. The furnishing of this document does not grant you any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing IBM Corporation, North Castle Drive Armonk, NY 10504-1785 U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM Intellectual Property Department in your country or send inquiries, in writing, to:
IBM World Trade Asia Corporation Licensing 2-31 Roppongi 3-chome, Minato-ku Tokyo 106, Japan
The following paragraph does not apply to the United Kingdom or any other country where such provisions are inconsistent with local law: INTERNATIONAL BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Some states do not allow disclaimer of express or implied warranties in certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors. Changes are periodically made to the information herein; these changes will be incorporated in new editions of the publication. IBM may make improvements and/or changes in the product(s) and/or the program(s) described in this publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for convenience only and do not in any manner serve as an endorsement of those Web sites. The materials at those Web sites are not part of the materials for this IBM product and use of those Web sites is at your own risk.
IBM may use or distribute any of the information you supply in any way it believes appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose of enabling: (i) the exchange of information between independently created programs and other programs (including this one) and (ii) the mutual use of the information which has been exchanged, should contact:
IBM Corporation Department BCFB 20 Maguire Road Lexington, MA 02421 U.S.A.
Such information may be available, subject to appropriate terms and conditions, including in some cases, payment of a fee.
The licensed program described in this document and all licensed material available for it are provided by IBM under terms of the IBM Customer Agreement, IBM International Program License Agreement or any equivalent agreement between us.
Any performance data contained herein was determined in a controlled environment. Therefore, the results obtained in other operating environments may vary significantly. Some measurements may have been made on development-level systems and there is no guarantee that these measurements will be the same on generally available systems. Furthermore, some measurement may have been estimated through extrapolation. Actual results may vary. Users of this document should verify the applicable data for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of those products, their published announcements or other publicly available sources. IBM has not tested those products and cannot confirm the accuracy of performance, compatibility or any other claims related to non-IBM products. Questions on the capabilities of non-IBM products should be addressed to the suppliers of those products.
COPYRIGHT LICENSE:
This information contains sample application programs in source language, which illustrates programming techniques on various operating platforms. You may copy, modify, and distribute these sample programs in any form without payment to IBM, for the purposes of developing, using, marketing or distributing application programs conforming to the application programming interface for the operating platform for which the sample programs are written. These examples have not been thoroughly tested under all conditions. IBM, therefore, cannot guarantee or imply reliability, serviceability, or function of these programs. You may copy, modify, and distribute these sample programs in any form without payment to IBM for the purposes of developing, using, marketing, or distributing application programs conforming to IBM's application programming interfaces.
Each copy or any portion of these sample programs or any derivative work, must include a copyright notice as follows:
(c) (your company name) (year). Portions of this code are derived from IBM Corp. Sample Programs. (c) Copyright IBM Corp. _enter the year or years_. All rights reserved.
Additional legal notices are described in the legal_information.html file that is included in your Rational software installation.
Trademarks
AIX, ClearCase, ClearCase Attache, ClearCase MultiSite, ClearDDTS, ClearGuide, ClearQuest, DB2, DB2 Universal Database, DDTS, Domino, IBM, Lotus Notes, MVS, Notes, OS/390, Passport Advantage, ProjectConsole, PureCoverage, Purify, PurifyPlus, Quantify, Rational, Rational Rose, Rational Suite, Rational Unified Process, RequisitePro, RUP, S/390, SoDA, SP1, SP2, Team Unifying Platform, WebSphere, XDE, and z/OS are trademarks of International Business Machines Corporation in the United States, other countries, or both.
Java and all Java-based trademarks and logos are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.
Microsoft, Windows, Windows NT, and the Windows logo are trademarks of Microsoft Corporation in the United States, other countries, or both.
UNIX is a registered trademark of The Open Group in the United States and other countries.
Linux is a trademark of Linus Torvalds in the United States, other countries, or both.
Other company, product or service names may be trademarks or service marks of others.
The following copyright applies to portions of the ClearQuest integration and HTML based help system.
Copyright 1996 Netscape Communications Corporation, all rights reserved. Created: Jamie Zawinski (jwz@netscape.com), 24-Dec-94. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that the above copyright notice appear in all copies and that both that copyright notice and this permission notice appear in supporting documentation. No representations are made about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.