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

本地模式语法

print expression, ...

输出表达式 expression, ... 的值。

print -r expression

输出表达式 expression 的值,包括其继承成员(仅限于 C++)。

print +r expression

dbx 环境变量 output_inherited_members 为 on 时,不输出继承成员(仅限于 C++)。

print -d [-r] expression

显示动态类型而不是静态类型的表达式 expression(仅限于 C++)。

print +d [-r] expression

dbx 环境变量 output_dynamic_type 为 on 时,不使用动态类型的表达式 expression(仅限于 C++)。

print -s expression

输出当前 OpenMP 并列区域中每个线程的 expression 表达式的值(如果该表达式包含专用变量或线程专用变量)。

print -S [-r] [-d] expression

输出 expression 表达式的值,包括其静态成员(仅限于 C++)。

print +S [-r] [-d] expression

dbx 的环境变量 show_static_members 设置为 on 时不输出静态成员(仅限于 C++)。

print -p expression

调用 prettyprint 函数。

print +p expression

dbx 环境变量 output_pretty_print 为 on 时,不调用 prettyprint 函数。

print -L expression

如果输出对象 expression 大于 4K,强制输出。

print +l expression

如果表达式是一个字符串 (char *),则只输出地址,不输出字符。

print -l expression

('Literal') 不输出左侧内容。如果表达式是一个字符串 (char *),则不输出地址,只输出字符串的原始字符,且不带引号。

print -fformat expression

使用 format 作为整数、字符串或浮点表达式的格式。

print -Fformat expression

使用指定格式但不输出左侧内容(变量名或表达式)。

print -o expression

以序数值形式输出必须是枚举的 expression 值。此处也可以使用格式字符串 (-fformat)。对于非枚举型表达式,忽略此选项。

print -- expression

"--" 表示标志参数的结尾。如果 expression 以加号或减号开头,这很有用(有关作用域求解规则,请参见程序作用域)。

其中:

expression 是要输出其值的表达式。

format 是输出表达式时要使用的输出格式。如果该格式不适用于指定类型,则会默认忽略该格式字符串,dbx 将使用其内置输出机制。

允许的格式是 printf(3S) 命令使用的格式的子集。遵循以下约束: