スレッドアナライザ、パフォーマンスアナライザ、er_print ユーティリティで、データの競合の検出実験を検証できます。スレッドアナライザおよびパフォーマンスアナライザはどちらも GUI インタフェースを表示します。スレッドアナライザはデフォルトの簡略セットのタブを表示しますが、それ以外はパフォーマンスアナライザと同じです。
スレッドアナライザを開始するには、次のコマンドを入力します。
% tha |
スレッドアナライザ GUI は、メニューバー、ツールバー、および各種表示用のタブを含む分割区画で構成されます。
左側の区画には、デフォルトで次の 3 つのタブが表示されます。
「競合 (Races)」タブには、プログラムで検出されたデータの競合と、関連する呼び出しスタックトレースの一覧が表示されます。デフォルトでこのタブが選択されています。
「デュアルソース (Dual Source)」タブには、選択したデータの競合の 2 つのアクセスに対応する 2 つのソースの位置が表示されます。データの競合アクセスが起きたソース行が強調表示されます。
「実験 (Experiments)」タブには、実験でのロードオブジェクトが表示され、エラーおよび警告メッセージが一覧表示されます。
スレッドアナライザ画面の右側区画には、次の 2 つのタブが表示されます。
「概要 (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) のマニュアルページを参照してください。