HP Caliper User's Guide

In the list of included and excluded load modules near the top of reports, HP
Caliper reports the run-time address range of each load module.
For function start addresses, HP Caliper reports link-time addresses, the offset
from the text base of the containing load module.
HP Caliper reports each disassembled instruction address as an offset from a
function start address.
HP Caliper reports addresses with no known function name and no known load
module as run-time addresses.
How Functions Are Named in Reports
HP Caliper attempts to print the most complete name possible for each function listed
in reports.
The general format for function names is:
load_module_name::function_name
For example:
libdl.so.l::libdl_init threads::tu_thread_destroy
If the load module name is implicit from the context, then HP Caliper prints only the
simple function name.
Consult a linker load map and disassembly listing, or both, to determine the function.
When HP Caliper finds an unnamed stub that bridges to a function, the report shows:
{ STUB }->module::function
C++ function names are fully demangled and include full type signatures.
Unnamed Functions
In certain situations, HP Caliper cannot determine the function name. Examples are:
Static function with no debug information
Unidentified stub
Stripped executable
In these cases, HP Caliper assigns the function a name using this format:
*unnamed@0xXX(YY-ZZ)*
where
XX is some number of hexadecimal digits that are shared by the start and end
addresses of the unnamed function
YY is the remaining hexadecimal digits for the start address
ZZ is the remaining hexadecimal digits for the end address
For example, the function name *unnamed@0x400000000004c(ae0-ed0)* represents
an unnamed function starting at address 0x400000000004cae0 and ending at address
0x400000000004ced0.
How Functions Are Named in Reports 145