Sun Studio 12:性能分析器

控制源代码和反汇编代码列表的命令

以下命令控制显示带注释的源代码和反汇编代码的方式。

pcs

写入程序计数器 (program counter, PC) 及其度量的列表(按当前排序度量排序)。该列表包括为使用 object_select 命令隐藏其函数的每个装入对象显示聚集度量的行。

psummary

按当前排序度量指定的顺序,为 PC 列表中的每个 PC 写入摘要度量面板。

lines

写入源代码行及其度量的列表(按当前排序度量排序)。该列表包括为没有行号信息或其源文件未知的每个函数显示聚集度量的行,以及为使用 object_select 命令隐藏其函数的每个装入对象显示聚集度量的行。

lsummary

按当前排序度量指定的顺序,为行列表中的每个行写入摘要度量面板。

source { filename | function_name } [ N]

为指定文件或包含指定函数的文件写出带注释的源代码。在任一种情况下,该文件都必须位于您所指定的路径中的目录下。如果使用 GNU Fortran 编译器编译了源代码,则函数名称出现在源代码中时,必须在其后添加两个下划线字符。

仅当文件或函数的名称不明确时,才使用可选参数 N(正整数);在这种情况下,使用第 N 个可能的选项。如果提供不带数字说明符的不明确名称,则 er_print 实用程序将列显可能的目标文件名称的列表;如果提供的名称是函数,则将函数名称附加到目标文件名称,还将列显表示该目标文件的 N 值的数字。

也可以将函数名称指定为 functionfile”,其中 file 用于指定函数的替代源上下文。紧邻第一个指令之后,将添加函数的索引行。索引行显示为尖括号内的文本,其格式如下:

<Function: f_name>

任何函数的缺省源上下文都被定义为该函数的第一条指令所归属的源文件。它通常是经过编译而生成包含该函数的目标模块的源文件。替代源上下文由包含归属于该函数的指令的其他文件组成。此类上下文包括来自头文件的指令和来自内联到指定函数中的函数的指令。如果存在任何替代源上下文,则在缺省源上下文的开头包括扩展索引行的列表以指示替代源上下文所在的位置,格式如下:

<Function: f, instructions from source file src.h>


注 –

如果在命令行上调用 er_print 实用程序时使用了 -source 参数,则必须在 file 引号前加上反斜杠转义符。换句话说,函数名称的格式为 function\"file\"。当 er_print 实用程序处于交互模式时,反斜杠不是必需的,也不应使用它。


通常,在使用缺省源上下文时,会显示该文件中所有函数的度量。如果显式引用该文件,则仅显示指定函数的度量。

disasm { filename | function_name } [ N]

为指定文件或包含指定函数的文件写出带注释的反汇编代码。该文件必须位于您所指定的路径中的目录下。

可选参数 Nsource 命令的可选参数的使用方法相同。

scc com_spec

指定在带注释的源代码列表中显示的编译器注释的类。类列表是类的冒号分隔列表,包含零个或多个以下消息类。

表 6–4 编译器注释消息类

类 

含义 

b[asic]

显示基本级别的消息。 

v[ersion]

显示版本消息,包括源文件名称和上次修改日期、编译器组件的版本、编译日期和选项。 

pa[rallel]

显示有关并行化的消息。 

q[uery]

显示有关影响代码优化的代码问题。 

l[oop]

显示有关循环优化和转换的消息。 

pi[pe]

显示有关循环的流水线作业的消息。 

i[nline]

显示有关函数内联的消息。 

m[emops]

显示有关内存操作(如装入、存储、预取)的消息。 

f[e]

显示前端消息。 

all

显示所有消息。 

none

不显示任何消息。 

allnone 不能与其他类一起使用。

如果未提供 scc 命令,则显示的缺省类为 basic。如果提供了 scc 命令,但 class-list 为空,则关闭编译器注释。scc 命令通常仅在 .er.rc 文件中使用。

sthresh value

指定带注释的源代码中突出显示度量的阈值百分比。对于文件中的任何源代码行,如果任何度量的值等于或大于该度量最大值的 value %,则在该度量所在行的开头插入 ##

dcc com_spec

指定在带注释的反汇编代码列表中显示的编译器注释的类。类列表是类的冒号分隔列表。可用类的列表与表 6–4 中所示的带注释的源代码列表的类列表相同。可以在类列表中添加以下选项。

表 6–5 dcc 命令的附加选项

选项 

含义 

h[ex]

显示指令的十六进制值。 

noh[ex]

不显示指令的十六进制值。 

s[rc]

在带注释的反汇编代码列表中交错显示源代码列表。 

nos[rc]

不在带注释的反汇编代码列表中交错显示源代码列表。 

as[rc]

在带注释的反汇编代码列表中交错显示带注释的源代码。 

dthresh value

指定带注释的反汇编代码中突出显示度量的阈值百分比。对于文件中的任何指令行,如果任何度量的值等于或大于该度量最大值的 value %,则在该度量所在行的开头插入 ##

cc com_spec

指定在带注释的源代码和反汇编代码列表中显示的编译器注释的类。类列表是类的冒号分隔列表。可用类的列表与表 6–4 中所示的带注释的源代码列表的类列表相同。

setpath path_list

设置用于查找源文件、目标文件等文件的路径。path_list 是目录的冒号分隔列表。如果任何目录中包含冒号字符,请用反斜杠将它转义。特殊目录名称 $expts 引用当前实验集(按装入实验的顺序);可以将其缩写为单个 $ 字符。

缺省设置为:$expts:.。如果在搜索当前路径设置时未找到文件,则使用编译时的全路径名。

不带参数的 setpath 列显当前路径。

addpath path_list

path_list 附加到当前 setpath 设置。

pathmap old-prefix new-prefix

如果使用由 addpathsetpath 设置的 path_list 找不到文件,则可以使用 pathmap 命令指定一个或多个路径重映射。在以 old-prefix 所指定的前缀开头的源文件、目标文件或共享对象的任何路径名中,旧的前缀将由 new-prefix 所指定的新前缀替代。然后,使用所得到的路径查找文件。可采用多个 pathmap 命令,并逐一尝试,直到找到文件为止。