Problems might occur, when the application under test is linked to Oracle 10 libraries, such as libclntsh.so.10.1. You might see a segmentation fault, a core at runtime. Eventually the IBM Rational Purify engine reports an instrumentation failure. It is best to exclude these Oracle libraries during instrumentation.
How do you exclude Oracle libraries from instrumentation on HPUX, on a IA or PA-RISC computer?
There are two possible ways to exclude the Oracle libraries. Some Oracle libraries are excluded from instrumentation by default only if you use -selective option.
1. At build time
Use the following options at build time of the application on the link line.
purify -verbose -cach-dir=./mycache -always-use-cache-dir -selective -exclude-libs="libsome.sl" aCC -g hello.c
In the verbose output you see that the Purify engine excludes the library libcsome.sl from instrumentation. You can verify if the exclude option worked or not by looking at the name of the instrumented library. If it has pp3 or pp7 in its instrumented name then it was not excluded properly. pp0 in the instrumented name confirms it was excluded.
Go to the cache folder "mycache" and check for the name of the library.
That means its not excluded and if its.
then it was successfully excluded.
In the verbose output you see something similar.
Purify engine: While processing file /some/location/libsome.sl
: Excluding ofile /some/location/libsome.sl because of exclude "libsome.sl".
If you use -exclude-libs you need to enter the full name of the library.
You cannot use wildcards * like:
This the unrecommended way to exclude the library on HPUX platform. Instead you use the full name or use the full path and name of the library.
2 .purify .purecov .quantify file
Create a .purify, or .purecov, or .quantify file in the user ~ (Home) and add the following line. The type of file depends on what you are using.
If you enter the path of the Oracle libraries that you want to exclude, you exclude all the libraries from that path.
Alternatively you can write the following line.
This will exclude only the library libsome.sl
You can either use -selective -exclude-libs options or use the .purify file. You can not use both the methods for the same run.
All source code and/or binaries attached to this document are referred to here as "the Program". IBM is not providing program services of any kind for the Program. IBM is providing the Program on an "AS IS" basis without warranty of any kind. IBM WILL NOT BE LIABLE FOR ANY ACTUAL, DIRECT, SPECIAL, INCIDENTAL, OR INDIRECT DAMAGES OR FOR ANY ECONOMIC CONSEQUENTIAL DAMAGES (INCLUDING LOST PROFITS OR SAVINGS), EVEN IF IBM, OR ITS RESELLER, HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.