CICS® supports
the use of workstation-based and host-based debuggers for isolating and fixing
bugs, and for testing applications. Before you can use a debugger with CICS applications,
you must perform the following tasks.
Procedure
- 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 might 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.
- For compiled language programs, you must decide when you compile your
programs that you want them to interact with the debugger, and specify the
appropriate compiler options. See the compiler documentation for more information.
- For Java programs, you can decide at run time that you want
them to interact with the debugger, and specify the appropriate JVM options.
See JVM profiles: options and samples for
more information.
- 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.