マルチスレッドプログラムのデバッグ用の機能に加えて、OpenMP プログラム内で dbx を使用して次のことが実行できます。
並列領域へのシングルステップ。並列領域は OpenMP 実行時ライブラリから呼び出されるため、実行のシングルステップは実際には、この目的のために作成されたスレーブスレッドによって実行される複数の実行ライブラリ呼び出しレイヤーがかかわってきます。並列領域にシングルステップ実行すると、最初にブレークポイントに到達したスレッドによってプログラムが停止します。このスレッドは、ステップを開始したマスターステップではなく、スレーブスレッドになります。
たとえば、「コンパイラによる OpenMP コードの変換」の Fortran を参照して、マスタースレッド 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 のいずれであるかを通知しません。