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

印刷ビューの終了

更新: 2015 年 1 月
 
 

並列領域へのシングルステップ

dbx は、並列領域にシングルステップ実行できます。並列領域は OpenMP 実行時ライブラリからアウトライン化されて呼び出されるため、実行のシングルステップでは、実際には、この目的で作成されたスレッドによって実行される何層にもわたる実行時ライブラリの呼び出しが実行されます。 並列領域にシングルステップ実行すると、最初にブレークポイントに到達したスレッドによってプログラムが停止します。このスレッドは、ステップを開始したマスターステップではなく、スレーブスレッドになります。

たとえば、コンパイラによる OpenMP コードの変換の Fortran コードで、マスタースレッド t@1 が行 10 にあるとします。行 12 にシングルステップ実行すると、スレーブスレッド t@2t@3、および t@4 が作成され、実行時ライブラリの呼び出しを実行します。スレッド t@3 が最初にブレークポイントに到達し、プログラムの実行が停止します。そのため、スレッド t@1 によって開始されたシングルステップは、スレッド t@3 で終了します。この動作は、一般にシングルステップのあとも前と同じスレッド上にある通常のステップ実行とは異なります。