控制是否应当记录后续进程的数据。option 的允许值包括:
on-仅针对由函数 fork(及其变体)和 exec(及其变体)创建的后续进程记录实验。
all-针对所有后续进程记录实验。
off-不针对后续进程记录实验。
=regexp-针对其名称或沿袭与指定的正则表达式匹配的所有后续进程记录实验。
如果您指定 -F on 选项,收集器将跟踪通过调用函数 fork(2)、fork1(2)、fork(3F)、vfork(2) 和 exec(2) 及其变体而创建的进程。对 vfork 的调用已在内部被替换为对 fork1 的调用。
如果您指定 -F all 选项,收集器将跟踪所有后续进程,其中包括那些通过调用 system(3C)、system(3F)、sh(3F) 和 popen(3C) 以及类似函数而创建的后续进程以及与它们相关的后续进程。
如果您指定 -F '= regexp' 选项,收集器将跟踪其名称或沿袭与指定的正则表达式相匹配的所有后续进程。有关正则表达式的信息,请参见 regexp(5) 手册页。
当您在后续进程上收集数据时,收集器会针对创始实验中的每个后续进程打开一个新实验。这些新实验是通过向实验后缀添加一个下划线、一个字母和一个数字来命名的,如下所示:
字母可以是 "f"(表示派生)、"x"(表示执行)或 "c"(表示任何其他后续进程)。
数字是派生或执行(无论是否成功)或其他调用的索引。
例如,如果初始进程的实验名称是 test.1.er,则由它的第三个派生创建的子进程的实验是 test.1.er/_f3.er。如果该子进程针对新映像执行 exec 操作,则相应的实验名称为 test.1.er/_f3_x1.er。如果该子进程使用 popen 调用创建另一个进程,则实验名称为 test.1.er/_f3_x1_c1.er。
分析器和 er_print 实用程序在读取创始实验后会自动读取后续进程的实验,但不会选择将后续进程的实验用于数据显示。
要从命令行中选择要显示的数据,请明确指定 er_print 或 analyzer 的路径名。所指定的路径必须包含创始实验的名称以及创始目录中后续实验的名称。
例如,要查看 test.1.er 实验的第三个派生的数据,需要指定以下内容:
er_print test.1.er/_f3.er
analyzer test.1.er/_f3.er
或者,可以使用感兴趣的后续实验的显式名称来准备实验组文件。
要在分析器中检查后续进程,请装入创始实验并从“视图”菜单中选择“过滤数据”。此时将显示一个实验列表,其中只有创始实验处于选中状态。取消选中初始实验并选中感兴趣的后续实验。
如果在后续进程正在被跟踪时创始进程退出,则可能会继续从后续进程中收集数据。创始实验目录会相应地继续变大。