使用 omp_pr 命令可输出当前并行区域或指定并行区域的描述,其中包括父区域、并行区域 ID、组大小(线程数)以及程序位置(程序计数器地址)。例如:
(dbx) omp_pr
parallel region 127283434369843201
team size = 4
source location = test.c:103
parent = 127283430568755201您还可以输出所有并行区域的描述以及从当前并行区域或指定并行区域到其根目录的路径。例如:
(dbx) omp_pr -ancestors
parallel region 127283434369843201
team size = 4
source location = test.c:103
parent = 127283430568755201
parallel region 127283430568755201
team size = 4
source location = test.c:95
parent = <no parent>它也可以输出整个并行区域树。例如:
(dbx) omp_pr -tree
parallel region 127283430568755201
team size = 4
source location = test.c:95
parent = <no parent>
parallel region 127283434369843201
team size = 4
source location = test.c:103
parent = 127283430568755201有关更多信息,请参见omp_pr 命令。
使用 omp_tr 命令可输出当前任务区域或指定任务区域的描述,其中包括任务区域 ID、状态(spawned、executing、waiting)、正在执行的线程、程序位置(程序计数器地址)、未完成子项以及父项。例如:
(dbx) omp_tr
task region 65540
type = implicit
state = executing
executing thread = t@4
source location == test.c:46
unfinished children = 0
parent = <no parent>您还可以输出所有任务区域的描述以及从当前任务区域或指定任务区域到其根目录的路径。
(dbx) omp_tr -ancestors
task region 196611
type = implicit
state = executing
executing thread = t@3
source location - test.c:103
unfinished children = 0
parent = 131075
task region 131075
type = implicit
state = executing
executing thread = t@3
unfinished children = 0
parent = <no parent>您也可以输出整个任务区域树。例如:
(dbx) omp_tr -tree
task region 10
type = implicit
state = executing
executing thread = t@10
source location = test.c:103
unfinished children = 0
parent = <no parent>
task region 7
type = implicit
state = executing
executing thread = t@7
source location = test.c:103
unfinished children = 0
parent = <no parent>
task region 6
type implicit
state = executing
executing thread = t@6
source location = test.c:103
unfinished children = 0
parent = <o parent>
task region 196609
type = implicit
state = executing
executing thread = t@1
source location = test.c:95
unfinished children = 0
parent = <no parent>
task region 262145
type = implicit
state = executing
executing thread = t@1
source location = test.c:103
unfinished children - 0
parent = 196609
有关更多信息,请参见omp_tr 命令。
使用 omp_loop 命令可输出当前循环的描述,其中包括调度类型(静态、动态、指导、自动或运行时)、有序性、界限、步幅或跨距以及迭代数。例如:
(dbx) omp_loop
ordered loop: no
lower bound: 0
upper bound: 3
step: 1
chunk: 1
schedule type: static
source location: test.c:49有关更多信息,请参见omp_loop 命令。
使用 omp_team 命令可输出当前组或指定并行区域组上的所有线程。例如:
(dbx) omp_team
team members:
0: t@1 state = in implicit barrier, task region = 262145
1: t@6 state = in implicit barrier, task region = 6
2: t@7 state = working, task region = 7
3: t@10 state = in implicit barrier, task region = 10有关更多信息,请参见omp_team 命令。
调试 OpenMP 代码时,除了关于当前或指定线程的有用信息之外,thread –info 还将输出 OpenMP 线程 ID、并行区域 ID、任务区域 ID 及 OpenMP 线程状态。有关更多信息,请参见thread 命令。