Static functions are often used within libraries, so that the name used internally in a library does not conflict with a name that the user might use. When libraries are stripped, the names of static functions are deleted from the symbol table. In such cases, Performance Analyzer generates an artificial name for each text region in the library containing stripped static functions. The name is of the form <static>@0x12345, where the string following the @ sign is the offset of the text region within the library. Performance Analyzer cannot distinguish between contiguous stripped static functions and a single such function, so two or more such functions can appear with their metrics coalesced. The following example shows static functions in the functions list of a sample jsynprog demo.
0. 0. <static>@0x18780 0. 0. <static>@0x20cc 0. 0. <static>@0xc9f0 0. 0. <static>@0xd1d8 0. 0. <static>@0xe204
In the PCs view, these functions are represented with an offset, as follows:
0. 0. <static>@0x18780 + 0x00000818 0. 0. <static>@0x20cc + 0x0000032C 0. 0. <static>@0xc9f0 + 0x00000060 0. 0. <static>@0xd1d8 + 0x00000040 0. 0. <static>@0xe204 + 0x00000170
An alternative representation in the PCs view of functions called within a stripped library is:
<library.so> -- no functions found + 0x0000F870