Release notes for Purify 5.3 Solaris 2
Contents
========
o Changes from previous releases
o Supported systems
o Restrictions and known issues
New in This Release
===================
- Bug fixes and compatibility with OS
patches.
- Support for Solaris 8, 32-bit and 64-bit
development.
- Support for Forte 6 (compiler version 5.1)
compiler. The product has not been tested
with Forte 6 Update 1.
New in Purify 5.2
=================
- Bug fixes and compatibility with OS
patches.
- This release uses a new FlexLm based
licensing. Read the new installation
guide before installing the product.
Use rs_install instead of pure_install
for the installation.
New in Purify 5.1
=================
- Support for 64-bit Solaris 7 applications.
Please see the Restrictions and Known
Issues section for details.
- There is a known problem with Java 1.2
applications. See the Restrictions and
Known Issues section for details.
- This is the last release to support
Solaris 2.4.
- Support for Cygnus GNUPro 98r2 compilers.
New in Purify 4.5
=================
- Bug fixes and compatibility with OS patches.
- Support for Solaris 7 and Sun Visual
Workshop 5.0.
- This is the last release to support
SunOS 4. Apex Ada is no longer supported.
New in Purify 4.4
=================
- Bug fixes and compatibility with OS patches.
- Support for gcc 2.8.1
- Supports FLEXlm based licensing when
installed as part of RSDSU.
- Support for Rational's ClearQuest defect
tracking tool. Please see the Restrictions
and Known Issues section below for details
on how to use Purify with ClearQuest or
ClearDDTS.
New in Purify 4.3
=================
- Support for Apex 3.0.0 Ada and C++ on
Solaris and HPUX.
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.
New In Purify 4.2
=================
- bug fixes
==================================================
Supported systems
=================
Operating system and Hardware
-----------------------------
Purify has been tested with Solaris
versions 2.5, 2.5.1, 2.6, 2.7 and 2.8
on SPARC platforms.
Purify has also been tested on normal and
V9 SPARC programs on the UltraSPARC, and
supports 64-bit applications.
Compilers
---------
Purify has been tested with the
following compilers:
- Forte 6 (compiler version 5.1)
- Sun Workshop C and C++ 4.2 and 5.0
- SPARCWorks C and C++ versions 3.x
- SPARCWorks f77 versions:
3.0
- GNU gcc and g++ versions, through version 2.8.1.
- Cygnus GNUpro v.98r2
Threads
-------
Purify supports these threads packages:
- The native Solaris libthread library.
- The Solaris Pthreads library, libpthread.
- Transarc DCE threads.
==================================================
Restrictions and Known Issues
=============================
Solaris 64-bit Development
----------------------------
- Purify supports both 32-bit and 64-bit
application development, and will select
the correct mode of operation automatically
based on inputs, similar to the linker.
The product banner will report the mode
of operation during instrumentation and
at runtime. However, the "-version"
option will always report 32-bit mode;
the product version is the same for both
modes.
- Starting in version 5.1, the product home
directory has been reorganized to support both
32 and 64-bit development. This organization
should be transparent for all 32-bit users and
most 64-bit users. However, the location of
the Purify stubs library is different for
64-bit applications:
32-bit API users may continue to link
against /_stubs.a:
purifyhome/purify_stubs.a
quantifyhome/quantify_stubs.a
These libraries are now links to the
corresponding libraries in the lib32
directory:
purifyhome/lib32/purify_stubs.a
quantifyhome/lib32/quantify_stubs.a
64-bit API users must link against the
equivalent library in the lib64 directory:
purifyhome/lib64/purify_stubs.a
quantifyhome/lib64/quantify_stubs.a
The API header file, purify.h, has not moved
and is shared for both development modes.
- If you use 'purify -printhomedir' to prefix
internal product libraries such as
libinternal, you must qualify the library path
with the appropriate lib sub-directory:
`purify -printhomedir`/lib32/solaris2_threads.so
`purify -printhomedir`/lib64/solaris2_threads.so
Reference to these libraries is rarely
necessary.
- The "full" code size model is not supported -
object files and libraries must be addressable
within 32-bits.
- Static data checking is disabled for 64-bit
applications.
General
-------
- Purify may not work properly with applications
that use Java 1.2 libraries. For details, please
see Technical Note #11091 at:
http://solutions.rational.com/solutions/
Or contact Rational Technical Support and
reference Tech Note #11091.
- Archive libraries containing both 32-bit
and 64-bit libraries are not supported.
All components of a link must be of the
same ELF type, and the first archive
member is used to determine the link
type.
- gcc/g++ 2.8.1 is supported, but there are
known problems with C++ shared libraries
containing gcc/g++ produced objects files
containing exception handling code.
- This release of Purify does not
support Solaris 2.3.
- Because of operating system differences,
programs instrumented on one version of
Solaris may crash or generate incorrect
results if run on a different version of the
operating system.
- Purify does not support use of the
LD_PRELOAD environment variable.
- The SPARCWorks incremental linker, ild, is
automatically disabled by Purify
due to an incompatibility with file naming
conventions.
User Interface
--------------
- If a large number of items are selected,
"Expand all" followed by "Collapse all" can
crash some unpatched versions of the
OpenWindows 3.0 server.
- If you expand or collapse messages while the
"Continue" or "Reset etc. Continue" buttons
are displayed, the buttons may subsequently be
incorrectly positioned.
- The "Edit" and "Coverage" toolbar items may be
slow to respond.
- The Purify GUI menus and buttons become
inaccessible if either the NumLock or
ScrollLock key is activated. The workaround
is to switch them off, or add the following
line(s) to your $HOME/.Xdefaults file.
! 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 "Invoke ClearDDTS" Button has been
modified to bring up the ClearQuest web
interface. This feature only works with
Netscape Navigator.
The site-wide URL for ClearQuest can be
given during installation or set by
manually editing 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 , 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.
Compilers
---------
- The Sun Workshop 5.0 C++ compiler generates
different function names than previous
versions. Specifically, the new (demangled)
function names include the return type, and
the new demangler returns "unsigned" where
the previous version returned "unsigned int".
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 GNU gcc extensions are not tested against
Purify. Most gcc extensions will
probably work fine. Known limitations at
present include problems with nested functions
(e.g.: making a pointer to a nested function
and attempting to call through it will not
work).
- GNAT ADA
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.
Purify'ing X Applications
-------------------------
- When running a Purify'd X application, there
is a potential for deadlock if your
application causes Purify to generate a
message while the application is holding the X
lock, since Purify will be unable to generate
the message, and the application is blocked
until the message is delivered.
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.
Threads
-------
- Call chains describing when memory was
malloced or freed do not always include the
thread id.
- The Purify API functions purify_map_pool() and
purify_map_pool_id() are not MT safe.
- Customers using unsupported threads packages
should contact Rational Software technical
support (support@rational.com) to ensure
compatibility.