1 /ACTIVATING
Causes the debugger to break when a new process comes under
debugger control. The debugger prompt is displayed when the first
process comes under debugger control. This enables you to enter
debugger commands before the program has started execution. See
also the /TERMINATING qualifier.
2 /AFTER
/AFTER:n
Specifies that break action not be taken until the nth time the
designated breakpoint is encountered (n is a decimal integer).
Thereafter, the breakpoint occurs every time it is encountered
provided that conditions in the WHEN clause (if specified) are
true. The SET BREAK/AFTER:1 command has the same effect as SET
BREAK.
3 /BRANCH
Causes the debugger to break on every branch instruction
encountered during program execution. See also the /INTO and
/OVER qualifiers.
4 /CALL
Causes the debugger to break on every call instruction
encountered during program execution, including the RET
instruction. See also the /INTO and /OVER qualifiers.
5 /EVENT
/EVENT=event-name
Causes the debugger to break on the specified event (if that
event is defined and detected by the current event facility).
If you specify an address expression with /EVENT, causes the
debugger to break whenever the specified event occurs for that
address expression. You cannot specify an address expression with
certain event names.
Event facilities are available for programs that call Ada or SCAN
routines or that use POSIX threads services. Use the SHOW EVENT_
FACILITY command to identify the current event facility and the
associated event names.
6 /EXCEPTION
Causes the debugger to break whenever an exception is signaled.
The break action occurs before any application-declared exception
handlers are invoked.
As a result of a SET BREAK/EXCEPTION command, whenever your
program generates an exception, the debugger suspends program
execution, reports the exception, and displays its prompt. When
you resume execution from an exception breakpoint, the behavior
is as follows:
o If you enter a GO command without an address-expression
parameter, the exception is resignaled, thus allowing any
application-declared exception handler to execute.
o If you enter a GO command with an address-expression
parameter, program execution continues at the specified
location, thus inhibiting the execution of any application-
declared exception handler.
On Alpha, you must explicitly set a breakpoint in the
exception handler before entering a STEP or a GO command to
get the debugger to suspend execution within the handler.
o If you enter a CALL command, the routine specified is
executed.
On Alpha processors, an exception might not be delivered (to
the program or debugger) immediately after the execution of the
instruction that caused the exception. Therefore, the debugger
might suspend execution on an instruction beyond the one that
actually caused the exception.
7 /HANDLER
Causes the debugger to scan the call stack and attempt to set a
breakpoint on every established frame-based handler whenever the
program being debugged has an exception. The debugger does not
discriminate between standard RTL handlers and user-established
handlers.
On Alpha and Integrity servers, most RTLs establish a jacket
RTL handler on a frame where the user program has defined a
handler. The RTL jacket performs setup, argument manipulation,
and dispatch to the user written handlers. When processing the
exception, the debugger can only set the breakpoint on the RTL
jacket handler, because that is the address on the call stack. If
the debugger suspends program execution in a jacket RTL handler,
you can usually reach the user-defined handler by finding the
dispatch point(s) via some number of STEP/CALLs followed by a
STEP/INTO.
See the OpenVMS Calling Standard for more information on frame-
based handlers.
If the jacket RTL handler is part of an installed shared image
such as ALPHA LIBOTS, the debugger cannot set a breakpoint on it
(no private user mode write access). In this case, activate ALL
RTLs as private images via logical names. For example:
$DEFINE LIBOTS SYS$SHARE:LIBOTS.EXE;
Note that the trailing semicolon (;) is required. Note also that
all (or none) of your shared installed RTLs should be activated
privately. Use SHOW IMAGE/FULL data to realize the list of images
with system space code sections and then define logicals for all
of them and rerun your debug session.
8 /INSTRUCTION
/INSTRUCTION
/INSTRUCTION[=(opcode[, . . . ])]
When you do not specify an opcode, causes the debugger to break
on every instruction encountered during program execution.
See also the /INTO and /OVER qualifiers.
9 /INTO
(Default) Applies only to breakpoints set with the following
qualifiers (that is, when an address expression is not explicitly
specified):
/BRANCH
/CALL
/INSTRUCTION
/LINE
When used with those qualifiers, /INTO causes the debugger to
break at the specified points within called routines (as well as
within the routine in which execution is currently suspended).
The /INTO qualifier is the default and is the opposite of /OVER.
When using /INTO, you can further qualify the break action with
/[NO]JSB, /[NO]SHARE, and /[NO]SYSTEM.
10 /LINE
Causes the debugger to break on the beginning of each source
line encountered during program execution. See also the /INTO and
/OVER qualifiers.
11 /MODIFY
Causes the debugger to break on every instruction that writes to
and modifies the value of the location indicated by the address
expression. The address expression is typically a variable name.
The SET BREAK/MODIFY command acts exactly like a SET WATCH
command and operates under the same restrictions.
If you specify an absolute address for the address expression,
the debugger might not be able to associate the address with
a particular data object. In this case, the debugger uses a
default length of 4 bytes. You can change this length, however,
by setting the type to either WORD (SET TYPE WORD, which changes
the default length to 2 bytes) or BYTE (SET TYPE BYTE, which
changes the default length to 1 byte). SET TYPE LONGWORD restores
the default length of 4 bytes.
12 /OVER
Applies only to breakpoints set with the following qualifiers
(that is, when an address expression is not explicitly
specified):
/BRANCH
/CALL
/INSTRUCTION
/LINE
When used with those qualifiers, /OVER causes the debugger to
break at the specified points only within the routine in which
execution is currently suspended (not within called routines).
The /OVER qualifier is the opposite of /INTO (which is the
default).
13 /RETURN
Causes the debugger to break on the return instruction of the
routine associated with the specified address expression (which
can be a routine name, line number, and so on). Breaking on the
return instruction enables you to inspect the local environment
(for example, obtain the values of local variables) while
the routine is still active. Note that the view of a local
environment may differ depending on your architecture. On Alpha
processors, this qualifier can be applied to any routine.
The address-expression parameter is an instruction address within
a routine. It can simply be a routine name, in which case it
specifies the routine start address. However, you can also
specify another location in a routine, so you can see only those
returns that are taken after a certain code path is followed.
A SET BREAK/RETURN command cancels a previous SET BREAK if you
specify the same address expression.
14 /SHARE
/SHARE (default)
/NOSHARE
Qualifies /INTO. Use with /INTO and one of the following
qualifiers:
/BRANCH
/CALL
/INSTRUCTION
/LINE
The /SHARE qualifier permits the debugger to break within
shareable image routines as well as other routines. The /NOSHARE
qualifier specifies that breakpoints not be set within shareable
images.
15 /SILENT
/SILENT
/NOSILENT (default)
Controls whether the "break . . . " message and the source line
for the current location are displayed at the breakpoint. The
/NOSILENT qualifier specifies that the message is displayed. The
/SILENT qualifier specifies that the message and the source line
are not displayed. The /SILENT qualifier overrides /SOURCE. See
also the SET STEP [NO]SOURCE command.
16 /SOURCE
/SOURCE (default)
/NOSOURCE
Controls whether the source line for the current location is
displayed at the breakpoint. The /SOURCE qualifier specifies that
the source line is displayed. The /NOSOURCE qualifier specifies
that no source line is displayed. The /SILENT qualifier overrides
/SOURCE. See also the SET STEP [NO]SOURCE command.
17 /SYSEMULATE
/SYSEMULATE[=mask]
(Alpha only) Stops program execution and returns control to the
debugger after the operating system emulates an instruction.
The optional argument mask is an unsigned quadword with bits
set to specify which emulated instruction groups shall cause
breakpoints. The only emulated instruction group currently
defined consists of the BYTE and WORD instructions. Select this
instruction group by setting bit 0 of mask to 1.
If mask is not specified or if mask = FFFFFFFFFFFFFFFF, the
debugger stops program execution when the operating system
emulates any instruction.
18 /SYSTEM
/SYSTEM (default)
/NOSYSTEM
Qualifies /INTO. Use with /INTO and one of the following
qualifiers:
/BRANCH
/CALL
/INSTRUCTION
/LINE
The /SYSTEM qualifier permits the debugger to break within system
routines (P1 space) as well as other routines. The /NOSYSTEM
qualifier specifies that breakpoints not be set within system
routines.
19 /TEMPORARY
Causes the breakpoint to disappear after it is triggered (the
breakpoint does not remain permanently set).
20 /TERMINATING
Causes the debugger to break when a process does an image exit.
The debugger gains control and displays its prompt when the
last image of a one-process or multiprocess program exits. A
process is terminated when the image has executed the $EXIT
system service and all of its exit handlers have executed. See
also the /ACTIVATING qualifier.
21 /UNALIGNED_DATA
(Alpha and Integrity servers only) Causesthe debugger to break
directly after any instruction that accesses unaligned data (for
example, after a load word instruction that accesses data that is
not on a word boundary).