本节介绍如何从 dbx 运行收集器,然后介绍可以与 dbx 中的 collector 命令一起使用的每个子命令。
% dbx program |
使用 collector 命令启用数据收集,选择数据类型并设置任何可选参数。
(dbx) collector subcommand |
要获取可用 collector 子命令的列表,请键入:
(dbx) help collector |
必须针对每个子命令都使用一个 collector 命令。
设置要使用的任何 dbx选项并运行该程序。
如果提供的子命令不正确,则会列显一条警告消息并忽略该子命令。下面是 collector 子命令的完整列表。
下列子命令控制收集器所收集的数据的类型。如果实验处于活动状态,则这些子命令将被忽略并显示一条警告。
控制对基于时钟的分析数据的收集。option 的允许值包括:
on-启用缺省分析间隔为 10 毫秒的基于时钟的分析。
off-禁用基于时钟的分析。
timer interval-设置分析间隔。interval 的允许值包括:
on-使用大约为 10 毫秒的缺省分析间隔。
lo[w]-使用大约为 100 毫秒的低精度分析间隔。
hi[gh]-使用大约为 1 毫秒的高精度分析间隔。有关启用高精度分析的信息,请参见基于时钟的分析的限制。
value-将分析间隔设置为 value。value 的缺省单位是毫秒。可以将 value 指定为整数或浮点数。可以选择在数值后添加后缀 m 来选择毫秒单位,也可以添加 u 来选择微秒单位。该值应当是时钟精度的倍数。如果该值大于时钟精度但不是其倍数,则向下舍入。如果该值小于时钟精度,则将其设置为时钟精度。在以上两种情况下均列显警告消息。
缺省设置大约为 10 毫秒。
缺省情况下收集器收集基于时钟的分析数据,除非使用 hwprofile 子命令打开对硬件计数器溢出分析数据的收集。
控制对硬件计数器溢出分析数据的收集。如果您尝试在不支持硬件计数器溢出分析的系统中启用它,则 dbx 会返回一条警告消息,而且该命令将被忽略。option 的允许值包括:
on-打开硬件计数器溢出分析。缺省操作是收集具有正常溢出值的 cycles 计数器的数据。
off-关闭硬件计数器溢出分析。
list-返回可用计数器的列表。有关对该列表的描述,请参见硬件计数器列表。如果系统不支持硬件计数器溢出分析,则 dbx 会返回一条警告消息。
counter counter_definition... [, counter_definition]-计数器定义可以采用下列形式之一,具体取决于处理器是否支持硬件计数器的属性。
[+] counter_name[/ register_number][,interval ]
[+]counter_name[~ attribute_1=value_1]...[~attribute_n =value_n][/ register_number][,interval ]
选择硬件计数器 name,并将其溢出值设置为 interval;也可以选择其他硬件计数器名称并将其溢出值设置为指定的间隔。溢出值可以为下列值之一:
on 或空字符串-缺省溢出值,可以通过键入不带参数的 collect 来确定。
hi[gh]-所选计数器的高精度值,大约比缺省溢出值短十倍。之所以还支持缩写 h,是为了与以前的软件发行版兼容。
lo[w]-所选计数器的低精度值,大约比缺省溢出值长十倍。
interval-特定的溢出值,必须是正整数,可以采用十进制格式,也可以采用十六进制格式。
如果指定了多个计数器,则它们必须使用不同的寄存器。否则,将列显一条警告消息,而且该命令将被忽略。
如果硬件计数器对其计数的事件与内存访问有关,则可以在计数器名称前放置 + 符号,以便对导致计数器溢出的指令的真实 PC 进行搜索。如果搜索成功,则 PC 和所引用的有效地址将被存储在事件数据包中。
缺省情况下,收集器不收集硬件计数器溢出分析数据。如果硬件计数器溢出分析处于启用状态,而且尚未提供 profile 命令,则基于时钟的分析将处于关闭状态。
另请参见硬件计数器溢出分析的限制。
on-启用堆跟踪。
off-禁用堆跟踪。
缺省情况下,收集器不收集堆跟踪数据。
控制对 MPI 跟踪数据的收集。option 的允许值包括:
on-启用对 MPI 调用的跟踪。
off-禁用对 MPI 调用的跟踪。
缺省情况下,收集器不收集 MPI 跟踪数据。
为线程分析器收集数据争用检测或死锁检测数据。允许的值包括:
on-打开线程分析器的数据争用检测数据
off-关闭线程分析器数据
all-打开所有线程分析器数据
race-打开线程分析器的数据争用检测数据
deadlock-收集死锁和潜在死锁数据
dtN-打开特定的线程分析器数据类型,这些数据类型由 dt* 参数指定。
有关线程分析器的更多信息,请参见《Sun Studio 12:线程分析器用户指南》和 tha.1 手册页。
缺省情况下,启用抽样间隔 value 为 1 秒的定期抽样。
控制当 dbx 停止目标进程时对样本的记录。关键字的含义如下所示:
on-在 dbx 每次停止目标进程时记录样本。
off-在 dbx 停止目标进程时不记录样本。
缺省情况下,在 dbx 停止目标进程时记录样本。
禁用数据收集功能。如果进程正在运行而且正在收集数据,该子命令将终止实验并禁用数据收集功能。如果进程正在运行而且数据收集功能处于禁用状态,则该子命令将被忽略并显示一条警告。如果没有任何进程在运行,则该子命令将针对后续运行禁用数据收集功能。
启用数据收集功能。如果进程正在运行,但数据收集功能处于禁用状态,则该子命令将启用数据收集功能并启动新的实验。如果进程正在运行,而且数据收集功能处于启用状态,则该子命令将被忽略并显示一条警告。如果没有任何进程在运行,则该子命令将针对后续运行启用数据收集功能。
您可以在任何进程执行期间根据需要启用和禁用数据收集功能任意次数。每次启用数据收集功能时,都会创建一个新实验。
暂停数据收集,但使实验保持打开状态。收集器暂停时不记录样本点。在暂停之前会生成一个样本,在恢复之后会立即生成另一个样本。如果已暂停数据收集功能,则该子命令将被忽略。
在发出 pause 之后恢复数据收集。如果正在收集数据,则该子命令将被忽略。
记录具有标签 name 的样本包。该标签显示在性能分析器的“事件”标签中。
下列子命令定义实验的存储选项。如果实验处于活动状态,则这些子命令将被忽略并显示一条警告。
on-对装入对象进行正常归档
off-不对装入对象进行归档
copy-除正常归档之外,还将装入对象复制到实验中
如果打算将实验移到另一台计算机上,或者从另一台计算机上读取实验,则应当启用对装入对象的复制。如果实验处于活动状态,则该命令将被忽略并显示一条警告。该命令不会将源文件或目标文件复制到实验中。
将所记录的分析数据量限制在 value 兆字节。该限制适用于基于时钟的分析数据量、硬件计数器溢出分析数据量和同步等待跟踪数据量之和,但不适用于样本点。该限制只是近似值,可以被超出。
当达到该限制时,不再记录分析数据,但实验会一直保持打开状态,而且会继续记录样本点。
记录的数据量的缺省限制为 2000 MB。选择该限制的原因是性能分析器无法处理所含数据量大于 2 GB 的实验。要去掉该限制,请将 value 设置为 unlimited 或 none。
控制实验的存储位置。如果实验处于活动状态,则该命令将被忽略并显示一条警告。option 的允许值包括:
directory directory-name-设置用来存储实验和实验组的目录。如果该目录不存在,则该子命令将被忽略并显示一条警告。
experiment experiment-name-设置实验的名称。如果实验名称不以 .er 结尾,则该子命令将被忽略并显示一条警告。有关实验名称以及收集器如何对其进行处理的更多信息,请参见数据的存储位置。
group group-name-设置实验组的名称。如果实验组名称不以 .erg 结尾,则该子命令将被忽略并显示一条警告。如果该组已经存在,则将实验添加到该组中。如果目录名是用 store directory 子命令设置的,而且组名不是绝对路径,则组名以目录名为前缀。
显示每个收集器控件的当前设置。