マルチスレッドプログラムのデバッグ用の機能に加えて、OpenMP プログラム内で dbx を使用して次のことが実行できます。
並列領域へのシングルステップ。並列領域は OpenMP 実行時ライブラリから呼び出されるため、実行のシングルステップは実際には、この目的のために作成されたスレーブスレッドによって実行される複数の実行ライブラリ呼び出しレイヤーがかかわってきます。並列領域にシングルステップ実行すると、最初にブレークポイントに到達したスレッドによってプログラムが停止します。このスレッドは、ステップを開始したマスターステップではなく、スレーブスレッドになります。
たとえば、Fortran コードを 「コンパイラによる OpenMP コードの変換」で参照し、マスタースレッド t@1 が行 10 にあると想定します。行 12 に対してシングルステップを実行すると、スレーブスレッド t@2、t@3、および t@4 が生成され、実行時ライブラリ呼び出しを実行します。スレッド t@3 が最初にブレークポイントに到達し、プログラムの実行が停止します。このように、スレッド t@1 によって開始されたシングルステップ実行は、次のスレッドで終了します。t@3 この動作は、シングルステップ実行後も通常は以前と同じスレッドにいる普通のステップ実行とは異なります。
shared、private、および threadprivate 変数の出力。dbx は すべての shared、private、および threadprivate 変数を出力できます。並列領域外で threadprivate 変数を出力しようとすると、マスタースレッドのコピーが出力されます。whatis コマンドは変数が shared、private、または threadprivate のいずれであるかを通知しません。