Oracle® Solaris Studio 12.4: Performance Analyzer

Exit Print View

Updated: January 2015

<Unknown> Function

Under some circumstances, a PC does not map to a known function. In such cases, the PC is mapped to a special function named <Unknown> .

    The following circumstances show PCs mapping to <Unknown>:

  • When a function written in C or C++ is dynamically generated, and information about the function is not provided to the Collector using the Collector API functions. See Dynamic Functions and Modules for more information about the Collector API functions.

  • When a Java method is dynamically compiled but Java profiling is disabled.

  • When the PC corresponds to an address in the data section of the executable or a shared object. One case is the SPARC V7 version of, which has several functions in its data section (.mul and .div, for example). The code is in the data section so that it can be dynamically rewritten to use machine instructions when the library detects that it is executing on a SPARC V8 or SPARC V9 platform.

  • When the PC corresponds to a shared object in the address space of the executable that is not recorded in the experiment.

  • When the PC is not within any known load object. The most likely cause is an unwind failure, where the value recorded as a PC is not a PC at all but rather some other word. If the PC is the return register and it does not seem to be within any known load object, it is ignored rather than attributed to the <Unknown>> function.

  • When a PC maps to an internal part of the JVM software for which the Collector has no symbolic information.

Callers and callees of the <Unknown> function represent the previous and next PCs in the call stack, and are treated normally.