Newark, Delaware

COBOL Debugging for Unisys MCP - since 1984

What is ICD?

If you are using COBOL74 or XGENTM then ICDTM, the Interactive COBOL Debugger, provides an efficient, easy-to-use means of debugging your Unisys ClearPath applications.

ICD allows you to

  • track program execution from your terminal
  • query or change data values
  • debug COPY libraries and SYSTEM/BINDER code
  • debug COMS online programs
  • do all this without source code modifications

With ICD you can drastically cut debugging time by monitoring and controlling your program's execution interactively from a terminal. If you need to quickly find and resolve problems in your code, ICD is your productivity tool.

Remember if you use the 4GL XGEN COBOL74 generator ICD allows debugging at both the COBOL74 statement level and the XGEN specification level.

The Problem

Your COBOL program has an error. Finding and correcting it is time consuming if you use conventional debugging techniques:

  • Adding lines of code to display variables, followed by a series of compilations is tedious and slow
  • Guessing where to insert your debugging code is like looking for a needle in a haystack
  • Removing your debugging code later further complicates your problems

The Solution

ICD helps you track down and correct bugs in your COBOL programs.

Here is what you can do with ICD:

  • Make all of your debugging decisions at run time
  • Execute your program statement by statement, stopping where you want, and examining and modifying all your variables as you proceed
  • Enable debugging with just $SET ICD

How Do You Use ICD?


  • Insert the ICD compiler option - $ SET ICD
  • Compile your program with the ICDCOBOL74 compiler


When you first run your program ICDTM gets control before any statements are executed and waits for you to enter a command. ICDTM commands allow you to

  • examine program variables
  • set program variables
  • display your source code
  • set break points.

Break points indicate where you want your program to pause during execution.

Once at a break point you now can examine variable values, change them if you desire, and either continue execution of the program or end it. In short, you can interactively monitor and control your program from a terminal while examining or modifying variables in the process.