可以使用线程分析器、性能分析器或 er_print 实用程序检查数据争用检测实验。线程分析器和性能分析器都提供 GUI 界面;线程分析器显示的是一组简化的缺省视图,但在其他方面与性能分析器完全相同。
要启动线程分析器,请键入以下命令:
% tha
第一次启动线程分析器时,将显示 "Welcome"(欢迎)屏幕。
线程分析器在左侧具有菜单栏、工具栏和垂直导航栏,因而您可以选择数据视图。
缺省情况下显示以下数据视图:
"Overview"(概述)屏幕显示已装入实验的度量概述。
"Races"(争用)视图,显示程序中检测到的数据争用列表以及关联的调用堆栈跟踪。缺省情况下选择此视图。选择 "Races"(争用)视图中的项时,"Race Details"(争用详细信息)窗口会显示有关选择的数据争用或调用堆栈跟踪的详细信息。
"Dual Source"(双源)视图,显示与所选数据争用的两次访问相对应的两个源代码位置。发生数据争用访问的源代码行会突出显示。
"Experiments"(实验)视图显示实验中的装入对象并列出错误和警告消息。
可以选择使用 "More Views"(更多视图)选项菜单查看其他视图。
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) 手册页。