HP Caliper for HP-UX Release Notes Release 5.5 (5900-2350, September 2012)

in the other. To enable marking of branch targets, set disasm_mark_branch_targets =
True in the .caliperinit file or a configuration file.
Running HP Caliper on set-user-ID and set-group-ID programs
For security reasons, the HP-UX kernel does not allow users to run HP Caliper or any other
program to monitor a program that has its setuid or setgid bit set. If you run a set-user-ID
program under HP Caliper, the setuid/setgid will not be honored. The program runs
under HP Caliper as if the setuid bit was never set.
If any executables in your application have the setuid or setgid bit set, you need to run
HP Caliper as the root user. The program HP Caliper is measuring can be run as a normal
user.
For example, prog1 is a set-user-ID program and it must run as user usr1.
To measure prog1, you must run HP Caliper as the root user, using the following command
line:
$/opt/caliper/bin/caliper fprof -o report -p prog1 su -usr1 -c
'prog1'
In the example command line, HP Caliper runs as root and the user program prog1 runs
as usr1. The option -p prog1 directs HP Caliper to measure only the program prog1 and
not the su command or any other command that the login process might execute.
If you are attaching to an already running set-user-ID program, you must run HP Caliper as
the root user.
When you have used the -e elapsed_time (or --duration option), the target process
may fail with a core dump if the detach occurs while the target is unloading shared libraries.
The goal of HP Caliper is to measure any native Itanium application on HP-UX. This release
increases the set of programs that can be measured, but some programs still cannot be
measured or measurements may be incorrect. These include:
The system shared libraries dld.so and uld.so cannot be measured by the precise
measurement configurations and are excluded automatically. HP Caliper also excludes
libsin.so by default.
PA-RISC programs running on Itanium Processor Family systems in emulation mode cannot
be measured.
Programs generated by other compilers (that is, GNU compilers) cannot be correctly
measured by the precise measurements, specifically: cgprof, fcount, fcover. When
using the other measurement types, source correlation and disassembly listings may be
wrong.
Handwritten assembly code that violates standard run-time conventions or performs
unsupported address arithmetic might not be measured correctly using measurements that
involve dynamic instrumentation.
Archive-bound C++ programs that raise exceptions cannot be measured using the precise
measurement configurations.
The cgprof report might show different elapsed times for real time, user time, and time
allocated to the *ROOT* entry descendants. The time shown for *ROOT* reflects the most
accurate time for the native run of the process. The real time and user time values are longer
because they include the overhead required by HP Caliper to measure performance.
In programs compiled from Fortran source, HP Caliper does not measure functions that contain
an assigned goto construct in reports for precise measurement configurations. The HP Caliper
reports will show that it failed to instrument such functions.
It is not possible to debug an application while it is being measured by HP Caliper.
6 Known Problems and Workarounds