er_archive [ -nqF ] [-s option [-m regexp ] ] experiment-name
er_archive -V
er_archive 将应用程序二进制文件和源代码复制到性能分析器实验,使实验具有自包含性和可移植性。
指定 -s all 或 -s used 时,源文件和对象文件均会归档。分析的应用程序具有源代码级的差异时,需要进行源代码归档才能执行实验比较。
缺省情况下,创建实验时自动归档二进制文件。但是,在下列情况下不进行归档:
如果分析的应用程序在其正常退出之前被终止
如果您在分析正在运行的进程
如果您在分析时显式禁用归档(例如,通过使用 collect -A off)
在这些情况下,您必须在记录分析数据的同一计算机上显式运行 er_archive。
一些 Java 应用程序在 jar 文件中存储共享对象。缺省情况下,不自动归档此类共享对象。要归档 jar 文件中包含的共享对象,必须在 .er.rc 文件中包括 addpath 指令。addpath 指令应该提供 jar 文件的路径,包括 jar 文件自身。.er.rc 文件应保存在用户主目录或实验父目录中。
缺省情况下,应用程序源文件不归档到实验中。如果要检查源代码级差异,请在比较实验之前对每个实验运行 er_archive -s all 或 er_archive -s used。这样还可确保源文件可用于实验,即使原始源文件被修改或者不可访问也是如此。
er_archive -s 报告未找到哪些源文件。要归档找不到的文件,应该向 .er.rc 文件添加 addpath 和 pathmap 指令。有关 addpath 和 pathmap 的更多详细信息,请参见 er_print (1) 手册页。
可以设置环境变量 SP_ARCHIVE_ARGS,从而在实验完成时自动完成源代码归档。SP_ARCHIVE_ARGS 环境变量可以包含 -s 和 -m 参数,作为成对的参数和由一个或多个空格分隔的选项。如果命令行上出现多个 -s 参数,则优先使用最后一个。如果 -s 既在命令行上传递,又由环境变量设置,则优先使用环境变量的选项。
请注意,如果您通过使用 SP_ARCHIVE_ARGS 变量或使用 collect -A src 或 collect -A usedsrc,在数据收集过程中启用自动源代码归档,则应确认源文件已通过运行 er_archive -s all 或 er_archive -s used 加以正确解析。
仅归档指定的实验,不包括其子孙。
不将任何警告写入 stderr。警告将并入 .archive 文件,并显示在 analyzer 或 er_print 输出中。
强制写入或重新写入 .archive 文件。该参数可用于手动运行 er_archive,以重新写入带有警告的文件。
不再需要,使用时会被忽略。
指定源文件的归档。option 的允许值包括:
不归档任何源文件
归档可找到的所有源代码、对象和 .anc 文件。
归档在实验中记录数据所针对的函数的且可找到的源代码、对象和 .anc 文件。
如果在命令行上提供了或者在环境变量中指定了多个 -s 参数,为所有参数指定的选项必须相同。如果不同,er_archive 将退出,并显示一个错误。
仅归档由 -s 标志指定且在可执行文件或共享对象中记录的其完整路径名与指定的 regex 匹配的源代码、对象和 .anc 文件。有关 regex 的更多信息,请参见 regex (5) 手册页。
可以在命令行上或环境变量中提供多个 -m 参数。如果源文件与任一参数的表达式匹配,则会归档源文件。
写入 er_archive 的版本号信息并退出。
er_archive 对使用早期版本工具记录的实验不起作用。如果对此类实验调用,将输出警告。请使用记录实验时所用发行版中的 er_archive 版本。
analyzer (1) 、 collect (1) 、 collector (1) 、 er_print (1)
性能分析器手册