Oracle Solaris Studio 12.2:使用 dbx 调试程序

输出变量和表达式

dbx 可以输出所有共享、专用和线程专用变量。如果尝试输出并行区域之外的线程专用变量,将输出主线程的副本。whatis 命令用于输出并行构造内共享变量和专用变量的数据共享属性。对于线程专用变量,无论这些变量是否在并行构造内,都将输出其数据共享属性。例如:


(dbx) whatis p_a
# OpenMP first and last private variable
int p_a;

print -s expression 命令用于输出当前 OpenMP 并行区域中每个线程的 expression 表达式的值(如果该表达式包含专用变量或线程专用变量)。例如:


(dbx) print -s p_a
thread t@3: p_a = 3
thread t@4: p_a = 3

如果该表达式不包含任何专用变量或线程专用变量,将仅输出一个值。