HLASM Toolkit Feature Interactive Debug Facility User's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


The COMMAND option

HLASM Toolkit Feature Interactive Debug Facility User's Guide
GC26-8709-07

The COMMAND option tells IDF that the string following a slash (⁄) is not an argument string to be passed to the target program, but a command that it should issue to begin the debugging operation.

This command is issued with a CMSCALL (SVC 204), so if it is an exec, you must specify that, as shown in the example above.

You can use the same technique to debug user-area programs that need environmental setup.

When the COMMAND option is specified:
  • IDF starts as usual but PER is disabled, and the registers and PSW are not displayed if the Current Registers window or Old Registers window is open.
  • Set a breakpoint at the start of your program, or set a deferred breakpoint with the DBREAK command, and then press the RUN key.
  • IDF then issues the command you specified.
  • As part of that command's execution, it should invoke the target program (RXMYPROG in this example), which is already in storage, defined to IDF, and with the breakpoint installed at or near its entry-point.
  • When the breakpoint is reached, IDF issues a message to you.

    PER is now available for use, and the registers and PSW are available for inspection and modification. Before the first breakpoint IDF keeps PER disabled and does not display the registers and PSW.

If practical, when using the COMMAND option, allow the target program to execute through to the point of its return to its caller (for example, to the EXEC that was invoked by the COMMAND string and which then invoked the target program). This "normal flow of control" allows any usual "house-cleaning" needed by the operating system for these call⁄return linkages. If instead you QUIT from the target program before its normal return, it may leave a "dangling" call linkage to the target program, without a corresponding return.

Quitting from a target program before a normal return is a particular problem on CMS. The CMSCALL (SVC 204) that was used from within IDF to call the COMMAND string is not returned to. If this "un-paired" SVC linkage remains undetected, you may experience difficulties in CMS.

IDF termination contains special logic to check for this condition (that is, a QUIT from the target program that was invoked with a COMMAND string), and if detected, IDF:
  1. Issues a linemode message warning of the problem.
  2. Executes one or more CMSRET RC=999 macros until the original SVC nesting (as saved just before IDF's CMSCALL to the COMMAND string) is restored.

If the original nesting cannot be restored within 20 calls to CMSRET, or if a CMS ABEND occurs during this processing, IDF issues another warning message (suggesting that CMS be re-IPLed) and terminates.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014