Oracle® Solaris Studio 12.4:使用 dbx 调试程序

退出打印视图

更新时间: 2015 年 1 月
 
 

单步步入并行区域

dbx 可以单步步入并行区域。因为并行区域是外联区域并从 OpenMP 运行时库中进行调用,所以单步执行实际涉及几个层次的运行时库调用(这些调用由为此目的而创建的线程执行)。 单步步入并行区域时,到达断点的第一个线程引起程序停止。此线程可能是从属线程而不是启动单步执行的主线程。

例如,请参阅编译器如何转换 OpenMP 代码 中的 Fortran 代码,并假定主线程 t@1 位于第 10 行。当您单步执行到第 12 行时,将创建从属线程 t@2t@3t@4 来执行运行时库调用。线程 t@3 首先到达断点并导致程序停止执行。因此,由线程 t@1 启动的单步执行结束于线程 t@3。该行为不同于常规单步执行,常规单步执行后您通常处于与之前相同的线程中。