In addition to support for code generated by the Apex 3.0.0 C++ and Ada compilers, this release provides Apex GUI integration in the form of the Purify Viewer Edit, Debug, Check-in, Check-out, and JIT debugging features.
This release supports EM_SPARC32PLUS object files which contain instructions from the SPARC V9 architecture.
This release supports Solaris 2.6 including the new system calls for large files.
This release supports the Sun Workshop C 4.2 and C++ 4.2 compilers.
Three new icons have been added to allow the user to check out and check in source files within a source code repository. Each button is associated with a script to execute the appropriate command for retrieving or storing a source file. The default source repository is ClearCase but the scripts can be tailored to other systems, including RCS and SCCS.
This release contains a new utility, purela_show, which generates simplified reports from license and usage data maintained in a standard or aggregate PureLA database.
This release is available with GUI support for the Japanese language. See the Internationalization section below.
Instrumented programs now automatically determine whether they are running on an UltraSPARC, then enable UltraSPARC-specific optimizations that result in a significant runtime performance improvement.
A number of problems reported with Purify 4.0 have been fixed. Please contact support if you have questions about specific reported problems.
Purify has been tested with the following compilers:
Purify supports these threads packages:
(/usr/vue/bin/vuepad), the edit button will be unable to position the editor window to the correct line. This is a vuepad limitation. The workaround is to use a more capable editor.
! Ignore the NumLock and ScrollLock keys on
! mouse buttons
Purify*ignoreModifierMask: Mod3|Mod2
This second workaround will take effect for a new Purify viewer after you restart your X-session or run a command like 'xrdb -merge $HOME/.Xdefaults'.
The site-wide URL for ClearQuest can be given during installation or set by manually editting the file
pure_clearquest_url
in your Purify home directory. A user can override the site-wide URL by setting the environment variable
PURE_CLEARQUEST_URL
This feature is partly implemented by a shell script, ("pure_invoke_clearquest" in your Purify home directory) to allow you to tailor its operation to your needs. If you wish, you may copy and customize this script. As long as the directory containing the script appears in your search path before your Purify home directory, it will be used instead of the original script
If you prefer to use Purify with ClearDDTS, you can do so by setting the X resource
Purify*ddtsCommandString
to 'xddts', if xddts is in your search path, or to the full path to your xddts executable. xddts is invoked by a shell script ("pure_invoke_ddts" in your Purify home directory). If you wish to customize it, please read the section on customizing "pure_invoke_clearquest" above.
If you already have a customized "pure_invoke_ddts" script in your search path, All you need to do is set your X resource as described above, and Purify will find your customized script automatically.
The following copyright applies to portions of this ClearQuest integration code: 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.
If you have suppressions that specify C++ functions, and you switch to Workshop 5, your suppressions will most likely stop working.
The only way to fix them is to modify the function names in your suppressions to the new style. In order to use your suppressions with both 5.0 and older compilers, you need to include both your old suppressions and the new ones.
The surest way to determine the correct name to use in your suppression is to add the suppression using the Purify viewer.
The GNAT ADA compiler emits stack management code which causes Purify to report SBR/SBW messages. These messages are harmless. Rather than globally suppressing SBR/SBW, these specific messages may be safely eliminated by setting the Purify runtime option -mark-partial-rsz.
To avoid this kind of problem, you should run your application on a different X server than the Purify UI or Purify stderr output, or you should use the -log-file= or -view-file= options to specify a file to capture messages for inspection after your application is finished.
A convenient way to debug on two displays is to pre-start the Purify Viewer on one display ("slave"), and then start the application on the other display ("master"):
% purify -display slave:0 -view a.out.X &
% a.out.X -display master:0
The two commands must be executed on the same computer, but it could be the workstation associated with either display, or altogether another computer remote from both displays. The application will connect to the already started Purify Viewer, and messages will not conflict with the X display interactions of the application under test.
General Limitations
Source Annotation Limitations
!!! Unable to write Lines to Offset Mapping: CONSTRAINT_ERROR
The compiler will fail to generate source information for the associated Ada file that is consumable by Purify Apex, Quantify Apex, and PureCoverage Apex. In this case, no source annotations or line level coverage and performance data will be available for functions in the affected file.
Debugging
For example, if you are using package Puretools.Purify in your application, then you can use the following debugger command:
>p Puretools.Purify.What_Colors (my_address,nbytes)
If you are not using the Ada wrappers in your code, then you would invoke:
>p purify_what_colors (my_address, nbytes)
The C function names and signatures are available in the C/C++ reference sections for each tool. See Help:Manuals:Rational Apex/Pure Integration Manuals.
Using rcc/RCC directly
If you use rcc or RCC outside of the Apex GUI or shell environment, you will need to add the appropriate FlexLM license file to your LM_LICENSE_FILE environment variable. You should add the license file where your Purify licenses were placed during installation.