Oracle® Solaris Studio 12.4:性能分析器

退出打印视图

更新时间: 2015 年 1 月
 
 

<Unknown> 函数

在某些情况下,PC 不会映射到已知函数。 在这样的情况下,PC 会映射到名为 <Unknown> 的特殊函数。

    以下是 PC 映射到 <Unknown> 的情形:

  • 动态生成用 C 或 C++ 编写的函数,且未使用收集器 API 函数为收集器提供有关函数的信息时。有关收集器 API 函数的更多信息,请参见动态函数和模块

  • 动态编译 Java 方法但禁用 Java 程序分析时。

  • PC 对应于可执行文件或共享对象的数据段中的地址时。一种情况是 libc.so 的 SPARC V7 版本,在其数据段中有多个函数(例如,.mul.div)。代码位于数据段中,以便库检测到该代码正在 SPARC V8 或 SPARC V9 平台上执行时可以动态重新编写该代码以使用计算机指令。

  • PC 对应于在实验中未记录的可执行文件的地址空间中的共享对象时。

  • PC 不在任何已知的装入对象中时。最有可能的原因是展开失败,其中记录为 PC 的值根本不是 PC,而是某个其他字。如果 PC 是返回寄存器,并且看上去不在任何已知的装入对象中,则该 PC 会被忽略,而不是归属到 <Unknown>> 函数。

  • PC 映射到收集器没有其符号信息的 JVM 软件的内部部分时。

<Unknown> 函数的调用方和被调用方表示调用堆栈中的上一个和下一个 PC,并以常规方式处理。