MacKinney Systems, Inc.

CICS interactive debugging tool

MacKinney Track

Copy Source and Link data

Q:

How can you get source & Link data from one system to another?


A:

Exec program TRCKSMNT with the COPY parameter

Debug a CALLed subroutine

Q:

How can I debug a CALLed subroutine?


A:

If it's DYNAMIC: 

  1. You MUST monitor the CALLing program.
  2. You can either STEP into the CALLed program, or set a HALT at START (if the subroutine has a PPT entry).


If it's STATIC:

  1. You do NOT have to monitor the CALLing program.
  2. You MUST STEP into the CALLed program, and CANNOT set a HALT at start (for it most likely will NOT have a PPT entry). 

 

Debug a subroutine via EXEC CICS LINK or XCTL

Q:

How do I debug a subroutine invoked via EXEC CICS LINK or EXEC CICS XCTL?


A:

  1. You must set a HALT at START for the subroutine name (cannot STEP into the subroutine).
  2. There is no need to debug the main program.
  3. Use the Include/Exclude (Option 8.C) as needed to include or exclude routines.

Debugging a non-terminal task


In order to debug a transaction running unattached to a terminal, you have to set up both:
Option 8.2 (to identify the program/transaction to debug), and
Option 8.9 (to identify the debugging terminal).
 
From Option 8.2:

  1. Set the Terminal ID to NONE (actually type in the word NONE)
  2. Identify the non-terminal transaction in Task ID
  3. Identify the non-terminal program in Program Name
  4. Set the Halt Offset to START 

 
From Option 8.9:

  1. Set the Debugging Terminal ID to THIS (identifies the terminal you are signed on to)
  2. Set the Debugged Task to match the Task ID in Option 8.2

Delete all Halts

Q:

Can only do the 'HALT=OFF', 'ALL' when in a debug session?


A:

You have to be in a debug session to use the command 'HALT=OFF'.
Or use Option 8.1 outside of a debug session to delete all halts

Illegal Storage Reference

Q:

I keep getting Illegal Storage Reference messages. How can I get rid of these messages?


A:

You may use one of the following:

  1. Use FORCE on the command line to allow execution of the next statement.
  2. Set STORAGE PROTECTION to OFF on the Monitor Control screen (option 8.2) to prevent the need of the FORCE command
  3. Define your program as a Routine (option 8.6) and set Store Protect to NO

Timestamp Mismatch message

Q:

Why am I receiving a Timestamp Mismatch message and how do I resolve it?


A:

A Timestamp Mismatch indicates the program stored on the Track Source File is not the program executing in CICS.
 
Enter P=yourpgmname on a Track command line and look for the date near offset 60. Compare this to the date from Options 1.2 and 2.2.
 
Either

  1. You need to NEWCOPY your program, or
  2. An older version of the same program is in a library higher in the RPL (or Phase) list. 

 

TRK307 NO FLOW TABLE

Q:

How do you get a Flow Table display?


A:

From the User Preferences (Option U.1), set 
Flow Data Collection Level to 'S' or 'F'
Flow Table Size to a value greater than 0