Sun Studio 12: Debugging a Program With dbx

Syntax

The trace command has the following general syntax:

trace event_specification [modifier]

When the specified event occurs, a trace is printed.

Native Mode Syntax

The following specific syntaxes are valid in native mode:

trace -file file_name

Direct all trace output to the given file_name. To revert trace output to standard output use - for file_name. trace output is always appended to file_name. It is flushed whenever dbx prompts and when the application has exited. The file_name is always re-opened on a new run or resumption after an attach.

trace step

Trace each source line, function call, and return.

trace next -in function

Trace each source line while in the given function.

trace at line_number

Trace given source line..

trace in function

Trace calls to and returns from the given function.

trace inmember function

Trace calls to any member function named function.

trace infunction function

Trace when any function named function is called.

trace inclass class

Trace calls to any member function of class.

trace change variable

Trace changes to the variable.

where:

file_name is the name of the file to which you want trace output sent.

function is the name of a function.

line_number is the number of a source code line.

class is the name of a class.

variable is the name of a variable.

The following modifiers are valid in native mode.

-if condition_expression

The specified event occurs only when condition_expression evaluates to true.

-in function

Execution stops only if the specified event occurs in function.

-count number

Starting at 0, each time the event occurs, the counter is incremented. When number is reached, execution stops and the counter is reset to 0.

-count infinity

Starting at 0, each time the event occurs, the counter is incremented. Execution is not stopped.

-temp

Create a temporary breakpoint that is deleted when the event occurs.

-disable

Create the breakpoint in a disabled state.

-instr

Do instruction level variation. For example, step becomes instruction level stepping, and at takes a text address for an argument instead of a line number.

-perm

Make this event permanent across debug. Certain events (like breakpoints) are not appropriate to be made permanent. delete all will not delete permanent handlers, use delete hid.

-hidden

Hide the event from the status command. Some import modules may choose to use this. Use status -h to see them.

-lwp lwpid

Execution stops only if the specified event occurs in the given LWP.

-thread thread_id

Execution stops only if the specified event occurs in the given thread.

Java Mode Syntax

The following specific syntaxes are valid in Java mode.

trace -file file_name

Direct all trace output to the given file_name. To revert trace output to standard output use - for file_nametrace output is always appended to file_name. It is flushed whenever dbxprompts and when the application has exited. The file_nameis always re-opened on a new run or resumption after an attach.

trace at line_number

Trace line_number.

trace at file_name.line_number

Trace give source file_name.line_number.

trace in class_name.method_name

Trace calls to and returns from class_name. method_name.

trace in class_name.method_name([parameters]).

Trace calls to and returns from class_name.method_name([parameters]).

trace inmethod class_name.method_name

Trace when any method named class_name.method_name is called.

trace inmethod class_name.method_name[(parameters)]

Trace when any method named class_name.method_name [(parameters)] is called.

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.

file_name is the name of a file.

line_number is the number of a source code line.

method_name is the name of a Java method.

parameters are the method’s parameters

The following modifiers are valid in Java mode.

-if condition_expression

The specified event occurs and the trace is printed only when condition_expression evaluates to true.

-count number

Starting at 0, each time the event occurs, the counter is incremented. When number is reached, the trace is printed and the counter is reset to 0.

-count infinity

Starting at 0, each time the event occurs, the counter is incremented. Execution is not stopped.

-temp

Create a temporary breakpoint that is deleted when the event occurs and the trace is printed. If -temp is used with -count, the breakpoint is deleted only when the counter is reset to 0.

-disable

Create the breakpoint in a disabled state.

For a list and the syntax of all events see Setting Event Specifications.