Oracle® Solaris Studio 12.4:性能分析器

退出打印视图

更新时间: 2015 年 1 月
 
 

装入对象和函数

每个装入对象,不管是可执行文件还是共享对象,都包含一个文本段(含有编译器生成的指令)、一个存储数据的数据段以及各种符号表。 所有装入对象都必须包含 ELF 符号表,该符号表提供该对象中所有全局已知函数的名称和地址。使用 -g 选项编译的装入对象包含附加的符号信息,该信息可以扩充 ELF 符号表,并提供有关非全局函数的信息、有关函数来自的对象模块的附加信息以及使地址与源代码行相关联的行号信息。

术语函数 用于描述一组表示源代码中所述的高级别操作的指令。 该术语涵盖 Fortran 中所用的子例程,C++ 和 Java 编程语言中所用的方法等等。 函数在源代码中进行了清晰的描述,通常其名称出现在表示一组地址的符号表中;如果程序计数器位于该组中,则程序正在该函数内执行。

原则上,装入对象文本段中的任何地址都可以映射到函数。 调用堆栈上的叶 PC 和所有其他 PC 都使用完全相同的映射。大多数函数直接对应于程序的源模型。一些函数却不是这样,将在以下各节中介绍这些函数。