Sun Studio 12 Update 1: Debugging a Program With dbx

Syntax

The stop command has the following general syntax:

stop event_specification [modifier]

When the specified event occurs, the process is stopped.

Native Mode Syntax

The following specific syntaxes are some of the more important syntaxes that are valid in native mode. For additional events, see Setting Event Specifications.

stop [ -update ]

Stop execution now. Only valid within the body of a when command.

stop -noupdate

Stop execution now but do not update the Sun Studio IDE Debugger windows.

stop access mode address_expression [,byte_size_expression ]

Stop execution when the memory specified by address_expression has been accessed. See also Stopping Execution When an Address Is Accessed.

stop at line-number

Stop execution at line_number. See also Setting a stop Breakpoint at a Line of Source Code.

stop change variable

Stop execution when the value of variable has changed.

stop cond condition_expression

Stop execution when the condition denoted by condition_expression evaluates to true.

stop in function

Stop execution when function is called. See also Setting a stop Breakpoint in a Function.

stop inclass class_name [ -recurse | -norecurse ]

C++ only: Set breakpoints on all member functions of a class, struct, union, or template class. -norecurse is the default. If -recurse is specified, the base classes are included. See also Setting Breakpoints in All Member Functions of a Class.

stop infile file_name

Stop execution when any function in file_name is called.

stop infunction name

C++ only: Set breakpoints on all non-member functions name.

stop inmember name

C++ only: set breakpoints on all member functions name. See Setting Breakpoints in Member Functions of Different Classes.

stop inobject object_expression [ -recurse | -norecurse ]

C++ only: set breakpoint on entry into any non-static method of the class and all its base classes when called from the object object_expression. -recurse is the default. If -norecurse is specified, the base classes are not included. See also Setting Breakpoints in Objects.

line_number is the number of a source code line.

function is the name of a function.

class_name is the name of a C++ class, struct, union, or template class.

mode specifies how the memory was accessed. It can be composed of one or all of the letters:

r

The memory at the specified address has been read.

w

The memory has been written to.

x

The memory has been executed.

mode can also contain the following:

a

Stops the process after the access (default).

b

Stops the process before the access.

name is the name of a C++ function.

object_expression identifies a C++ object.

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 during the extent of 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 lwp_id

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.

stop access mode class_name.field_name

Stop execution when the memory specified by class_name.field_name has been accessed.

stop at line_number

Stop execution at line_number.

stop at file_name:line_number

Stop execution at line_number in file_name.

stop change class_name.field_name

Stop execution when the value of field_name in class_name has changed.

stop classload

Stop execution when any class is loaded.

stop classload class_name

Stop execution when class_name is loaded.

stop classunload

Stop execution when any class is unloaded.

stop classunload class_name

Stop execution when class_name is unloaded.

stop cond condition_expression

Stop execution when the condition denoted by condition_expression evaluates to true.

stop in class_name.method_name

Stop execution when class_name.method_name has been entered, and the first line is about to be executed. If no parameters are specified and the method is overloaded, a list of methods is displayed.

stop in class_name.method_name([parameters])

Stop execution when class_name.method_name has been entered, and the first line is about to be executed.

stop inmethod class_name.method_name

Set breakpoints on all non-member methods class_name.method_name.

stop inmethod class_name.method_name ([parameters])

Set breakpoints on all non-member methods class_name.method_name.

stop throw

Stop execution when a Java exception has been thrown.

stop throw type

Stop execution when a Java exception of type has been thrown.

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.

condition_expression can be any expression, but it must evaluate to an integral type.

field_name is the name of a field in the class.

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.

mode specifies how the memory was accessed. It can be composed of one or all of the letters:

r

The memory at the specified address has been read.

w

The memory has been written to.

mode can also contain the following:

b

Stops the process before the access.

The program counter will point at the offending instruction.

parameters are the method’s parameters.

type is a type of Java exception. -unhandled or -unexpected can be used for type.

The following modifiers are valid in Java mode:

-if condition_expression

The specified event occurs 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, 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.

See also stopi Command for setting a machine-level breakpoint.

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