可以使用线程分析器、性能分析器或 er_print 实用程序检查数据争用检测实验。线程分析器和性能分析器都提供 GUI 界面;线程分析器显示的是一组简化的缺省标签,但在其他方面与性能分析器完全相同。
要启动线程分析器,请键入以下命令:
% tha |
线程分析器 GUI 具有菜单栏、工具栏以及包含多个标签的拆分窗格(不同标签对应不同的显示)。
缺省情况下,左侧窗格中会显示以下三个标签:
"Races"(争用)标签,显示程序中检测到的数据争用列表以及关联的调用栈跟踪。缺省情况下会选中此标签。
"Dual Source"(双源)标签,显示与所选数据争用的两次访问相对应的两个源代码位置。发生数据争用访问的源代码行会突出显示。
"Experiments"(实验)标签,显示实验中的装入对象并列出错误和警告消息。
线程分析器显示屏的右侧窗格中显示以下两个标签:
"Summary"(摘要)标签,显示从 "Races"(争用)标签中选择的数据争用访问的摘要信息。
"Race Details"(争用详细信息)标签,显示从 "Races"(争用)标签中选择的数据争用或调用栈跟踪的详细信息。
er_print 实用程序提供命令行界面。可以在交互式会话中使用 er_print 实用程序并在该会话期间指定子命令。也可以使用命令行选项以非交互方式指定子命令。
使用 er_print 实用程序检查争用时,以下子命令非常有用:
-races
该选项会报告在实验中发现的所有数据争用。在 (er_print) 提示符下指定 races,或者在 er_print 命令行上指定 -races。
-rdetail race_id
该选项会显示具有指定 race_id 的数据争用的详细信息。在 (er_print) 提示符下指定 rdetail,或者在 er_print 命令行上指定 -rdetail。如果指定的 race_id 为 all,将显示所有数据争用的详细信息。否则,请指定单个争用编号,例如为第一个数据争用指定 1。
-header
该选项会显示有关实验的描述性信息并报告所有错误或警告。在 (er_print) 提示符下指定 header,或者在命令行上指定 -header。
有关更多信息,请参阅 collect(1)、tha(1)、analyzer(1) 和 er_print(1) 手册页。