ibm-information-center/dist/eclipse/plugins/i5OS.ic.cl_5.4.0.1/strisdb.htm

336 lines
12 KiB
HTML

<!doctype html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head><META http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Start ISDB (STRISDB)</title>
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body bgcolor="white">
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<a name="STRISDB.Top_Of_Page"></a>
<h2>Start ISDB (STRISDB)</h2>
<table width="100%">
<tr>
<td valign="top" align="left"><b>Where allowed to run: </b>Interactive environments (*INTERACT *IPGM *IMOD *IREXX *EXEC)<br>
<b>Threadsafe: </b>No
</td>
<td valign="top" align="right">
<a href="#STRISDB.PARAMETERS.TABLE">Parameters</a><br>
<a href="#STRISDB.COMMAND.EXAMPLES">Examples</a><br>
<a href="#STRISDB.ERROR.MESSAGES">Error messages</a></td>
</tr>
</table>
<div> <a name="STRISDB"></a>
<h3>Start Interactive Source Debugger</h3>
<p>The Interactive Source Debugger (ISDB) tool provides an interactive debugging environment for CL, COBOL, or RPG programs.
</p>
<p>
<b>Note: </b>The library QTEMP is required for ISDB to run. ISDB uses the library QTEMP to access files such as the log file.
</p>
<p>To start it:
</p>
<ol>
<li>Specify the necessary STRISDB parameters for your program.
</li>
<li>Press Enter. ISDB is started.
</li>
</ol>
<p>The source of the program is displayed in the ISDB Source display, and you can debug the program using the features provided there.
</p>
<h3>Error messages for STRISDB</h3>
<p>None
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="STRISDB.PARAMETERS.TABLE">Parameters</a></h3>
<table border="1" cellpadding="4" cellspacing="0">
<!-- col1="10" col2="15" col3="30" col4="10" -->
<tr>
<th bgcolor="aqua" valign="bottom" align="left">Keyword</th>
<th bgcolor="aqua" valign="bottom" align="left">Description</th>
<th bgcolor="aqua" valign="bottom" align="left">Choices</th>
<th bgcolor="aqua" valign="bottom" align="left">Notes</th>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#STRISDB.PGM"><b>PGM</b></a></td>
<td valign="top">Program</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Required, Positional 1</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Program</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, *CURLIB, <b><u>*LIBL</u></b></td>
</tr><tr>
<td valign="top"><a href="#STRISDB.UPDPROD"><b>UPDPROD</b></a></td>
<td valign="top">Update production files</td>
<td valign="top">*YES, <b><u>*NO</u></b></td>
<td valign="top">Optional, Positional 2</td>
</tr>
<tr>
<td valign="top"><a href="#STRISDB.INVPGM"><b>INVPGM</b></a></td>
<td valign="top">Invoke program</td>
<td valign="top"><b><u>*YES</u></b>, *NO, *CMD</td>
<td valign="top">Optional, Positional 3</td>
</tr>
<tr>
<td valign="top"><a href="#STRISDB.PARM"><b>PARM</b></a></td>
<td valign="top">Parameters for call</td>
<td valign="top">Values (up to 40 repetitions): <i>Character value</i></td>
<td valign="top">Optional, Positional 4</td>
</tr>
<tr>
<td valign="top"><a href="#STRISDB.CMD"><b>CMD</b></a></td>
<td valign="top">Invocation Command</td>
<td valign="top"><i>Command string</i></td>
<td valign="top">Optional, Positional 5</td>
</tr>
<tr>
<td valign="top"><a href="#STRISDB.SRCMBR"><b>SRCMBR</b></a></td>
<td valign="top">Source member</td>
<td valign="top"><i>Name</i>, <b><u>*PGM</u></b></td>
<td valign="top">Optional, Positional 6</td>
</tr>
<tr>
<td valign="top" rowspan="3"><a href="#STRISDB.SRCF"><b>SRCF</b></a></td>
<td valign="top">Source file</td>
<td valign="top"><i>Qualified object name</i></td>
<td valign="top" rowspan="3">Optional, Positional 7</td>
</tr>
<tr>
<td valign="top">Qualifier 1: Source file</td>
<td valign="top"><i>Name</i></td>
</tr><tr>
<td valign="top">Qualifier 2: Library</td>
<td valign="top"><i>Name</i>, *CURLIB, *LIBL</td>
</tr><tr>
<td valign="top"><a href="#STRISDB.SRVJOB"><b>SRVJOB</b></a></td>
<td valign="top">Job to service</td>
<td valign="top"><b><u>*</u></b>, *SELECT</td>
<td valign="top">Optional, Positional 8</td>
</tr>
</table>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
</div>
<div> <a name="STRISDB.PGM"></a>
<h3>Program</h3>
<p>Use this parameter to specify the name and library of the program to be debugged.
</p>
<p>The possible values for the library are:
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>The library list is used to locate the program. This is the default if no library name is specified.
</dd>
<dt><b>*CURLIB</b></dt>
<dd>The current library in the library list is used to locate the program. (If you have not specified a current library, QGPL is assumed.)
</dd>
<dt><b><i>library-name</i></b></dt>
<dd>Specify the name of the library containing the program to be debugged.
</dd>
</dl>
<p>
<b>Note: </b>To debug COBOL programs with ISDB, ensure that they are compiled with the *SRCDBG option.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="STRISDB.UPDPROD"></a>
<h3>Update production files (UPDPROD)</h3>
<p>Use this parameter to specify whether files in production libraries can be changed while they are in debug mode.
</p>
<p>The possible values are:
</p>
<dl>
<dt><b><u>*NO</u></b></dt>
<dd>Files cannot be updated while they are in debug mode.
</dd>
<dt><b>*YES</b></dt>
<dd>Files can be updated while they are in debug mode.
</dd>
</dl>
<p>Note that you can change the update production files value from the Source display. To do this:
</p>
<ol>
<li>Select the Debug menu-bar choice from the Source display.
</li>
<li>In the Debug pull-down window, select option 1 (Change debug). The Set Debugging Options window appears.
</li>
<li>Select either option 1 (Update production files) or option 2 (Do not update production files), and press Enter.
</li>
</ol>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="STRISDB.INVPGM"></a>
<h3>Invoke Program</h3>
<p>Use this parameter to specify whether you want ISDB to call your program, do other preparation before you invoke your program, or use a command to invoke your program.
</p>
<p>The possible values are:
</p>
<dl>
<dt><b><u>*YES</u></b></dt>
<dd>ISDB calls your program with the parameters you specify in the PARM field.
<p>
<b>Note: </b>You cannot use this parameter for serviced jobs.
</p>
</dd>
<dt><b>*NO</b></dt>
<dd>A command is not issued to start the program. A command entry screen (QCMD) is provided so that you can do any preparation required before you issue the command to start the program.
<p>If you start your program from the command entry screen, when your program completes running, control will return to this screen. To End ISDB or Restart, you must first exit this command entry screen (F3 or F12). The Program Termination display will then appear where you can choose to end ISDB or restart.
</p>
<p>
<b>Note: </b>For servicing other jobs, this is the only option you can use, but the QCMD panel is not invoked.
</p>
</dd>
<dt><b>*CMD</b></dt>
<dd>ISDB executes the command specified in the CMD parameter. (This command must invoke your program.)
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="STRISDB.PARM"></a>
<h3>Parameters</h3>
<p>Use this parameter to specify any parameters required to call your program.
</p>
<p>This parameter is not intended for the INVPGM(*NO) and INVPGM(*CMD) invocation commands.
</p>
<p>Note: Numeric literals (for example, 500) and strings which contain null (X'00') characters should not be used in this field. Instead, use the parameter INVPGM(*CMD) and specify the appropriate CALL command in the CMD parameter. For instance, instead of entering the command:
</p>
<p>
<pre>
STRISDB PGM(MYPGM) INVPGM(*YES) PARM(123 X'00')
</pre>
</p>
<p>Use the following command:
</p>
<p>
<pre>
STRISDB PGM(MYPGM) INVPGM(*CMD) CMD(CALL PGM(MYPGM)
PARM(123 X'00'))
</pre>
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="STRISDB.CMD"></a>
<h3>Invocation Command</h3>
<p>Use this parameter to specify the command you want to use to invoke your program.
</p>
<p>This parameter is not intended for the INVPGM(*NO) and INVPGM(*YES) invocation commands.
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="STRISDB.SRCMBR"></a>
<h3>Source member</h3>
<p>This parameter is optional, since you need to specify the source member only if it is different from the one specified in the object description of the program. The source of the member you specify will be displayed in the Source display when you invoke the program.
</p>
<p>You will need to use this parameter if:
</p>
<ul>
<li>The library, file, or member names of the source have changed since the program was last compiled. (Be sure the member contains the correct program source, or you will get unpredictable results.)
</li>
<li>The program is an RPG Auto Report program. The CRTRPTPGM command has a parameter that lets you place the expanded source into a source physical file.
</li>
<li>The source is located on another server machine and its program was not created using a DDM file.
</li>
</ul>
<p>The possible values are:
</p>
<dl>
<dt><b><u>*PGM</u></b></dt>
<dd>The source information is retrieved from the object description using the DSPOBJD command.
</dd>
<dt><b><i>member_name</i></b></dt>
<dd>Specify the name of the source member you want displayed, and type its file and library names in the parameters provided.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="STRISDB.SRCF"></a>
<h3>Source file and library</h3>
<p>Use these parameters to specify the file and library names of the source member you specified in the Source member prompt. You must specify both names if either one of them is different from the names specified in the object description of the program.
</p>
<p>The possible value for the source file name is:
</p>
<dl>
<dt><b><i>file_name</i></b></dt>
<dd>Specify the name of the file containing the source member you want displayed.
</dd>
</dl>
<p>The possible values for the source library name are:
</p>
<dl>
<dt><b><u>*LIBL</u></b></dt>
<dd>The library list is used to locate the source file.
</dd>
<dt><b>*CURLIB</b></dt>
<dd>The current library is used to locate the source file. (If you have not specified a current library, QGPL is assumed.)
</dd>
<dt><b><i>library_name</i></b></dt>
<dd>Specify the name of the library containing the source file you want displayed.
</dd>
</dl>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<div> <a name="STRISDB.SRVJOB"></a>
<h3>Job to service (SRVJOB)</h3>
<p>Use this parameter to debug a program running in a job different from the one to which you are signed on. It is useful for debugging batch jobs, or other interactive jobs.
</p>
<p>Possible values are:
</p>
<dl>
<dt><b><u>*</u></b></dt>
<dd>Debug in the current job.
</dd>
<dt><b>*SELECT</b></dt>
<dd>Display the Select Job to Service display that lets you select a job from a list of active jobs. If you select one of these jobs, the STRSRVJOB command is issued and that job is placed in debug mode.
</dd>
</dl>
<p>
<b>Note: </b>SRVJOB(*SELECT) is not valid with INVPGM(*YES) or INVPGM(*CMD).
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div>
<h3><a name="STRISDB.COMMAND.EXAMPLES">Examples</a></h3>None
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
<hr size="2" width="100%">
<div><h3><a name="STRISDB.ERROR.MESSAGES">Error messages</a> </h3>
<p>None
</p>
</div>
<table width="100%">
<tr><td align="right"><a href="#STRISDB.Top_Of_Page">Top</a></td></tr>
</table>
</body>
</html>