OpenVMS Delta/XDelta Debugger ManualOrder Number: AA--PWCAB--TE
November 1996
This manual describes the OpenVMS Delta and XDelta debuggers. OpenVMS Delta is used to debug programs that run in privileged processor mode at interrupt priority level 0. OpenVMS XDelta is used to debug programs that run at an elevated interrupt priority level.
Revision/Update Information:
This manual supersedes the OpenVMS Delta/XDelta Debugger Manual, OpenVMS VAX Version 6.0
Software Version: OpenVMS Alpha Version 7.1 OpenVMS VAX Version 7.1
November 1996 Digital Equipment Corporation makes no representations that the use of its products in the manner described in this publication will not infringe on existing or future patent rights, nor do the descriptions contained in this publication imply the granting of licenses to make, use, or sell equipment or software in accordance with the description. Possession, use, or copying of the software described in this publication is authorized only pursuant to a valid written license from Digital or an authorized sublicensor. Digital conducts its business in a manner that conserves the environment and protects the safety and health of its employees, customers, and the community. © Digital Equipment Corporation 1996. All rights reserved. The following are trademarks of Digital Equipment Corporation: Bookreader, BI, CI, DECdirect, Digital, HSC, MicroVAX, OpenVMS, RA, RL, RX01, TU, UDA, VAX, VAX-11/750, VAX-11/780, VAX 6000, VAX 8300, VAX 8350, VAX 8550, VAX 8600, VAX 9000, VAXBI, VAXft, VAX MACRO, VAXstation, VMS, VT, VT340, XMI, and the DIGITAL logo. All other trademarks and registered trademarks are the property of their respective holders.
ZK4540 The OpenVMS documentation set is available on CD-ROM.
PrefaceIntended AudienceThis manual is written for programmers who debug system code for device drivers and other images that execute in privileged processor-access modes or at an elevated interrupt priority level (IPL). Document StructureThis manual consists of the following chapters and appendixes:
Related DocumentsThis manual refers to several documents that contain the primary descriptions of topics discussed in this manual. The following table lists the topics and those documents.
For additional information on the Open Systems Software Group (OSSG) products and services, access the Digital OpenVMS World Wide Web site. Use the following URL:
Reader's CommentsDigital welcomes your comments on this manual. Print or edit the online form SYS$HELP:OPENVMSDOC_COMMENTS.TXT and send us your comments by:
How To Order Additional DocumentationUse the following table to order additional documentation or information. If you need help deciding which documentation best meets your needs, call 800-DIGITAL (800-344-4825).
ConventionsThe name of the OpenVMS AXP operating system has been changed to the OpenVMS Alpha operating system. Any references to OpenVMS AXP or AXP are synonymous with OpenVMS Alpha or Alpha. In this manual, every use of DECwindows and DECwindows Motif refers to DECwindows Motif for OpenVMS software. The following conventions are also used in this manual:
Chapter 1
|
$ DEFINE LIB$DEBUG SYS$LIBRARY:DELTA |
$ RUN/DEBUG MYPROG |
When DELTA begins execution, it displays its name and current version number. DELTA displays the first executable instruction in the program with which it is linked. It displays the address of that instruction, a separator (a slash (/) on VAX and an exclamation point (!) on Alpha), and the instruction and its operands.
On VAX, the name, current version number, and address are displayed as follows:
DELTA Version 5.5 address/instruction operands |
On Alpha, the name, current version number, and address are displayed as follows:
AlphaVMS DELTA Version 1.0 address!instruction operands |
On Alpha and VAX, DELTA is then ready for your commands.
You can redirect output from a DELTA debugging session by assigning DBG$DELTA to the I/O device.
The image activator on OpenVMS Alpha systems automatically activates SYS$SHARE:SYS$SSISHR.EXE when an image is debugged using the RUN/DEBUG command or is linked using the /DEBUG qualifier. The presence of this image should not alter your program's correctness, but if your program is sensitive to virtual address layout or if for some reason SYS$SHARE:SYS$SSISHR.EXE is not installed properly on your system, you may want to bypass its automatic activation. To keep the image activator from activating SYS$SHARE:SYS$SSISHR.EXE for you, define the logical name SSI$AUTO_ACTIVATE to be "OFF" before running the program to be debugged with Delta. |
To exit from DELTA, type EXIT and press the Return key. When you are in
user mode, you exit DELTA and your process remains. When you are in a
privileged access mode, your process can be deleted.
1.6 Invoking XDELTA
To invoke XDELTA, perform the following steps:
1 BRK at address address/instruction |
Never clear breakpoint 1 from any code being debugged in XDELTA. If you accidentally clear breakpoint 1 and no other breakpoints are set, you cannot use XDELTA until you reboot again with XDELTA. |
BRK 0 at address address!instruction |
;P [Return] |
On VAX, the procedure for booting the system with XDELTA differs, depending on the model of your system. Each procedure uses commands that include XDELTA in memory and cause the execution of a breakpoint in OpenVMS initialization routines. Execution of the breakpoint instruction transfers program control to a fault handler located in XDELTA.
Some boot procedures require the use of the /R5 qualifier with the boot command. The /R5 qualifier enters a value for a flag that controls the way XDELTA is loaded. The flag is a 32-bit hexadecimal integer loaded into R5 as input to VMB.EXE, the primary boot program. Refer to Table 1-1 for a description of the valid values for this flag.
When you deposit a boot command qualifier value in R5, make sure that any other values you would normally deposit are included. For example, if you were depositing the number of the system root directory from which you were booting and an XDELTA value, R5 would contain both values. |
For directions for booting XDelta on a VAX computer, refer to the OpenVMS VAX supplement specific to your computer.
On Alpha, the procedure for booting all Alpha systems with XDELTA is the same. For one example of how to boot XDELTA, use the boot command as follows:
>>> BOOT -FLAG 0,7 |
The flag for specifying boot qualifiers is a 64-bit integer that is passed directly as input to APB.EXE, the primary boot program. Refer to Table 1-1 for a description of the valid values for this flag.
| Value | Description |
|---|---|
| 0 | Normal, nonstop boot (default) |
| 1 | Stop in SYSBOOT |
| 2 | Include XDELTA, but do not take the initial breakpoint |
| 3 | Stop in SYSBOOT, include XDELTA, but do not take the initial breakpoint |
| 6 | Include XDELTA, and take the initial breakpoint |
| 7 | Include XDELTA, stop in SYSBOOT, and take the initial breakpoint at system initialization |
On Alpha and VAX, if you set the boot control flag to 7, XDELTA will stop at an initial breakpoint during the system boot process. You can then set other breakpoints or examine locations in memory.
Your program can also call the routine INI$BRK, which in turn executes the first XDELTA breakpoint. Refer to Section 1.8 for the breakpoint procedure.
Once loaded into memory, XDELTA can also be invoked at any time from the console by requesting a software interrupt. For example, you might need to use a software interrupt to enter XDELTA if your program is in an infinite loop or no INI$BRK call had been made.
On VAX, INI$BRK is defined as XDELTA's breakpoint 1.
Never clear breakpoint 1 from any code being debugged in XDELTA. If you accidentally clear breakpoint 1 and no other breakpoints are set, you cannot use XDELTA again until you reboot with XDELTA. |
On Alpha, INI$BRK is defined as XDELTA's breakpoint 0. It is not
possible to clear breakpoint 0 from any code being debugged in XDELTA.
1.7.1 Requesting Interrupts on VAX Computers
For a VAX 8530, 8550, 8600, 8650, 8810 (8700), 8820, 8820-N (8800), 8830, 8840, VAX-11/780, or VAX-11/785 computer, enter the following commands at the console terminal to request the interrupt:
$ [Ctrl/P] >>> HALT >>> D/I 14 E >>> C |
For a VAX 9000 computer, enter the following commands at the console terminal to request the interrupt:
$ [Ctrl/P] >>> HALT/CPU=ALL >>> D/I 14 E >>> C/CPU=ALL |
For a VAX 6000 series, 8200, 8250, 8300, 8350, VAX-11/730, or a VAX-11/750 computer, enter the following commands:
$ [Ctrl/P] >>> D/I 14 E >>> C |
For a VAXstation 3520 or 3540 computer, perform the following steps:
>>> D/I 14 E >>> C/ALL |
For a VAXft 3000, VAXft-410, VAXft-610, or VAXft-612 computer, enter the following commands at the console terminal to request the interrupt:
$ [Break] or [F5] >>> HALT >>> D/I 14 E >>> CONT >>> PIO |
For a VAX 7000 or VAX 10000 series computer, enter the following commands at the console terminal to request the interrupt. If you are operating in secure mode, first set the keyswitch to ENABLE before entering these commands.
$ [Ctrl/P] >>> D IPR:14 E >>> CONT |
For a VAXstation 2000, MicroVAX 2000, MicroVAX 3300/3400 series, MicroVAX or VAXstation 3500/3600 series, MicroVAX 3800/3900 series, VAX 4000 series, or MicroVAX II computer, perform the following steps:
>>> D/I 14 E >>> C |
For an alternative method of accessing OpenVMS through a lower priority interrupt, refer to the OpenVMS System Manager's Manual.
| Next | Contents | Index |
|
|
|
|
Copyright © Compaq Computer Corporation 1998. All rights reserved. Legal |
4540PRO.HTML
|
|