Oracle Solaris Studio 12.4 Man Pages

Exit Print View

Updated: January 2015
 
 

er_generic(1)

Name

er_generic - 用于从包含分析信息的文本文件生成实验的命令

Synopsis

er_generic args target directory [directory2 ...]

Description

er_generic 命令可处理包含分析数据的文本文件的一个或多个目录,并从该数据生成模拟性能实验。实验显示为硬件计数器溢出分析实验,在同一次运行中有多个计数器。可以使用 GUI 程序 (analyzer) 或命令行版本 (er_print) 检查数据。由于数据不显示时序信息,因此分析器时间线对于此类实验不可用。同样,也没有调用堆栈信息。

target 是要为其收集性能数据的可执行文件的路径名。作为 er_generic 命令的目标的程序可以在任何优化级别进行编译。为了查看带注释的源代码,应该使用 -g 标志编译目标,并且不应剥离目标。

每个 directory 包含多个输出文件,这些文件包含来自模拟器的程序计数器 (program-counter, PC) 和事件计数器数据。目录中的所有文件都将转换为单个实验。如果参数不是目录,运行将失败并显示一条错误消息。将跳过不包含有效数据的文件。

每个目录都必须包含名为 format.txt 的文件,该文件包含 er_generic 用于解释要转换为分析器实验的文件的信息。

每个目录均可包含名为 mapfile.txt 的文件,该文件包含有关文件映射到内存中位置的信息。

Options

如果不带参数调用,将输出用法消息。

-C comment

将注释(单个标记或带引号的字符串)放到实验中。最多可提供十条注释。

-o experiment-name

使用 experiment-name 作为要记录的实验的名称。experiment-name 字符串必须以 .er 字符串结尾;否则,将报告错误且不运行实验。

如果不指定 -o 选项,则使用格式为 stem.n.er 的名称记录实验,其中 stem 是字符串,n 是数字。如果提供了 -g 参数,请使用组名称中 .erg 后缀前面显示的字符串作为 stem 前缀;如果未提供 -g 参数,请将 stem 前缀设置为字符串 test

如果没有使用 stem.n.er 格式指定名称,而正在使用给定名称,将输出一条错误消息且不会运行实验。如果名称采用 stem.n.er 格式且正在使用提供的名称,将在不使用的 n 的第一个可用值对应的名称下记录实验。如果名称已更改,则会发出一条警告。

-d directory_name

将实验放到目录 directory_name 中。如果未提供任何目录,则将其记录到当前工作目录中。

-g group_name

将实验视为实验组 group_name 的一部分。group_name 字符串必须以 .erg 字符串结尾;否则,将报告错误且不运行实验。

-A option

控制是否应该将目标进程使用的装入对象复制到记录的实验中。option 的允许值包括:

on

归档实验中引用的目标和所有装入对象。

src

复制并归档所有源文件以及可在实验中找到的 .anc 文件。

usedsrc

复制并归档所有源文件以及在记录的数据中引用且可在实验中找到的 .anc 文件。

off

不将装入对象归档到实验中。

如果用户将实验复制到不同的计算机上,或者在不同的计算机上读取它们,则用户应该指定 -A copy。请注意,这样做不会复制任何源文件或对象文件。用户负责确保可在复制实验的计算机上访问这些文件。

-V

输出当前版本。不再检查任何参数,也不执行进一步的处理。

-v

输出当前版本和正在运行的实验的更多详细信息。

记录的数据

记录的数据

分析的限制

通常,硬件计数器溢出分析记录运行实验的 CPU 的硬件计数器中发生溢出时每个 LWP 的调用堆栈。数据还包括时间戳、CPU ID、线程 ID 和 LWP ID。由 er_generic 生成的记录在其调用堆栈中只有叶 PC。将生成时间戳,但没有任何意义。尚不提供对多线程和多 CPU 实验的支持。

可用的计数器取决于模拟的特定芯片参数。

文件格式的详细信息

文件格式的详细信息

分析数据输入文件格式

要由 er_generic 处理的文件是文本文件,文件的第一行是注释(以 "\\ text" 标注)。er_generic 期望在位于同一目录中的 format.txt 文件中定义格式。文件中记录的数据是空格分隔的多个列,文件至少应该包含:

context

这是一个可选字段,当前被忽略,但是将来会用于包含多个上下文的跟踪产生的结果。

pc

指令的地址

event-count

在该特定 pc 上所发生事件的计数。可以有多列事件计数,这些列由 format.txt 文件定义。

生成的行应该类似于:

Context pc event-count1 event-count2 ...

注释(以 \\ 表示)将记录到生成的实验文件中。

使用 format.txt 文件指定格式

format.txt 文件应该与要处理的文件放在相同的目录中。它可以包含以下区分大小写的命令。

context

该命令可告知 er_generic 期望第一列数据是 pc 的上下文。当前忽略上下文信息。如果需要,该关键字应该是文件中的第一个。

clock=N

该命令可设置模拟的处理器的时钟速度 (MHz)。对于可表示为时间的计数器,这是必要的。

counter=name[,HEX][,TIME]

该命令可定义特定计数器,计数器应该按列在模拟器输出文件中出现的顺序在 format.txt 文件中列出。除非使用 HEX 说明符,否则会将计数器值解释为十进制值。如果计数器以周期表示时间,并且应该这样显示,则可使用说明符 TIME。

使用 mapfile.txt 文件指定内存位置

映射文件可指定库和可执行文件在内存中的位置。当前仅使用一个 mapfile.txt,因为只能指定一个上下文。映射文件包含逗号分隔的数据,如下所示:

LOAD filename, address, time
filename

即将装入的文件的完整路径。

address

装入文件的内存中的地址

time

表示装入文件时间的时间戳,当前被忽略。

See also

analyzer (1) 、 collect (1) 、 er_archive (1) 、 er_cp (1) 、 er_export (1) 、 er_mv (1) 、 er_print (1) 、 er_rm (1) 、 er_src (1)

性能分析器手册