MVS Dynamic Debug Tool (MVSDDT)
The MVS Dynamic Debug
Tool is a client/server debugging tool for MVS 3.8 running under
Hercules. MVSDDT consists of three major components:
- A server which
executes as a batch job running the MVSDDT program on MVS
- A TSO command
processor which is a version of the server used for debugging programs
executing in the foreground under TSO
- The client which is
a Java application running on any platform supporting version 6 of the
Java Runtime Environment
The server attaches the
program to be debugged, and then monitors and controls its execution.
You interact with the server using the facilities of the client's
graphical user interface (GUI). The communication path between the
client and the server is defined by a TCP/IP connection. To facilitate
this connection, you simply define a pair of CTCT devices in your
Hercules configuration. These definitions provide the MVS system with a
pair of CTC devices which the MVSDDT program can read from and write
to; no actual TCP/IP support is required on the MVS system.
The client GUI displays
information in multiple windows on your desktop:
- The DDT Command
- Separate windows for
each CSECT contained in the load module being debugged
- Windows displaying
various areas of storage
- Watch list windows
which monitor changes to storage variables
significantly more real estate for displaying information about the
program being debugged than even the largest 3270, MVSDDT has a much
smaller footprint in an MVS address space than other debuggers because
all the presentation code resides in the client. The current MVSDDT
storage requirement is approximately 18K; the DDT command processor is
slightly larger at approximately 20K; the DDT SVC routine and
related code requires approximately 12K in the pageable link pack area
(PLPA). In addition, 1K of storage is required for each data block
waiting to be transmitted, or any command currently being processed;
each active breakpoint requires 64 bytes of storage.
The following are the minimum requirements for running the DDT client
- A hardware/software platform which provides a graphical user
- Java runtime support (JRE-6 or above)
Additional considerations apply to the Java installer/uninstaller
program, and are discussed below in the section titled "Downloading and
Installing the MVSDDT Package".
- A hardware/software platform supported by Hercules (3.07 or above)
- MVS 3.8J
MVSDDT is developed and
supported by Ms. Kitty Programming
DDT is provided as freeware; you may download it and use it without
charge. The source material is copyrighted and remains the property of Ms.
Kitty Programming Werks.
This section provides a brief description of the
DDT client's GUI
components. For complete information on the client GUI, you should
download the DDT reference manual; see "getting More Information" below.
DDT Command Center
The DDT Command Center
is the central point of control where you can specify various
configuration options, initiate and terminate debug sessions, and
view information related to the structure of the load modules being
debugged. All the breakpoints that you have set in the program being
debugged are tracked here, allowing you to quickly display the code
where they are located, or easily remove them from your code.
CSECT windows present a
view of the instructions contained in a particular CSECT, the current
PSW, and current general purpose registers. From these windows, you can
set and remove breakpoints, jump to a specified location in the CSECT,
and modify the contents of the GPRs. Buttons are also provided to allow
you to step through your code a single instruction at a time,
stop program execution (for example if it is looping), and start
execution again following a step or stop operation.
You can open a storage window by double-clicking on one of the general
purpose register's values; you can even double-click on a
base-displacement address in an instruction, and a storage window will
be opened using the current value of the referenced base register (and
index register if applicable). You can open as many CSECT windows as
you like, including more than one window for the same CSECT. If the
program beings debugged is a multitasking application, each CSECT
window associated with a different task can be controlled independently
Storage windows allow you
to display not only storage related to your program, but also any
addressable storage in the address space in which your program is
executing. You are free to modify areas of storage provided that
they are not protected (e.g. in key zero storage). You may quickly jump
to a different storage location by simply double clicking on a
displayed address. The number of storage windows which you can open is
limited only by the resources of the system on
which your DDT client is
Watch List Window
A watch list window can be used to display areas of
storage which might correspond to variables in a high-level language.
The display of these "variables" is automatically updated every time
a breakpoint is encountered. The intent of a watch list is to display
small areas of storage, such as counters, pointers to data areas,
individual fields in a record, and other areas of "working storage"
related to task execution.
The current value of the "variable" is displayed according to its
data type (for example hexadecimal, packed decimal, signed binary,
The value is displayed in blue if it has changed since it was last
displayed. If any errors are detected when attempting to display the
variable, such as an error in an address expression, or a storage
access exception, an error message will be displayed in red in the
Getting More Information
If you want more
information regarding MVSDDT to help you decide whether or not it is
something that you might want to install, you can download the complete
DDT reference manual for the current release by clicking the Download
DDT Manual link below.
If you intend to download the complete MVSDDT package, you need not
download the ddthelp.jar file
separately; it is included in the LIB
subdirectory of wherever you install the client component of the
The downloaded file is a zip file that contains an executable Java jar
file that opens the DDT
reference manual. After downloading and unzipping the ddthelp.zip file,
on a Microsoft Windows System you may simply double
click the ddthelp.jar file to view the reference manual. In other
environments, you may need to execute
it from a command or terminal window with the following command:
java -jar ddthelp.jar
Download DDT Manual
Downloading and Installing the MVSDDT Package
The downloadable releases of MVSDDT are listed below; generally, at
least one prior release level will be available. The MVSDDT package is
a zip file containing a Java jar file suitable for installation on any
platform. After downloading and unzipping the zip file, executing the install.jar file will
start the installation process. Currently, the installation program can
only create desktop shortcuts (if requested) for the Windows and
various Unix/Linux environments. All the pieces for creating an Apple
bundle should be available in the installation folder for those who
how to work such magic. For more information, see the readMe.txt file
included in the install package.
Note that as of MVSDDT 4.0, Java 7 Runtime (JRE 7) is required to
execute the MVSDDT Client. In addition, if you are running on a 64-bit
operating system (Linux or Windows), it is recommended that you install
a 64-bit version of Java, especially if you intend to debug very large
programs. You need not remove 32-bit Java; there is no problem with
having both 32-bit and 64-bit versions of Java installed.
64-bit Windows Users
The following considerations apply to the installer/uninstaller Java
application, not DDT itself. If the user performing the DDT install
does not have administrator privileges and plans to install DDT into
the default 32-bit folder (C:\Program Files (x86) ), then the following
Under the conditions described above, the installer will request
authorization to run with administrator privileges, however the
uninstaller will not. If you wish to uninstall DDT from the default
32-bit folder, you must be running as a user with administrative
- Java 6 Runtime, update 35 or above must be installed
- Both the 32-bit and 64-bit versions of the Java Runtime must be
Along with the DDT Java client files, the following files required for
the DDT server installation will be stored in the Server installation subdirectory:
Depending upon your configuration, you may need to move these files to
some other location to make them accessible to your Hercules system.
Detailed server installation instructions are provided in the Appendix
of the DDT reference manual. The DDT Configuration Options section of
manual also includes information for configuring the client and server.
- An HET file containing IEBCOPY unloaded PDSs
- An installation JCL file
MVSDDT Release 4.0.0
This release introduces support for conditional breakpoint expressions.
This feature allows you to write complex expressions indicating the
which must be met in order for a breakpoint hit to be recognized by the
client. Data in registers, storage, and constants can be compared;
bits in storage or the registers can be extracted for comparison.
A trace facility is also provided which allows you to debug breakpoint
To download the MVSDDT 4.0.0 package, click the following
Download DDT 4.0.0
This will download an install.zip file; unzip this file to gain access
to the install.jar file.
MVSDDT Release 3.2.0
Errors corrected in this release:
To download the MVSDDT 3.2.0 package, click the following
- CSECTA LINKing to MODULEB results in a CSECT window being opened
for CSECTA when MODULEB returns even though a breakpoint has not been
- Termination of a subtask created by ATTACHing an entry point
created by IDENTIFY erroneously attempts to delete the load module
- STEPping through an indexed EX instruction, where the address of
the target instruction is a function of the contents of an index
in an ABEND0C1 or the execution of the wrong instruction.
Download DDT 3.2.0
This will download an install.zip file; unzip this file to gain access
to the install.jar file.
Support for Additional Instructions
MVSDDT includes support for the additional instructions provided by
the Hercules 4.0 S/370 Extension facility. Since Hercules 4.0
has yet to be officially released, the availability of these
instructions and their correct operation is highly dependent upon the
Hercules system on which MVSDDT is executing. As of MVS TK4- Update 8
all of the additional, non-floating point instructions are believed to
be operating correctly. The link below references a spreadsheet
which provides information on the additional instructions available
the level of Hercules incorporated into the TK4- Update 8 turnkey
Comments and Questions
Comments and questions, as well as problem reports, can be sent to here.
Ms. Kitty Programming Werks
Shelby Lynne Beach
Chief Programmer (only
Ms. Kitty (Hermione of "Harry Potter"
fame and the polyjuice
Crossed over the rainbow on March 24, 2014.
Asparagus (We just call him
I'm a bit concerned about him...
he spends most of his time just looking out of the