Using debuggers with CICS applications

CICS® supports the use of workstation-based and host-based debuggers for isolating and fixing bugs, and for testing applications. This topic provides an overview of the high-level tasks you must perform before you can use a debugger with CICS applications, and tells you where to find more information:

Choose between a workstation-based and host-based debugger
When you debug an application program, you interact with the program through the debugging tools. For example, you may want to examine storage, set breakpoints, or step through your code. This interaction is a debugging session. In CICS, you can choose the environment in which you conduct your debugging session:
Workstation-based
A debugger client on the workstation provides a graphical user interface which you use to perform the debugging tasks. The debugger client communicates with a debugger server which runs on your CICS system, and interacts with the program that is being debugged.

For more information, see Debugging CICS applications from a workstation.

Host-based
A debugging tool running in your CICS system provides a terminal interface which you use to perform the debugging tasks. The debugging tool interacts directly with the application as it executes.

CICS supports Debug Tool for host-based debugging. For more information, see Using Debug Tool with CICS applications.

Different application programs may have different debugging requirements (for example, Java™ programs cannot be debugged in a host-based debugging session). CICS lets different users use workstation-based and host-based debugging concurrently in the same region.
Ensure that your application programs will be intercepted by the debugging tool, and that others will not
Even in a test or development system, most of your application programs will function correctly most of the time. And when you are debugging, you will probably want to focus on one application at a time. At the same time, your colleagues may want to debug different applications. So you will need a way to specify those programs in your CICS system that are to interact with your debugging session, and those that are to interact with other users' debugging sessions, while letting most programs in the system run normally.

Debugging profiles let you do all this -- a debugging profile specifies a set of application programs which are to be debugged together. When you make a profile active, the programs it defines run under the control of the debugger, using a debugging session that you have specified. When you make the profile inactive, the programs run normally again, as do programs that are not referred to in debugging profiles. Debugging profiles also let you define the characteristics of the debugging session that you will use to debug a particular program.

For more information, see Debugging profiles.

Prepare your programs for interacting with a debugger
CICS supports application programs written in a variety of languages. The compiled language programs (COBOL, PL/I, C, C++, and Language Environment-enabled Assembler subroutines) run under the control of Language Environment®; Java programs run in a Java virtual machine (JVM). Because there are, essentially, two different runtime environments for programs, there are two different ways to make your programs interact with the debugger.
Ensure that your CICS system is set up to support the debugging environment
When you have debugging profiles in your CICS system, there is an overhead in starting a program, even when all the profiles are inactive. This overhead, although small, is unlikely to be acceptable in a high-performance production system. In any case, you would not normally debug your applications in such a system. Therefore, the use of debugging profiles is optional, and if you want to use them, your system programmer will need to configure CICS accordingly.

For more information, see the CICS System Definition Guide.

[[ Contents Previous Page | Next Page Index ]]