Sun Studio 12: Debugging a Program With dbx

print Command

In native mode, the print command prints the value of an expression. In Java mode, the print command prints the value of an expression, local variable, or parameter.

Native Mode Syntax

print expression, ...

Print the value of the expression(s) expression, ... .

print -r expression

Print the value of the expression expression including its inherited members (C++ only).

print +r expression

Don’t print inherited members when the dbx output_inherited_members environment variable is on (C++ only).

print -d [-r] expression

Show dynamic type of expression expression instead of static type (C++ only).

print +d [-r] expression

Don’t use dynamic type of expression expression when the dbx output_dynamic_type environment variable is on (C++ only).

print -p expression

Call the prettyprint function.

print +p expression

Do not call the prettyprint Function when the dbx output_pretty_print environment variable is on.

print -L expression

If the printing object expression is larger than 4K, enforce the printing.

print +l expression

If the expression is a string (char *), print the address only, do not print the literal.

print -l expression

('Literal’) Do not print the left side. If the expression is a string (char *), do not print the address, just print the raw characters of the string, without quotes.

print -fformat expression

Use format as the format for integers, strings, or floating-point expressions.

print -Fformat expression

Use the given format but do not print the left hand side (the variable name or expression).

print -o expression

Print the value of expression, which must be an enumeration as an ordinal value. You may also use a format string here (-fformat). This option is ignored for non-enumeration expressions.

print -- expression

”--’ signals the end of flag arguments. This is useful if expression may start with a plus or minus (seeProgram Scope for scope resolution rules.

where:

expression is the expression whose value you want to print.

format is the output format you want used to print the expression. If the format does not apply to the given type, the format string is silently ignored and dbx uses its built-in printing mechanism.

The allowed formats are a subset of those used by the printf(3S) command. The following restrictions apply:

Java Mode Syntax

print expression, ... | ...

Print the value(s) of the expression(s) expression, ... or identifier(s) identifier, ....

print -r expression | identifier

Print the value of expression or identifier including its inherited members.

print +r expression | identifier

Don’t print inherited members when the dbx output_inherited_members environment variable is on.

print -d [-r] expression | identifier

Show dynamic type of expression or identifier instead of static type.

print +d [-r] expression | identifier

Don’t use dynamic type of expression or identifier when the dbx output_dynamic_type environment variable is on.

print -- expression | identifier

”--’ signals the end of flag arguments. This is useful if expression may start with a plus or minus (see Program Scope for scope resolution rules.

where:

class_name is the name of a Java class, using either the package path (using period (.) as a qualifier; for example, test1.extra.T1.Inner) or the full path name (preceded by a pound sign (#) and using slash (/) and dollar sign ($) as qualifiers; for example, #test1/extra/T1$Inner). Enclose class_name in quotation marks if you use the $ qualifier.

expression is the Java expression whose value you want to print.

field_name is the name of a field in the class.

identifier is a local variable or parameter, including this, the current class instance variable (object_name.field_name) or a class (static) variable (class_name.field_name).

object_name is the name of a Java object.