Excluding Oracle libraries from instrumentation on HPUX

Technote (FAQ)


Question

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?

Answer

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.

-selective

and

-exclude-libs.

Example:

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.

If its

libsome_pure_pp3_pc0_0_101052021_B1123_64_5273512.sl
or
libsome_pure_pp7_pc0_0_101052021_B1123_64_5273512.sl

That means its not excluded and if its.


libsome_pure_pp0_pc0_0_101052021_B1123_64_5273512.sl


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.

 -selective -exclude-libs=libsome.sl

You cannot use wildcards * like:

 -selective -exclude-libs=libsom*

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.

exclude /path/to/lib/

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.

exclude /path/to/libsome.sl

This will exclude only the library libsome.sl

Important note

You can either use -selective -exclude-libs options or use the .purify file. You can not use both the methods for the same run.

Disclaimer

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.

Rate this page:

(0 users)Average rating

Add comments

Document information


More support for:

Rational PurifyPlus
Instrumentation

Software version:

7.0

Operating system(s):

HP-UX

Reference #:

1319640

Modified date:

2009-06-16

Translate my page

Machine Translation

Content navigation