Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ

イベントの使用

dbx は、OpenMP コードで stopwhen、および trace コマンドとともに使用できるイベントを提供します。これらのコマンドとともにイベントを使用する方法については、「イベント指定の設定」を参照してください。

同期イベント

omp_barrier [type] [state]

バリアーに入るスレッドのイベントを追跡します。

type は次のいずれかです。

  • 明示的なバリアーを追跡する explicit

  • 暗黙的なバリアーを追跡する implicit

type を指定しなければ、明示的なバリアーだけが追跡されます。

state は次のいずれかです。

  • いずれかのスレッドがバリアーに入ったときにイベントをレポートする enter

  • いずれかのスレッドがバリアーを出たときにイベントをレポートする exit

  • すべてのスレッドがバリアーに入ったときにイベントをレポートする all_entered

state を指定しない場合のデフォルトは all_entered です。

enter または exit を指定するときにスレッド ID を含めると、そのスレッドのみ追跡を行えます。

omp_taskwait [state]

taskwait に入るスレッドのイベントを追跡します。

state は次のいずれかです。

  • スレッドが taskwait に入ったときにイベントをレポートする enter

  • すべての子タスクが完了したときにイベントをレポートする exit

state を指定しない場合のデフォルトは exit です。

omp_ordered [state]

番号付き領域に入るスレッドのイベントを追跡します。

state は次のいずれかです。

  • 番号付き領域が開始したときにイベントをレポートする begin

  • スレッドが番号付き領域に入ったときにイベントをレポートする enter

  • スレッドが番号付き領域を出たときにイベントをレポートする exit

state を指定しない場合のデフォルトは enter です。

omp_critical

クリティカルリージョンに入るスレッドのイベントを追跡します。

omp_atomic [state]

微細領域に入るスレッドのイベントを追跡します。

state は次のいずれかです。

  • 微細領域が開始したときにイベントをレポートする begin

  • スレッドが微細領域を出たときにイベントをレポートする exit

state を指定しない場合のデフォルトは begin です。

omp_flush

フラッシュを実行するスレッドのイベントを追跡します。

そのほかのイベント

omp_task [state]

タスクの作成と終了を追跡します。

state は次のいずれかです。

  • タスクが作成されてから、実行が開始する直前にイベントをレポートする create

  • タスクが実行を開始したときにイベントをレポートする start

  • タスクの実行が完了し、終了処理が実行されるときにイベントをレポートする finish

state を指定しない場合のデフォルトは start です。

omp_master

マスター領域に入るマスタースレッドのイベントを追跡します。

omp_single

単一領域に入るスレッドのイベントを追跡します。