 |
OpenVMS Delta/XDelta Debugger Manual
- The base address of the program (determined
from the map file) is virtual address 30000. The base address is stored
in base register 0 with ;X, using the default offset. DELTA/XDELTA
displays the value in base register 0 just loaded, 30000.
- The address of a subroutine, 30070, is stored
in base register 1, specifying a new offset of 200 (to override the
default value of 100000). Note that this command could also have been
expressed as "x0+70,1,200;X". DELTA/XDELTA displays the value in base
register 1 just loaded, 30070.
- The ;x command is used to display the current
base registers. Note that for those not using the default offset, the
offset is also displayed.
- The S command is used to execute the first
instruction in the main routine. DELTA/XDELTA displays the address of
the next instruction, 30004, as x0+00000004 and then displays the
instruction at that address.
- The instruction at offset 10 from base
register 1 is displayed in instruction mode using the ! command.
= (Display Value of Expression)
Evaluates an expression and displays its value.
Format
expression =
Argument
expression
The expression to be evaluated.
Description
The Display Value of Expression command evaluates an expression and
displays its value in hexadecimal. The expression can be any valid
DELTA/XDELTA expression. See Section 2.1 for a description of
DELTA/XDELTA expressions.
All calculations and displays are in hexadecimal in the prevailing
length mode.
Example
FF+1=00000100 (1)
A-1=00000009 (2)
|
- FF16 and 116 are added
together. DELTA/XDELTA displays the sum in hexadecimal.
- 116 is subtracted from
A16. DELTA/XDELTA displays the result in hexadecimal.
;M (Set All Processes Writable)
Sets the address spaces of all processes to be writable or read-only by
your DELTA process. This command can be used only with DELTA. Use of
this command requires CMKRNL privilege.
On Alpha, this command also sets writable the general purpose registers
of other processes, if, after issuing the ;M command, you specify
another process with any command that takes the PID argument, such as
the / command.
Format
n;M
Argument
n
Specifies your process privileges for reading and writing at other
processes. If 0, your DELTA process can only read locations in other
processes; if 1, your process can read or write any location in any
process. If not specified, DELTA returns the current value of the M
(modify) flag (0 or 1).
Description
The Set All Processes Writable command is useful for changing values in
the running system.
Note
Use this activity very carefully during timesharing. It affects all
processes on the system. For this reason, your process must have
change-mode-to-kernel (CMKRNL) privilege to use this command. It is
safest to use this command only on a standalone system.
|
;L (List Names and Locations of Loaded Executive Images)
List the names and virtual addresses of all loaded executive images.
Format
[sequence number];L
Argument
sequence number
On Alpha, specifies a single executive image.
Description
On Alpha and VAX, use the ;L command when you are debugging code that
resides in system space. Although you use this command mostly with
XDELTA, you can use it with DELTA if your process has
change-mode-to-executive (CMEXEC) privilege and you are running a
program in executive mode.
This command lists the names and locations of the loaded modules of the
executive. A loading mechanism maps a number of images of the executive
into system space. The ;L command lists the currently loaded images
with their starting and ending virtual addresses. If you enter ;L
before all the executive images are loaded (for example, at an XDELTA
initial breakpoint), only those images that have been loaded will be
displayed.
On Alpha, this command displays additional information and provides a
second use, based on the additional information. For each loaded
executive image that is sliced into discontiguous image sections, the
display shows the sequence number for the executive image and the base
and ending addresses of each image section. A second use of this
command is to display the base and ending addresses of a single image
if you specify its sequence number.
Examples
The following example applies only to OpenVMS VAX. It shows the names
and the starting and ending virtual addresses of the three executive
images that are loaded in memory.
;L
PRIMITIVE_IO.EXE 800EAA00 800EBC00
SYSTEM_SYNCHRONIZATION.EXE 800EBC00 800ED400
SYSTEM_PRIMITIVES.EXE 800ED400 800F1000
|
The following examples apply only to OpenVMS Alpha.
In the following example, the names, the starting and ending virtual
addresses, and the sequence numbers for all the loaded executive images
are shown. Only one image, EXEC_INIT.EXE, was not split into image
sections. For every image that was split into image sections, it also
shows the name and the base and ending address of each section.
;L
Seq# Image Name Base End
0012 EXEC_INIT.EXE 8080C000 80828000
0010 SYS$CPU_ROUTINES_0101.EXE
Nonpaged read only 80038000 8003A200
Nonpaged read/write 80420200 80420A00
Initialization 80808000 80808400
000E ERRORLOG.EXE
Nonpaged read only 8002E000 80036600
Nonpaged read/write 8041BE00 80420200
Initialization 80804000 80804800
000C SYSTEM_SYNCHRONIZATION.EXE
Nonpaged read only 80024000 8002C800
Nonpaged read/write 8041A000 8041BE00
Initialization 80800000 80800800
. . .
. . .
. . .
0002 SYS$BASE_IMAGE
Nonpaged read only 80002000 80009400
Nonpaged read/write 80403000 80414C00
Fixup 80620000 80620600
Symbol Vector 8040B010 80414560
0000 SYS$PUBLIC_VECTORS.EXE
Nonpaged read only 80000000 80001C00
Nonpaged read/write 80400000 80403000
Fixup 8061E000 8061E200
Symbol Vector 80401BF0 80402ED0
|
The following example illustrates the use of the sequence number with
the ;L command to display information about one image. In this example,
the sequence number C for the SYSTEM_SYNCHRONIZATION.EXE module is
specified with the ;L command. (It is not necessary to specify the
leading zeros in the command.) The resulting display shows only the
SYSTEM_SYNCHRONIZATION.EXE module (whose sequence number is 000C). The
display includes the names of the image sections within the module and
their base and ending addresses.
C;L
Seq# Image Name Base End
000C SYSTEM_SYNCHRONIZATION.EXE
Nonpaged read only 80024000 8002C800
Nonpaged read/write 8041A000 8041BE00
Initialization 80800000 80800800
|
;Q (Validate Queue) (Alpha Only)
Analyzes absolute and self-relative longword queues and displays the
results of the analysis.
Format
queue_header_address[,queue_type];Q
Argument
queue_header_address
The queue header must be at least longword aligned.
queue_type
A queue type of zero (the default) represents an absolute queue. A
queue type of 1 indicates a self-relative queue.
Description
The validate queue function is similar to the one in the OpenVMS Alpha
System Dump Analyzer Utility. It can analyze both absolute and
self-relative longword queues and display the results of the analysis.
This function identifies various problems in the queue headers and
invalid backward links for queue entries and evaluates the readability
of both. For valid queues, it tells you the total number of entries.
For invalid queues, it tells you the queue entry number and the address
that is invalid and why.
Example
FFFFFFFF8000F00D;Q !Absolute at GF00D
GF00D,0;Q !Absolute at GF00D
GF00,1;Q !Self-relative at GF00
|
;C (Force the system to bugcheck and crash) (Alpha Only)
Force the system to bugcheck and crash.
Format
;C
Description
The ;C command forces the system to bugcheck and crash. You can do this
from wherever you are in your debugging session. Although this command
is for use primarily with XDELTA, you can also use it with DELTA, but
only in kernel mode. When you issue this command, the following message
is generated:
BUG$_DEBUGCRASH, Debugger forced system crash
|
;W (List Name and Location of a Single Loaded Image) (Alpha Only)
Lists information about an image that contains the address you supplied.
Format
address-expression;W
Format
sequence number, offset;W
Arguments
address-expression
An address contained within an executive image or a user image.
sequence number
The identifier assigned to an executive image.
offset
The distance from the base address of the image.
Description
The ;W command is used for debugging code that resides in system or
user space. You can use this command with XDELTA for debugging an
executive image. You can also use this command with DELTA.
To examine the executive image list, you must be running in executive
mode or your process must have change-mode-to-executive (CMEXEC)
privilege.
This command can be used in two ways. In the first way, if you supply
an address that you are trying to locate, the command lists the name of
the executive or user image that contains the address, its base and
ending addresses, and the offset of the address from the base of the
image. For any executive image that has been sliced, it also displays
its sequence number. The offset can be used with the link map of the
image to locate the actual code or data.
In the second way, if you supply the sequence number of a sliced
executive image and an offset, the command computes and displays the
current location in memory.
Examples
The first form of the command takes a system space address as a
parameter and attempts to locate that address within the loaded
executive images. This command works for both sliced and unsliced
loadable executive images. The output is very similar to ;L, except the
offset is displayed for you, as shown in the following example:
80026530;W
Seq# Image Name Base End Image Offset
000C SYSTEM_SYNCHRONIZATION.EXE
Nonpaged read only 80024000 8002C800 00002530
|
The second form of the command takes a loadable executive image
sequence number and an image offset from the map file as parameters.
The output, again, is very similiar to ;L, except that the system space
address that corresponds to the image offset is displayed, as shown in
the following example:
C,2530;W
Seq# Image Name Base End Address
000C SYSTEM_SYNCHRONIZATION.EXE
Nonpaged read only 80024000 8002C800 80026530
|
;I (List Information About the Current Main Image and Its Shareable Images) (Alpha Only)
List information about the current main image and all shareable images
that were activated, including those that were installed /RESIDENT.
Format
;I
Description
The ;I command peruses the image control block (IMCB) list and displays
information about the current main image and all shareable images that
were activated, including those that were installed /RESIDENT. The ;I
command differs from the ;L command which displays information about
the loadable image database.
The display of the ;I command is similar to the ;L command display. It
shows the image name, the starting and ending addresses, the symbol
vector address, and some flags. The command is useful for debugging
shareable images. For example, the display enables you to determine
where LIBRTL is mapped.
The field flags are M, S, and P. The flag M indicates the main image; S
or P indicates images that are installed as shareable or protected,
respectively.
Unlike the ;L command, which only works from kernel mode or when you
have CMEXEC or CMKRNL privileges, the ;I command works from any mode.
However, to modify the IMCB database, you must be in executive or
kernel mode.
For sliced main and shareable images, the ;I command also includes an
entry for each resident code section and each compressed data section,
which shows the base and end address for each section.
The ;I command is implemented only for DELTA.
Example
$ define lib$debug delta
$ run/debug hello
Alpha/VMS DELTA Version 1.5
Brk 0 at 00020040
00020040! LDA SP,#XFFD0(SP) ;i
Image Name Base End Symbol-Vector Flags
HELLO 00010000 000301FF M
DECC$SHR 00032000 001233FF 00106B90 S
DPML$SHR 0012C000 001AC5FF 0019DED0 S
LIBRTL 001AE000 0025E7FF 00240790 S
Resident Code Sections:
8015A000 801BBA00
LIBOTS 00124000 0012A1FF 00128000 S
Resident Code Sections:
801BC000 801C2C00
Compressed Data Sections:
00124000 00124A00
00126000 00126800
00128000 00128600
0012A000 0012A200
SYS$PUBLIC_VECTORS 80401C98 80403028 80401C98
DELTA 00260000 002943FF 00260000
SYS$BASE_IMAGE 8040C5B0 804163E0 8040C5B0
|
;H (Video Terminal Display Command) (Alpha Only)
Specifies the display mode, either hardcopy terminal mode or DEC-CRT.
Format
;H
Description
The ;H command enables you to choose the display mode of DELTA/XDELTA
output. You can display output either in hardcopy terminal mode or
DEC-CRT mode. The default display is DEC-CRT mode. You can toggle back
and forth from one display mode to the other by repeating the ;H
command.
\string\ (Immediate mode text display command) (Alpha Only)
Displays the ASCII text string enclosed in backslashes.
Format
\string\
Description
This mode is useful when creating your own predefined command strings.
Use the backslash to begin and end an ASCII text string. Follow the
ending backslash with a terminator. When DELTA or XDELTA encounters the
ending backslash and terminator, it prints the ASCII text string.
EXIT (Exit from DELTA Debugging Session)
Terminates the DELTA debugging session. Use with DELTA only.
Format
EXIT
Description
Use the EXIT command to terminate a DELTA debugging session. You cannot
use EXIT in XDELTA.
You may have to enter EXIT twice, such as when your program terminates
execution by the $EXIT system service or by the Return key (to DCL).
|