address operand
This is an operand used to address a memory location or memory area. The
operand may specify virtual addresses, data names, statement names, source
references, keywords, complex memory references, C qualifications (debugging
on machine code level) or PROG qualifications (symbolic debugging). The
memory location or area is located either in the program which has been loaded
or in a memory dump in a dump file. If a name has been assigned more than
once in a user program and thus no unique address reference is possible, area
qualifications or an identifier can be used to assign the name unambiguously to
the desired address.
address selector
The address selector supplies the corresponding address for a memory object.
It can be specified in COBOL with ADDRESS OF or as a low-level function in
the form %@(...).
AID input files
AID input files are files which AID requires to execute AID functions, as
distinguished from input files which the program requires. AID processes disk files
only. AID input files include:
Dump files containing memory dumps (%DUMPFILE)
PLAM libraries containing object modules. If the library has been assigned
with the aid of the %SYMLIB command, AID is able to load the LSD records.
AID literals
AID provides the user with both alphanumeric and numeric literals (see AID
Core Manual [1]):
{C'x...x' | 'x...x'| U'x...x'} Character literal {X'f...f'} Hexadecimal literal {B'b...b'} Binary literal [{±}]n Integer #'f...f' Hexadecimal number [{±}]n.m Decimal number [{±}]mantisseE[{±}]exponent Floating-point number
AID output files
AID output files are files to which the user can direct output of the %DISASSEM-
BLE, %DISPLAY, %HELP, %SDUMP and %TRACE commands. The files are
addressed via their link names (F0 through F7) in the output commands (see
%OUT and %OUTFILE). The REP records are written to the file assigned to link
name F6 (see %AID REP=YES and %MOVE).
There are three ways of creating an output file, or of assigning an output file:
%OUTFILE command with link name and file name
ADD-FILE-LINK command with link name and file name
For a link name to which no file name has been assigned, AID issues a FILE
macro with the file name AID.OUTFILE.Fn.
An AID output file always has the format FCBTYPE=SAM, RECFORM=V, and
is opened with MODE=EXTEND.
AID standard work area
This is the non-privileged part of virtual memory (in the user task) which is occupied
by the program and all its connected subsystems.
If no presetting has been made with the %BASE command and no base
qualification is specified, the AID standard work area applies by default.
AID work area
The AID work area is the address area in which the user may reference
addresses without having to specify a qualification. It comprises the non-privileged
part of virtual memory in the user task, which is occupied by the program
and all its connected subsystems or the corresponding area in a memory dump.
Using the %BASE command, you can shift the AID work area from the loaded
program to a memory dump, or vice versa. You may deviate from the AID work
area in a command by specifying a qualification in the address operand.
area check
In the case of byte offset, length modification and the receiver of a %MOVE, AID
checks whether the area limits of the referenced memory objects are exceeded
and issues a corresponding message if necessary.
area limits
Each memory object is assigned a particular area, which is defined by the
address and length attributes in the case of data names and keywords. For
virtual addresses, the area limits are between V’0’ and the last address in virtual
memory (V’7FFFFFFF’). In PROC/PROG qualifications, the area limits are
determined by the start and end addresses of the program unit (see AID Core
Manual [1]).
area qualification
These qualifications are used to identify part of the work area. If an address
operand ends with one of these qualifications, the command is effective only in
the part that is identified by the last qualification. An area qualification delimits
the active area of a command, or makes a data name or statement name unique
within the work area, or allows a name to be reached that would otherwise not
be addressable at the current interrupt point.
attributes
Each memory object has up to six attributes:
address, name (opt), content, length, storage type, output type.
Selectors can be used to access the address, length and storage type. Via the
name, AID finds all the associated attributes in the LSD records so they can be
processed accordingly.
Address constants and constants from the source program have only up to five
attributes:
name (opt), value, length, storage type, output type.
They have no address. When a constant is referenced, AID does not access a
memory object but merely inserts the value stored for the constant.
base qualification
This is the qualification designating either the loaded program or a memory
dump in a dump file. It is specified via E={VM | Dn}.
The base qualification can be declared globally with %BASE or specified explicitly
in the address operand for a single memory reference.
character conversion functions
AID provides two functions for character conversion, %C() and %UTF16().
The %UTF16() function converts strings from a 1-byte EBCDIC encoding to
UTF16 encoding; the %C function performs conversion in the other direction.
command mode
In the AID documentation, the term "command mode" designates the EXPERT
mode of the SDF command language. Users working in a different mode (GUID-
ANCE={MAXIMUM|MEDIUM|MINIMUM|NO})
and wishing to enter AID commands should
switch to EXPERT mode via MODIFY-SDF-OPTIONS GUIDANCE=EXPERT
.
AID commands are not supported by SDF syntax:
Operands are not queried via menus.
If an error occurs, AID issues an error message but does not offer a
correction dialog.
In EXPERT mode, the system prompt for command input is "/".
command sequence
Several commands are linked to form a sequence via semicolons (;). The
sequence is processed from left to right. A command sequence may contain
both AID and BS2000 commands, like a subcommand. Commands not permitted
in a command sequence are the AID commands %AID, %BASE, %DUMP-
FILE, %HELP, %OUT and %QUALIFY as well as the BS2000 commands listed
in the appendix of the AID Core Manual.
If a command sequence contains one of the commands for runtime control, the
command sequence is aborted at that point and the program is started (%CON-
TINUE, %RESUME, %TRACE) or halted (%STOP). As a result, any commands
which follow as part of the command sequence are not executed.
compilation unit
This consists of a single source program or a sequence of such programs. It is
addressed via the S qualification.
constant
A constant represents a value which cannot be accessed via an address in
program memory.
Constants include the figurative constants, the results of length selection, length
function and address selection, and the statement names and source
references.
An address constant represents an address. Address constants include statement
names, source references and the result of an address selection. They
can be used, in conjunction with a pointer operator (->), to address the
corresponding memory location.
CSECT information
is contained in the object structure list.
current call hierarchy
The current call hierarchy represents the status of subprogram nesting at the
interrupt point. It ranges from the subprogram level on which the program was
interrupted to the subprograms exited by CALL statements (intermediate levels)
to the main program.
The hierarchy is output using the %SDUMP %NEST command.
current compilation unit
The current compilation unit is the unit containing the current interrupt point.
current program
The current program is the program unit in which the compilation unit was
interrupted. Its name is output in the STOP message.
data item
This is a general term for all the data defined in the DATA DIVISION, covering
group items and tables and the elements in these.
data name
An operand that stands for all names assigned for data in the source program.
With the aid of the data name the user addresses data items during symbolic
debugging.
No LSD records are generated for definitions from the REPORT-SECTION, for
88 levels, for system switches in the SPECIAL-NAMES paragraph and the
NATIVE alphabet. Thus you cannot use AID to address this data.
If a data name is not unambiguous within a program unit, it can be identified by
being assigned to a specific group item with IN or OF.
Table elements can be addressed via an index as in COBOL.
data type
In accordance with the data type declared in the source program, AID assigns
an AID storage type to each data item:
binary string (
ï
%X)character (
ï
%C or %UTF16)numeric (
ï
%F, %D)
Not all data types that are numeric in COBOL are of the storage type numeric
for AID (see %SET table).
This storage type determines how the data item is output by %DISPLAY,
transferred or overwritten by %SET, and compared in the condition of a subcommand.
ESD
The External Symbol Dictionary (ESD) lists the external references of a module.
It is generated by the compiler and contains, among other items, information on
CSECTs, DSECTs and COMMONs. The linkage editor accesses the ESD when
it creates the object structure list.
global settings
AID offers commands facilitating addressing, saving input efforts and enabling
the behavior of AID to be adapted to individual requirements. The presettings
specified in these commands continue to apply throughout the debugging
session (see %AID, %AINT, %BASE and %QUALIFY).
index
The index is part of an address operand and permits the position of a table
element to be defined. It can be specified in the same way as in COBOL (in
contrast to COBOL, however, multiple indexes must be separated by commas) or
by means of an arithmetic expression from which AID calculates the index
value. This AID-specific index contains both the address of a table element with
a subscript and the COBOL-specific index from the INDEXED BY clause.
index-name
This is the symbolic name defined in the INDEXED BY clause for indexing a
table level. index-name may not be used to index another table.
If the AID index is to be calculated from an arithmetic expression, index-name
can be linked only with integers, not with other data items of the COBOL special
register TALLY.
input buffer
AID has an internal input buffer. If this buffer is not large enough to accommodate
a command input, the command is rejected with an error message identifying
it as too long. If fewer of the repeatable operands are specified, the
command will be accepted.
interrupt point
The interrupt point is the address at which a program has been interrupted.
From the STOP message the user can determine both the address at which and
the program unit in which the interrupt point is located. The program is continued
at this point. A different continuation address can be specified for COBOL
programs with the aid of the %JUMP command.
LIFO
Stands for the "last in, first out" principle. If statements from different entries
concur at a test point (%INSERT) or upon occurrence of an event (%ON), the
ones entered last are processed first (see AID Core Manual [1]).
localization information
%DISPLAY %HLLOC(memref) for the symbolic level and %DISPLAY
%LOC(memref) for the machine code level cause AID to output the static
program nesting for a given memory location.
Conversely, %SDUMP %NEST outputs the dynamic program nesting, i.e. the
call hierarchy for the current program interrupt point.
LSD
The List for Symbolic Debugging (LSD) is a list of the data/statement names
defined in the module. It also contains the compiler-generated source
references. The LSD records are created by the compiler. AID uses them to fetch
the information required for symbolic addressing.
memory object
A memory object is formed by a set of contiguous bytes in memory. At program
level, this comprises the program data (if it has been assigned a memory area)
and the instruction code. Other memory objects are all the registers, the
program counter, and all other areas that can only be addressed via keywords.
Conversely, any constants defined in the program, as well as statement names,
source references, the results of address selection, length selection and length
function, and the AID literals do not constitute memory objects because they
represent a value that cannot be changed.
memory reference
A memory reference addresses a memory object. Memory references can
either be simple or complex.
Simple memory references on machine code level are virtual addresses and
CSECTs. Symbolic memory references comprise all names (recorded in the
LSD information) of files, data and statements from the program, the source
references generated by the compiler and the AID keywords. Complex memory
references instruct AID how to calculate a particular address and which type
and length are to apply. The following operations are possible here: byte offset,
indirect addressing, type modification, length modification, address selection.
monitoring
%CONTROLn, %INSERT and %ON are monitoring commands. When the
program reaches a statement of the selected group (%CONTROLn) or the defined
program address (%INSERT), or if the declared event occurs (%ON), program
execution is interrupted and AID processes the specified subcommand.
name range
This comprises all file names, data names, special registers and figurative
constants stored for a program unit in the LSD records.
object structure list
On the basis of the External Symbol Dictionary (ESD), the linkage editor generates
the object structure list, provided the linkage editor option TEST-
OPTIONS=AID applies.
output type
This is an attribute of a memory object and determines how AID outputs the
memory contents. Each storage type has its corresponding output type. The
AID Core Manual [1], lists the AID-specific storage types together with their output
types. This assignment also applies for the data types used in COBOL.
A type modification in %DISPLAY and %SDUMP causes the output type to be
changed as well.
program state
AID makes a distinction between three program states which the program being
tested may assume:
The program has stopped.
%STOP, the K2 key or completion of a %TRACE interrupted the program. The task is in command mode. The user may enter commands.The program is running without tracing.
%RESUME started or continued the program. %CONTINUE does the same, with the exception that any active %TRACE is continued.The program is running with tracing.
%TRACE started or continued the program. The program sequence is logged in accordance with the declarations made in the %TRACE command. %CONTINUE has the same effect if a %TRACE is still active.
program unit
A subset of a complete COBOL program with a separate name in the PRO-
GRAM-ID, e.g. the main program or any subprogram called with CALL. It can
be addressed with a PROC or C qualification (segment, shared code module).
qualification
A qualification is used to reference an address which is not in the AID work area
or not uniquely defined therein. The base qualification specifies whether the
address is in the loaded program or in a memory dump. The S qualification
specifies the compilation unit in which the memory object is situated. The PROC
qualification or C qualification specifies the program unit or segment in which
the address is situated. If a qualification is found to be superfluous or contradictory,
it will be ignored. This is the case, for example, if a PROC qualification is
specified for a data element of the current program unit, except in %SDUMP.
source reference
A source reference designates an executable statement and is specified via
S’n[verb[m]] | S’xverb[m]
Source references are generated by the compiler and stored in LSD records.
n | x | is the line number that has been assigned by the programmer or compiler, in accordance with the SDF option applicable at compilation: |
verb | is the defined abbreviation of a COBOL verb (see section “Symbolic memory references” on page 21). |
m | is a number which you only need to specify if the same COBOL verb appears more than once in a statement line. |
special register
The COBOL compiler provides special registers for every program:
LINAGE-COUNTER RETURN-CODE SORT-CCSN SORT-CORE-SIZE SORT-EOW SORT-FILE-SIZE SORT-MODE-SIZE SORT-RETURN TALLY
A TALLY special register is created for each program. The RETURN-CODE
special register, on the other hand, is provided just once for the entire compilation
unit. The SORT special registers are generated only if the program contains
a sort section.
statement name
This designates the address of the first instruction in a section or paragraph in
the PROCEDURE DIVISION.
{L'section' | L'paragraph'} [IN L'section']
If a statement name cannot be confused with a data name, an alphanumeric
section or paragraph name can be specified without L’...’. If a paragraph name
is not unambiguous within a program unit, it can be identified with IN L’section’.
Statement names are address constants.
storage type
This is either the data type defined in the source program or the one selected
by way of type modification. AID knows the storage types %X, %C, %E, %P,
%D, %F, %A, %UTF16, %S and %SX
(see %SET and AID Core Manual [1]).
subcommand
A subcommand is an operand of the monitoring commands %CONTROLn,
%INSERT or %ON. A subcommand can contain a name, a condition and a
command part. The latter may comprise a single command or a command
sequence. It may contain both AID and BS2000 commands. Each subcommand
has an execution counter. Refer to the AID Core Manual [1], for information
on how an execution condition is formulated, how the names and execution
counters are assigned and addressed, and which commands are not permitted
within subcommands.
The command part of the subcommand is executed if the monitoring condition
(criterion, test-point, event) of the corresponding command is satisfied and any
execution condition defined has been met.
tracing
%TRACE is a tracing command, i.e. it can be used to define the type and number
of statements to be logged. Program execution can be viewed on the screen
as a standard procedure.
update dialog
The update dialog is initiated by means of the %AID CHECK=ALL command. It
goes into effect when the %MOVE or %SET command is executed. During the
dialog, AID queries whether updating of the memory contents really is to take
place. If N is entered in response, no modification is carried out; if Y is entered,
AID will execute the transfer.
user area
This is the area in virtual memory which is occupied by the loaded program and
all its connected subsystems. It corresponds to the area represented by the
keyword %CLASS6 (or %CLASS6ABOVE and %CLASS6BELOW).