cprepend function-name [N | ADDR]
cappend function-name [N | ADDR]
source|src { filename | function_name } [ N]
disasm|dis { filename | function_name } [ N]
mobj_define mobj_type index_exp
indxobj_define indxobj_type index_exp
object_show object1,object2,...
object_hide object1,object2,...
object_api object1,object2,...
object_select object1,object2,...
name { long | short } [ :{ shared_object_name | no_shared_object_name } ]
viewmode { user| expert | machine }
许多 er_print 命令都使用度量关键字的列表。列表的语法如下:
metric-keyword-1[:metric-keyword2…]
对于动态度量(它们基于度量的数据),度量关键字包含以下三部分:度量类型字符串、度量可见性字符串和度量名称字符串。这些字符串连接在一起且没有空格,如下所示。
flavorvisibilityname
对于静态度量-它们基于实验中装入对象的静态属性(名称、地址和大小),度量关键字包含度量名称和可选的前置度量可见性字符串,两者连接在一起且没有空格:
[visibility]name
度量 flavor 和度量 visibility 字符串由类型和可见性字符组成。
表 5-1 中列出了允许的度量类型字符。包含多个类型字符的度量关键字可扩展为一系列度量关键字。例如,ie.user 可扩展为 i.user:e.user。
表 5-1 度量类型字符
|
表 5-2 中列出了允许的度量可见性字符。可见性字符串中可见性字符的顺序无关紧要:它不影响对应度量的显示顺序。例如,i%.user 和 i.%user 都解释为 i.use:i%user。
仅可见性不同的度量始终按标准顺序一起显示。如果仅可见性不同的两个度量关键字由某些其他关键字分隔,则度量按标准顺序出现在两个度量中第一个度量的位置。
表 5-2 度量可见性字符
|
当类型字符串和可见性字符串都具有多个字符时,首先扩展类型。因此,将 ie.%user 扩展为 i.%user:e.%user,然后将其解释为 i.user:i%user:e.user:e%user。
对于静态度量,句点 (.)、加号 (+) 和百分号 (%) 这三种可见性字符在用于定义排序顺序时是等效的。因此,sort i%user、sort i.user 和 sort i+user 均表示只要包含用户 CPU 时间以任一形式可见,分析器就应该按它排序;而 sort i!user 则表示不管包含用户 CPU 时间是否可见,分析器都应该按它排序。
对于每种度量类型,可以使用叹号 (!) 可见性字符覆盖内置可见性缺省值。
如果同一度量在度量列表中出现多次,则仅处理第一次出现的该度量,而忽略随后出现的该度量。如果指定的度量不在列表中,则将它附加到列表中。
表 5-3 列出了 计时度量、同步延迟度量、内存分配度量、MPI 跟踪度量以及两个常见的硬件计数器度量的可用 er_print 度量名称字符串。对于其他硬件计数器度量,度量名称字符串与计数器名称相同。通过 metric_list 命令,可以获取已装入实验的所有可用度量名称字符串的列表。通过使用不带参数的 collect 命令,可以获取计数器名称的列表。有关硬件计数器的更多信息,请参见硬件计数器溢出分析数据。
表 5-3 度量名称字符串
|
除了表 5-3 中列出的名称字符串外,还有两个只能在缺省度量列表中使用的名称字符串。这两个名称字符串是 hwc(它与任何硬件计数器名称匹配)和 any(它与任何度量名称字符串匹配)。另请注意,cycles 和 insts 对于 SPARC 平台和 x86 平台是通用的,但是还存在特定于体系结构的其他类型的名称字符串。要列出所有可用的计数器,请使用不带参数的 collect 命令。
要查看在已装入的实验中可用的度量,请使用 metric_list 命令。