You can examine a data-race-detection experiment with Thread Analyzer, Performance Analyzer, or the er_print utility. Both Thread Analyzer and Performance Analyzer present a GUI interface; Thread Analyzer presents a simplified set of default views, but is otherwise identical to Performance Analyzer.
To start Thread Analyzer, type the following command:
When you first start Thread Analyzer you see the Welcome screen.
Thread Analyzer has a menu bar, a tool bar, and vertical navigation bar on the left that enables you to select data views.
The following data views are shown by default:
Overview screen shows a metrics overview of the loaded experiments.
Races view shows a list of data races detected in the program, and associated call stack traces. This view is selected by default. When you select an item in the Races view, the Race Details window shows detailed information about the data race or call stack trace selected.
Dual Source view shows the two source locations corresponding to the two accesses of a selected data race. The source line where a data race access occurred is highlighted.
Experiments view shows the load objects in the experiment, and lists error and warning messages.
You can choose to see other views with the More Views options menu.
The er_print utility presents a command-line interface. You can use the er_print utility in an interactive session and specify sub-commands during the session. You can also use command-line options to specify sub-commands non-interactively.
The following sub-commands are useful for examining races with the er_print utility:
This reports any data races revealed in the experiment. Specify races at the (er_print) prompt or –races on the er_print command line.
This displays detailed information about the data race with the specified race_id. Specify rdetail at the (er_print) prompt or –rdetail on the er_print command line. If the specified race_id is all, then detailed information about all data races will be displayed. Otherwise, specify a single race number such as 1 for the first data race.
This displays descriptive information about the experiment, and reports any errors or warnings. Specify header at the (er_print) prompt or –header on the command line.
Refer to the collect(1), tha(1), analyzer(1), and er_print(1) man pages for more information.