Updated: 11 December 1998 |
OpenVMS Delta/XDelta Debugger Manual
Previous | Contents | Index |
Evaluates an expression and displays its value.
expression =
expression
The expression to be evaluated.
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.
FF+1=00000100 (1) A-1=00000009 (2)
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.
n;M
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).
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.
List the names and virtual addresses of all loaded executive images.
[sequence number];L
sequence number
On Alpha, specifies a single executive image.
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.
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 800F1000The 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 80402ED0The 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
Analyzes absolute and self-relative longword queues and displays the results of the analysis.
queue_header_address[,queue_type];Q
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.
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.
FFFFFFFF8000F00D;Q !Absolute at GF00D GF00D,0;Q !Absolute at GF00D GF00,1;Q !Self-relative at GF00
Force the system to bugcheck and crash.
;C
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
Lists information about an image that contains the address you supplied.
address-expression;W
sequence number, offset;W
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.
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.
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 00002530The 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
List information about the current main image and all shareable images that were activated, including those that were installed /RESIDENT.
;I
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.
$ 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
Specifies the display mode, either hardcopy terminal mode or DEC-CRT.
;H
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.
Displays the ASCII text string enclosed in backslashes.
\string\
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.
Terminates the DELTA debugging session. Use with DELTA only.
EXIT
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).
Previous | Next | Contents | Index |
Copyright © Compaq Computer Corporation 1998. All rights reserved. Legal |
4540PRO_005.HTML
|