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:

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:

Besides providing 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 batch server 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.

DDT Prerequisites

The following are the minimum requirements for running the DDT client and server:

Client Requirements

Server Requirements

Additional considerations apply to the Java installer/uninstaller program, and are discussed below in the section titled "Downloading and Installing the MVSDDT Package".


MVSDDT is developed and supported by Ms. Kitty Programming Werks. MVS 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.

DDT Windows

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 Window

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 (Start/Stop/Step pushbuttons).

Storage Window

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 executing.


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 defined data type (for example hexadecimal, packed decimal, signed binary, etc.). 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 value column.

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 package.

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 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 Java supported 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 OS X bundle should be available in the installation folder for those who know 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.

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 conditions apply:
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 privileges.

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 this manual also includes information for configuring the client and server.

MVSDDT Release 4.0.0

This release introduces support for conditional breakpoint expressions. This feature allows you to write complex expressions indicating the conditions which must be met in order for a breakpoint hit to be recognized by the DDT client. Data in registers, storage, and constants can be compared; individual bits in storage or the registers can be extracted for comparison.

A trace facility is also provided which allows you to debug breakpoint expressions.

To download the MVSDDT 4.0.0 package, click the following link:

Download DDT 4.0.0

This will download an 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 link:

Download DDT 3.2.0

This will download an 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 document which provides information on the additional instructions available with the level of Hercules incorporated into the TK4- Update 8 turnkey system.

MVSDDT Additional Instructions

Comments and Questions

Comments and questions, as well as problem reports, can be sent to here.

Who's Who

Ms. Kitty Programming Werks personnel:

    Shelby Lynne Beach
    Chief Programmer (only programmer)

    Ms. Kitty (Hermione of "Harry Potter" fame and the polyjuice debacle)
    Chief Muse

    Crossed over the rainbow on March 24, 2014.

    Asparagus (We just call him "Gus") 

    I'm a bit concerned about him...
    he spends most of his time just looking out of the window !

Visit Count: