tha コマンド、analyzer コマンド、または er_print ユーティリティーを使用して、デッドロック検出実験を検証することができます。スレッドアナライザ
とアナライザ
では GUI インタフェースが使用でき、er_print
ではコマンド行インタフェースを使用します。
詳細は、tha.1、analyzer.1、および er_print.1 を参照してください。
スレッドアナライザ は、メニューバー、ツールバー、および各種表示用のタブを含む分割区画で構成されています。デフォルトでは、左側の区画に次の 3 つのタブが表示されます。
「デッドロック」タブ
スレッドアナライザがプログラム内で検出した潜在的および実デッドロックの一覧を表示します。デフォルトでは、このタブが選択されています。デッドロックごとに関係するスレッドが表示されます。これらスレッドは、1 つのスレッドがロックを保持するとともに、同じチェーン内の次のスレッドが保持する別のロックを要求する循環チェーンを形成しています。
「デュアルソース」タブ
循環チェーン内のスレッドを選択し、「デュアルソース」タブをクリックします。「デュアルソース」タブに、そのスレッドがロックを保持したソース位置と、ロックを要求したソース位置の両方が示されます。スレッドがロックを保持または要求したソース行は強調表示されます。
「実験」タブ
実験の負荷オブジェクトを示すとともに、エラーおよび警告メッセージを表示します。スレッドアナライザの右側の区画には、次の 2 つのタブが表示されます。
「概要」タブ - 「デッドロック」タブで選択されたデッドロックの概要情報を表示します。
「デッドロックの詳細」タブ - 「デッドロック」タブで選択されたデッドロックの詳細情報を表示します。
er_print
インタフェース左側の区画と異なり、右側の区画には「デッドロックの詳細」タブがあり、「デッドロック」タブで選択されたスレッドの詳細情報を表示します。er_print
を使用してデッドロックを検証する際に特に有用なサブコマンドを次に示します。
-deadlocks
実験で検出された潜在的および実デッドロックをすべて報告します。
-ddetail deadlock_id
deadlock_id に指定されたデッドロックの詳細情報を返します。deadlock_id に all を指定すると、er_print
はすべてのデッドロックの詳細情報を表示します。
-header
実験に関する説明を表示し、エラーと警告を報告します。
詳細は、er_print.1 を参照してください。