ibm-information-center/dist/eclipse/plugins/i5OS.ic.apis_5.4.0.1/QTEDMPMV.htm

1096 lines
33 KiB
HTML
Raw Normal View History

2024-04-02 14:02:31 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Copyright" content="Copyright (c) 2006 by IBM Corporation">
<title>Dump Module Variables (QteDumpModuleVariables) API</title>
<!-- Begin Header Records ========================================== -->
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<!-- DEBUG1 SCRIPT A converted by B2H R4.1 (346) (CMS) by V2KEA304 -->
<!-- at RCHVMW2 on 29 Jan 1999 at 16:05:09 -->
<!-- Change History: -->
<!-- YYMMDD USERID Change description -->
<!--File Edited November 2001 -->
<!--End Header Records -->
<link rel="stylesheet" type="text/css" href="../rzahg/ic.css">
</head>
<body>
<a name="top_Of_Page"></a>
<!-- Java sync-link -->
<script language="Javascript" src="../rzahg/synch.js" type="text/javascript">
</script>
<h2>Dump Module Variables (QteDumpModuleVariables) API</h2>
<div class="box" style="width: 65%;">
&nbsp;&nbsp;Required Parameter Group:<br>
<!-- iddvc RMBR -->
<br>
<table width="100%">
<tr>
<td align="center" valign="top" width="10%">1</td>
<td align="left" valign="top" width="50%">Receiver variable</td>
<td align="left" valign="top" width="20%">Output</td>
<td align="left" valign="top" width="20%">Char(*)</td>
</tr>
<tr>
<td align="center" valign="top">2</td>
<td align="left" valign="top">Receiver variable length</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">3</td>
<td align="left" valign="top">Format name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(8)</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="left" valign="top">Qualified program name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(20)</td>
</tr>
<tr>
<td align="center" valign="top">5</td>
<td align="left" valign="top">Program type</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">6</td>
<td align="left" valign="top">Module name</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(10)</td>
</tr>
<tr>
<td align="center" valign="top">7</td>
<td align="left" valign="top">Data option</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Binary(4)</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="left" valign="top">Continuation handle</td>
<td align="left" valign="top">Input</td>
<td align="left" valign="top">Char(16)</td>
</tr>
<tr>
<td align="center" valign="top">9</td>
<td align="left" valign="top">Error code</td>
<td align="left" valign="top">I/O</td>
<td align="left" valign="top">Char(*)</td>
</tr>
</table>
<br>
&nbsp;&nbsp;Service Program: QTEDMPV<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Default Public Authority: *USE<br>
<!-- iddvc RMBR -->
<br>
&nbsp;&nbsp;Threadsafe: No<br>
<!-- iddvc RMBR -->
<br>
</div>
<p>The Dump Module Variables (QteDumpModuleVariables) API is used to get a list of all the variable names and current values of those variables. Variable values may only be requested if an active call stack entry for the module specified exists in the job in which this API is called. Values existing in program static or automatic storage are not accessible by this API unless the program has a current call stack entry. All variables that were defined by the compiler and stored in the module HLL symbol table will be returned. This API supports the ILE CL, ILE COBOL, and ILE RPG compilers.</p>
<p>The module for which variable information is being requested must contain debug data. See the debug view (DBGVIEW) parameter of the Create RPG Module (CRTRPGMOD), Create COBOL Module (CRTCBLMOD), or Create CL Module (CRTCLMOD) command. It is not necessary that the job in which the program is running be in debug mode to use this API.</p>
<p>Variable names and, optionally, their values will be provided within the block in which they were declared. This API does not guarantee that those variables are returned in any particular order within the block.</p>
<br>
<h3><img src="delta.gif" alt="Start of change">Authorities</h3>
<dl>
<dt><em>Authority Required</em></dt>
<dd>
<br><br>
<ul>
<li>*SERVICE special authority and *USE authority to the input program, or</li>
<li>*USE authority to the input program when the input program is the caller of the API, or</li>
<li>*CHANGE authority to the input program<img src="deltaend.gif" alt="End of change"></li>
</ul>
</dd>
</dl>
<br>
<h3><a name="Header_40">Required Parameter Group</a></h3>
<dl>
<dt><strong>Receiver variable</strong></dt>
<dd>OUTPUT; CHAR(*)
<p>The variable that is to receive the list of program variables and current values for the specified module.</p>
</dd>
<dt><strong>Receiver variable length</strong></dt>
<dd>INPUT; BINARY(4)
<p>The length of the receiver variable that is provided in the previous parameter. This value must be at least 48 to provide space for the receiver variable header section. The bytes available field tells the caller what size is required to receive the entire results of the request.</p>
</dd>
<dt><strong>Format name</strong></dt>
<dd>INPUT; CHAR(8)
<p>The format of the information returned for the module. The possible format name is:</p>
<table cellpadding="3">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>DMPV0100</em></td>
<td valign="top">Dump module variables.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Qualified program name</strong></dt>
<dd>INPUT; CHAR(20)
<p>The name of the program for which the variables and values will be provided.</p>
<p>The first 10 characters contain the name of the program. The second 10 characters contain the name of the library where the program is located. Each name will be left-justified. The special values of *LIBL and *CURLIB may be specified.</p>
</dd>
<dt><strong>Program type</strong></dt>
<dd>INPUT; CHAR(10)
<p>The object type of the program. The possible values are:</p>
<table cellpadding="3">
<!-- cols="15 85" -->
<tr>
<td valign="top"><em>*PGM</em></td>
<td valign="top">ILE program</td>
</tr>
<tr>
<td valign="top"><em>*SRVPGM</em></td>
<td valign="top">ILE service program</td>
</tr>
</table>
<p>This API cannot be used to dump variable information for an OPM program.</p>
</dd>
<dt><strong>Module name</strong></dt>
<dd>INPUT; CHAR(10)
<p>The name of the module (left-justified) within the program. The module must be written in one of the supported ILE languages or an error is reported.</p>
</dd>
<dt><strong>Data option</strong></dt>
<dd>INPUT; BINARY(4)
<p>The content of the information returned for the module. The possible values are:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Variable names only.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Variable names and current values in default character format (the type associated with the variable will be used in determining the format of the value returned).</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Variable names, the current values in default character format, and the current values in hex format.</td>
</tr>
</table>
<br>
</dd>
<dt><strong>Continuation handle</strong></dt>
<dd>INPUT; CHAR(16)
<p>The handle used to continue from a previous call to this API that resulted in partially complete information. You can determine if a previous call resulted in partially complete information by checking the continuation handle variable in the receiver variable header section following the API call.</p>
<p>If the API is not attempting to continue from a previous call, this parameter must be set to blanks. Otherwise, a valid continuation value must be supplied. When continuing, the first entry in the returned receiver variable parameter is the entry that immediately follows the last entry returned in the previous call.</p>
<p>An error will occur under the following conditions:</p>
<ul>
<li>The continuation handle is not blank on the first request for a given set of input parameters.<br><br></li>
<li>The continuation handle is not the same as provided in the receiver variable header section on the previous call to this API.</li>
</ul>
<br>
</dd>
<dt><strong>Error code</strong></dt>
<dd>I/O; CHAR(*)
<p>The structure in which to return error information. For the format of the structure, see <a href="../apiref/error.htm#hdrerrcod">Error Code Parameter</a>.</p>
</dd>
</dl>
<br>
<h3><a name="Header_41">Format of the Receiver Variable</a></h3>
<p>The receiver variable area consists of:</p>
<ul>
<li>A receiver variable header section.<br><br></li>
<li>A module variable header section for each variable returned by the Dump Module Variables API. The module variable header section consists of:<br><br>
<ul>
<li>A fixed-length header section<br><br></li>
<li>A variable-length section containing the information requested for the
module variable.</li>
</ul>
</li>
</ul>
<br>
<h3><a name="Header_42">Receiver Variable Header Section</a></h3>
<p><strong><a name="Table_1">Table 1. Receiver Variable Header Section</a></strong></p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Bytes returned</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Bytes available</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of variable sections</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Returned library</td>
</tr>
<tr>
<td align="center" valign="top">22</td>
<td align="center" valign="top">16</td>
<td align="left" valign="top">CHAR(10)</td>
<td align="left" valign="top">Reserved</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">CHAR(16)</td>
<td align="left" valign="top">Continuation handle</td>
</tr>
<tr>
<td align="left" valign="top" colspan="4"><strong>Note:</strong> The following information is repeated as many times as the value specified in the number of variable sections field.</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">&nbsp;</td>
<td align="left" valign="top">Module variable header section</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">&nbsp;</td>
<td align="left" valign="top">Module variable section</td>
</tr>
</table>
<br><br>
<h3><a name="HDRMBRLLH2">Module Variable Header Section</a></h3>
<p>This table describes the common header area to each subsequently defined module variable section.</p>
<p><strong><a name="TBLMVSHDR">Table 2. Module Variable Header Section</a></strong></p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Length of module variable section</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to next variable</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Variable entry type</td>
</tr>
</table>
<p>This portion of the module variable section will always start in the next available 4-word boundary to ensure proper alignment of the BINARY(4) fields within each section. The caller must use the offset to next variable field to find the start of the next module variable section and use the length of module variable section to determine the length of the current section.</p>
<br>
<h3><a name="HDRMBRLLH3">Module Variable Section (Scalar Variable Entry Type)</a></h3>
<p>The following table is used when the variable entry being returned is scalar. This section could occur by itself or following an array definition.</p>
<p><strong><a name="Table_3">Table 3. Scalar Variable Section</a></strong></p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Variable type</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Total digits</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Precision</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Scaling factor</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to variable name</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of variable name</td>
</tr>
<tr>
<td align="center" valign="top">24</td>
<td align="center" valign="top">18</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of default value</td>
</tr>
<tr>
<td align="center" valign="top">28</td>
<td align="center" valign="top">1C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of hexadecimal value</td>
</tr>
<tr>
<td align="center" valign="top">32</td>
<td align="center" valign="top">20</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">String content descriptor</td>
</tr>
<tr>
<td align="center" valign="top">36</td>
<td align="center" valign="top">24</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of string prefix</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Variable name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Default value</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Hexadecimal value</td>
</tr>
</table>
<p>All variable values will be returned in displayable character format. For example, if the internal representation of a 2-byte unsigned integer is X'0345' the data returned through this API in the default value area will be '837 ' (X'F8F3F7404040'), and in the hex value area will be '0345' (X'F0F3F4F5').</p>
<p>When the scalar values of an array are being retrieved, the values will be returned in row major order, with no separating characters. The data option parameter will be used to determine if any values are displayed and in what form.</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">No values will be returned.</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Only the default value of each scalar will be returned. The length of default value field will specify the length of each value. Each scalar value in the array will be provided in row major order.</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">The default value and the hex value of each scalar will be returned. The length of default value field and the length of hex value field will specify the length of each value. Each scalar value in the array will be provided with each representation in row major order with the default value leading each pair of values.</td>
</tr>
</table>
<br><br>
<h3><a name="HDRMBRLLH4">Module Variable Section (Array Definition Entry Type)</a></h3>
<p>The following table is used when the variable entry being returned is an array. This section will define the array and will be followed by one or more scalar variable sections.</p>
<p><strong><a name="Table_4">Table 4. Array Definition Variable Section</a></strong></p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Number of scalar fields</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to first variable</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to dimensions</td>
</tr>
<tr>
<td align="center" valign="top">12</td>
<td align="center" valign="top">C</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to array name</td>
</tr>
<tr>
<td align="center" valign="top">16</td>
<td align="center" valign="top">10</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Number of array dimensions</td>
</tr>
<tr>
<td align="center" valign="top">20</td>
<td align="center" valign="top">14</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of array name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Dimension lower bound</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Dimension upper bound</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Array name</td>
</tr>
</table>
<br><br>
<h3><a name="HDRMBRLLH5">Module Variable Section (Block Definition Entry Type)</a></h3>
<p>The following table is used when the variable entry being returned is a block definition. One of these sections will exist for each block defined in the program. A block definition entry will precede all other variable entry sections for variables defined within the specified block.</p>
<p><strong><a name="Table_5">Table 5. Block Definition Variable Section</a></strong></p>
<table border width="80%">
<tr>
<th align="center" valign="bottom" colspan="2">Offset</th>
<th align="left" valign="bottom" rowspan="2">Type</th>
<th align="left" valign="bottom" rowspan="2">Field</th>
</tr>
<tr>
<th align="center" valign="bottom">Dec</th>
<th align="center" valign="bottom">Hex</th>
</tr>
<tr>
<td align="center" valign="top" width="10%">0</td>
<td align="center" valign="top" width="10%">0</td>
<td align="left" valign="top" width="20%">BINARY(4)</td>
<td align="left" valign="top" width="60%">Block number</td>
</tr>
<tr>
<td align="center" valign="top">4</td>
<td align="center" valign="top">4</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Offset to block name</td>
</tr>
<tr>
<td align="center" valign="top">8</td>
<td align="center" valign="top">8</td>
<td align="left" valign="top">BINARY(4)</td>
<td align="left" valign="top">Length of block name</td>
</tr>
<tr>
<td align="center" valign="top">&nbsp;</td>
<td align="center" valign="top">&nbsp;</td>
<td align="left" valign="top">CHAR(*)</td>
<td align="left" valign="top">Block name</td>
</tr>
</table>
<br><br>
<h3><a name="Header_47">Field Descriptions</a></h3>
<p><strong>Array name.</strong> The field containing the name of the array.</p>
<p><strong>Block name.</strong> The field containing the name of the block.</p>
<p><strong>Block number.</strong> The number of the block.</p>
<p><strong>Bytes available.</strong> The number of bytes of data available to be returned. All available data is returned if enough space is provided.</p>
<p><strong>Bytes returned.</strong> The number of bytes of data returned.</p>
<p><strong>Continuation handle.</strong> When not all the requested data can be returned on a single call to this API, a value will be supplied in this field which may be used to continue on the next call to this API.</p>
<p><strong>Default value.</strong> The value of the variable represented in the default format for the variable type.</p>
<p><strong>Dimension lower bound.</strong> The lower bound of an array dimension.</p>
<p><strong>Dimension upper bound.</strong> The upper bound of an array dimension.</p>
<p><strong>Hexadecimal value.</strong> The value of the variable represented in hexadecimal format as it is stored in the machine.</p>
<p><strong>Length of array name.</strong> The length of the array name field.</p>
<p><strong>Length of block name.</strong> The length of the block name field (may be zero if no name is associated with the block).</p>
<p><strong>Length of default value.</strong> The length of the data in the default value field. This will be zero if the data option parameter is 0.</p>
<p><strong>Length of hexadecimal value.</strong> The length of the data in the hexadecimal value field. This will be zero if the data option parameter is 0 or 1.</p>
<p><strong>Length of module variable section.</strong> The module variable entry section length, including the length of the module variable section header.</p>
<p><strong>Length of string prefix.</strong> The length of the string prefix (may be 0 if no prefix is associated with the string).</p>
<p><strong>Length of variable name.</strong> The length of the variable name field.</p>
<p><strong>Number of array dimensions.</strong> The number of dimensions in the array. The dimension upper and lower bound fields are repeated for each array dimension.</p>
<p><strong>Number of scalar fields.</strong> Number of scalar fields in each array element. There will be one module variable section for each scalar following an array definition header.</p>
<p><strong>Number of variable sections.</strong> The number of variable entries returned by the API. These include block variable entries, scalar variable entries, and array variable entries.</p>
<p><strong>Offset to array name.</strong> Offset to the start of the array name field.</p>
<p><strong>Offset to block name.</strong> Offset to the start of the block name field.</p>
<p><strong>Offset to dimensions.</strong> Offset to the start of the first dimension lower bound field.</p>
<p><strong>Offset to first variable.</strong> Offset to the start of the module variable header section for the first scalar variable.</p>
<p><strong>Offset to next module variable header section.</strong> Offset to the start of the next
module variable header section.</p>
<p><strong>Offset to variable name.</strong> Offset to the start of the variable name field.</p>
<p><strong>Precision.</strong> The precision associated with a decimal type (packed, zoned, or binary decimal).</p>
<p><strong>Reserved.</strong> An ignored field.</p>
<p><strong>Returned library.</strong> The library where the program was found. This is useful when *LIBL or *CURLIB is specified for the program library portion of the program name parameter.</p>
<p><strong>Scaling factor.</strong> The scaling factor associated with a decimal type (packed, zoned, or binary decimal).</p>
<p><strong>String content descriptor.</strong> The type of the string variable. It may be one of the following values:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">An error occurred evaluating the variable</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">A null-terminated unicode string</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">A length-prefix-2 unicode string</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">A length-prefix-4 unicode string</td>
</tr>
<tr>
<td valign="top"><em>4</em></td>
<td valign="top">A fixed-length unicode string</td>
</tr>
<tr>
<td valign="top"><em>5</em></td>
<td valign="top">A variable-length unicode string</td>
</tr>
<tr>
<td valign="top"><em>6</em></td>
<td valign="top">A null-terminated graphic string</td>
</tr>
<tr>
<td valign="top"><em>7</em></td>
<td valign="top">A length-prefix-2 graphic string</td>
</tr>
<tr>
<td valign="top"><em>8</em></td>
<td valign="top">A length-prefix-4 graphic string</td>
</tr>
<tr>
<td valign="top"><em>9</em></td>
<td valign="top">A fixed-length graphic string</td>
</tr>
<tr>
<td valign="top"><em>10</em></td>
<td valign="top">A variable-length graphic string</td>
</tr>
<tr>
<td valign="top"><em>11</em></td>
<td valign="top">A date string</td>
</tr>
<tr>
<td valign="top"><em>12</em></td>
<td valign="top">A packed date string</td>
</tr>
<tr>
<td valign="top"><em>13</em></td>
<td valign="top">A time string</td>
</tr>
<tr>
<td valign="top"><em>14</em></td>
<td valign="top">A packed time string</td>
</tr>
<tr>
<td valign="top"><em>15</em></td>
<td valign="top">A timestamp string</td>
</tr>
</table>
<p><strong>Total digits.</strong> The total number of digits associated with a decimal type (packed, zoned, or binary decimal).</p>
<p><strong>Variable entry type.</strong> The type of variable section that follows the module variable header section. It may be one of the following values:</p>
<table cellpadding="3">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">Scalar variable</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">Array definition</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">Block definition</td>
</tr>
</table>
<p><strong>Variable name.</strong> The field containing the name of the variable.</p>
<p><strong>Variable type.</strong> The data type of the variable. It may be one of the following values:</p>
<table width="100%">
<!-- cols="5 95" -->
<tr>
<td valign="top"><em>0</em></td>
<td valign="top">An error occurred evaluating the variable</td>
</tr>
<tr>
<td valign="top"><em>1</em></td>
<td valign="top">An 8-bit (1-byte) character</td>
</tr>
<tr>
<td valign="top"><em>2</em></td>
<td valign="top">A 16-bit character</td>
</tr>
<tr>
<td valign="top"><em>3</em></td>
<td valign="top">A 32-bit quantity having ordinal values of zero or one. Zero is the ordinal value for FALSE, and one is the ordinal value for TRUE.</td>
</tr>
<tr>
<td valign="top"><em>4</em></td>
<td valign="top">A 16-bit unsigned integer</td>
</tr>
<tr>
<td valign="top"><em>5</em></td>
<td valign="top">A 32-bit unsigned integer</td>
</tr>
<tr>
<td valign="top"><em>6</em></td>
<td valign="top">A 16-bit two's complement (signed) integer</td>
</tr>
<tr>
<td valign="top"><em>7</em></td>
<td valign="top">A 32-bit two's complement (signed) integer</td>
</tr>
<tr>
<td valign="top"><em>8</em></td>
<td valign="top">A 32-bit IEEE 754 floating point value</td>
</tr>
<tr>
<td valign="top"><em>9</em></td>
<td valign="top">A 64-bit IEEE 754 floating point value</td>
</tr>
<tr>
<td valign="top"><em>10</em></td>
<td valign="top">A 128-bit space pointer</td>
</tr>
<tr>
<td valign="top"><em>11</em></td>
<td valign="top">A fixed-length character string</td>
</tr>
<tr>
<td valign="top"><em>12</em></td>
<td valign="top">A packed decimal</td>
</tr>
<tr>
<td valign="top"><em>13</em></td>
<td valign="top">A zoned trailing embedded sign</td>
</tr>
<tr>
<td valign="top"><em>14</em></td>
<td valign="top">A zoned leading embedded sign</td>
</tr>
<tr>
<td valign="top"><em>15</em></td>
<td valign="top">A zoned trailing separate sign</td>
</tr>
<tr>
<td valign="top"><em>16</em></td>
<td valign="top">A zoned leading separate sign</td>
</tr>
<tr>
<td valign="top"><em>17</em></td>
<td valign="top">A 16-bit binary decimal</td>
</tr>
<tr>
<td valign="top"><em>18</em></td>
<td valign="top">A 32-bit binary decimal</td>
</tr>
<tr>
<td valign="top"><em>19</em></td>
<td valign="top">A 64-bit binary decimal</td>
</tr>
<tr>
<td valign="top"><em>20</em></td>
<td valign="top">A 32-bit index value</td>
</tr>
<tr>
<td valign="top"><em>21</em></td>
<td valign="top">An 8-bit unsigned integer</td>
</tr>
<tr>
<td valign="top"><em>22</em></td>
<td valign="top">An 8-bit signed integer</td>
</tr>
<tr>
<td valign="top"><em>23</em></td>
<td valign="top">A 64-bit unsigned integer</td>
</tr>
<tr>
<td valign="top"><em>24</em></td>
<td valign="top">A 64-bit signed integer</td>
</tr>
<tr>
<td valign="top"><em>25</em></td>
<td valign="top">A variable-length character string</td>
</tr>
</table>
<br><br>
<h3>Error Messages</h3>
<table width="100%" cellpadding="3">
<!-- cols="15 85" -->
<tr>
<th align="left" valign="top">Message ID</th>
<th align="left" valign="top">Error Message Text</th>
</tr>
<tr>
<td align="left" valign="top">CPF3C21 E</td>
<td valign="top">Format name &amp;1 is not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF1 E</td>
<td valign="top">Error code parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF3CF2 E</td>
<td valign="top">Error(s) occurred during running of &amp;1 API.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9549 E</td>
<td valign="top">Error addressing API parameter.</td>
</tr>
<tr>
<td align="left" valign="top">CPF954F E</td>
<td valign="top">Module &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF955F E</td>
<td valign="top">Program &amp;1 not a bound program.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9562 E</td>
<td valign="top">Module &amp;1 cannot be debugged.</td>
</tr>
<tr>
<td align="left" valign="top">CPF956D E</td>
<td valign="top">Parameter does not match on continuation request.</td>
</tr>
<tr>
<td align="left" valign="top">CPF956E E</td>
<td valign="top">Program language of module not supported.</td>
</tr>
<tr>
<td align="left" valign="top">CPF956F E</td>
<td valign="top">Continuation handle parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9573 E</td>
<td valign="top">Program type parameter not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9574 E</td>
<td valign="top">Call stack entry does not exist.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9579 E</td>
<td valign="top">Data option specified not valid.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9801 E</td>
<td valign="top">Object &amp;2 in library &amp;3 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9802 E</td>
<td valign="top">Not authorized to object &amp;2 in &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9803 E</td>
<td valign="top">Cannot allocate object &amp;2 in library &amp;3.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9809 E</td>
<td valign="top">Library &amp;1 cannot be accessed.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9810 E</td>
<td valign="top">Library &amp;1 not found.</td>
</tr>
<tr>
<td align="left" valign="top">CPF9820 E</td>
<td valign="top">Not authorized to use library &amp;1.</td>
</tr>
</table>
<br>
<hr>
API introduced: V3R1
<hr>
<center>
<table cellpadding="2" cellspacing="2">
<tr align="center">
<td valign="middle" align="center">
<a href="#top_Of_Page">Top</a> |
<a href="debug1.htm">Debugger APIs</a> |
<a href="aplist.htm">APIs by category</a></td>
</tr>
</table>
</center>
<br>
</body>
</html>