New in This Release
New In Purify 4.5
New In Purify 4.4
New in Purify 4.3
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.
Please see the Restrictions and Known Issues section below for important notes about using Purify with Apex.
New In Purify 4.2
New In Purify 4.5
Purify has been tested with the following compilers:
Purify supports these threads packages:
32-bit API users may continue to link against <product_home>/<product>_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 has not moved and is shared for both development modes.
`purify -printhomedir`/lib32/solaris2_threads.so
`purify -printhomedir`/lib64/solaris2_threads.so
Reference to these libraries is rarely necessary.
Purify engine: Warning: Unknown dynamic structure type 0x6ffffdf8. Ignoring it.
The message is harmless for these types of DT_* entries (the "type", above):
DT_CHECKSUM 0x6ffffdf8 (elf checksum)
DT_CONFIG 0x6ffffefa (config info)
DT_DEPAUDIT 0x6ffffefb (dependency audit)
DT_AUDIT 0x6ffffefc (object audit)
If you see an "Unknown dynamic structure type" warning with a type value other than one of the above, please contact Rational Support (support@rational.com). Otherwise, the warning can be safely ignored.
http://solutions.rational.com/solutions/
Or contact Rational Technical Support and reference Tech Note #11091.
Purify slave: Warning: Non-ABI conforming section found in object file
/usr/lib/ld.so.1
This warning can be safely ignored.
! 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.
Note that your application may not use dlopen directly, but a library it is using may call dlopen. C++ exception handling may also call dlopen.