This manual describes the OpenVMS Delta and XDelta debuggers, which are used to monitor the execution of user programs and the OpenVMS operating system on both VAX and Alpha systems.
Key Distinctions and Uses:
- OpenVMS Delta: Operates as an exception handler in a process context. It is used to debug user-mode programs or programs running in privileged processor mode at interrupt priority level (IPL) 0.
- OpenVMS XDelta: Is invoked directly from the hardware System Control Block (SCB) vector in a system context. It is used to debug programs running in any processor mode or at an elevated interrupt priority level. XDelta typically requires a standalone system and console terminal for operation.
Core Functionalities:
Both debuggers provide a command-line interface and share many commands for debugging, including:
- Invoking and Exiting: Procedures for starting and ending debugging sessions.
- Breakpoints: Setting, clearing, and proceeding from breakpoints (including initial and complex breakpoints). XDelta requires booting the system with debugger support for initial breakpoints.
- Memory and Register Access: Referencing and displaying contents of addresses and registers (general, floating-point, internal processor registers) in various display modes (byte, word, longword, quadword, ASCII, or instruction mode).
- Execution Control: Commands for single-stepping instructions (S), stepping over subroutines (O), proceeding from breakpoints (P), and continuing program execution to a specified address (G).
- Symbol and Expression Handling: Using predefined symbols for registers and system spaces, and evaluating numeric expressions with arithmetic operators.
- Command Strings: Executing sequences of debugger commands stored in memory.
Specialized Features and Considerations:
- Privileges: DELTA requires specific privileges (CMKRNL, CMEXEC) for debugging privileged code or accessing other processes, while XDelta does not (due to its system context).
- Debugging Kernel Mode Code: Requires specific setup, such as locking code into memory and making code pages writable.
- Debugging Installed/Shareable Images: Requires special linking and installation procedures to allow debugging with DELTA.
- Multiprocessor Environments: XDelta operates on one processor at a time, with other processors aware of set breakpoints.
- Alpha-Specific Features: Includes commands for validating queues, forcing system bugchecks/crashes, listing detailed information about loaded executive images and shareable images, and toggling video terminal display modes.
- Error Handling: Both debuggers use a simple "Eh?" message for invalid commands or unreadable addresses.
The manual also provides detailed examples for debugging sessions on both VAX and Alpha architectures.