Browse Prior Art Database

Internal Debugg Feature in Diagnostic Control Program

IP.com Disclosure Number: IPCOM000118307D
Original Publication Date: 1996-Dec-01
Included in the Prior Art Database: 2005-Apr-01

Publishing Venue

IBM

Related People

Pironio, C: AUTHOR

Abstract

Diagnostics are loaded by The Diagnostic Control Program (DCP) one after another throughout memory. Debugging diagnostics in the DCP environment is not an easy task. For example, it is difficult to determine where a diagnostic is loaded and what parameters are available from DCP. Sometimes diagnostics are loaded in a medialess system via a server machine. To debug in this environment, it is necessary to reconstruct the Diagnostic diskette with DOS and a very small debugger program. The problem in doing this is that the original environment is now changed and the problem may be unreproducible. Sometimes while diagnostics are executing, they may generate bugs in the message area. In such cases, there is no way to verify the message area unless a debug tool is used.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 26% of the total text.

Internal Debugg Feature in Diagnostic Control Program

      Diagnostics are loaded by The Diagnostic Control Program (DCP)
one after another throughout memory.  Debugging diagnostics in the
DCP environment is not an easy task.  For example, it is difficult to
determine where a diagnostic is loaded and what parameters are
available from DCP.  Sometimes diagnostics are loaded in a medialess
system via a  server machine.  To debug in this environment, it is
necessary to reconstruct the Diagnostic diskette with DOS and a very
small debugger  program.  The problem in doing this is that the
original environment is now changed and the problem may be
unreproducible.  Sometimes while  diagnostics are executing, they may
generate bugs in the message area.  In such cases, there is no way to
verify the message area unless  a debug tool is used.  These problems
and more are solved by the Internal  Debug feature.

      Internal Debug Tool - This method provides a basic debug tool
within DCP to aid the developer on detecting a problem quickly and
effectively.  The DCP debug code does not replace (at this time)
debug programs like DED, CodeView, etc.

      Break points and single stepping is managed by a DCP handler at
interrupt 3.

      Control D is managed by a DCP handler at interrupt AAh.

      Cntl D is used to enter debug mode from any window waiting for
input, to start debug mode from a menu you must first press F1
(help), then Cntl D and then Enter because of a Common Access Service
(CAS) bug.

      You can type Cntl D at any time as long as a diagnostic is not
running in protect mode or it has control over the keyboard.

      The first time you press CNTL_D a question window is displayed
asking if you want to enter debug mode.  If you respond with Yes,
this question message will not be repeated again.

      You can use CNTL_D within the debug windows (recursive).  For
example, the code stopped at a breakpoint and the "Register Dump" is
displayed.  You now want to look at the Mail Box data, so you press
CNTL_D again.  The Debug Menu is displayed.  Select the "Display Mail
Box data" line.  When you are done, exit by pressing the PF3 key.  At
this time the program will continue execution as if you pressed the
Enter key at the "Register Dump" window.  Let's take another example,
DCP is displaying the "Advanced Diagnostic Menu".  "System Checkup"
is selected and you press the PF1 (help) key.  When the help screen
is displayed, press CNTL_D.  DCP will take you to the Debug Menu.
Finally, when you exit debug mode, DCP will start loading the
diagnostics as if  you have pressed the Enter key at the Advanced
Diagnostic Menu. Again,  this is a problem within the CAS interface;
at this time, there is no solution.

      Always, before you type CNTL_D, you must ask yourself, "Is this
where I want to be when I return from Debug Menu?"

The following tasks can be selected from a debug menu:

  ...