Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

Qualifications

&pagelevel(3)&pagelevel

Qualifications are used when a memory object is not located within the current AID work area or is not unique in that area, or in order to identify a subarea. There are two types of qualification: the base qualification, by means of which the AID work area is defined, and the area qualifications, by means of which parts of the work area are addressed. The path to an area or to a memory object is also described by linking qualifications.

Qualifications are delimited by periods. Likewise a period must be inserted between the final qualification and the following operand.

Base qualification

E={VM|Dn}

The base qualification specifies whether the AID work area is to be located in a
loaded program (E=VM) or in a dump file (E=Dn). It is described in the AID Core
Manual (Related publications) [1], and under the %BASE command. A base qualification can be immediately followed by area qualifications or a file name, data name, special register,
figurative constant, statement name, source reference or complex memory
reference.

Area qualifications

These qualifications are used to identify a part of the work area. If an address operand ends with one of these qualifications, the command relates only to the part that is identified by the last qualification. An area qualification delimits the area in which a command takes effect, or it renders a data name or statement name unique within the work area, or it makes it possible to reach a name that would otherwise not be addressable at the current interrupt point.

CTX=context

The CTX qualification designates a context (see AID Core Manual (Related publications) [1]). It can only precede an S qualification. An address operand can only end with a CTX qualification
in the %SDUMP and %QUALIFY commands. This qualification is required if it is intended to address a compilation unit or CSECT which does not contain the
current interrupt point and which is contained in a number of contexts. context is the name of the context as explicitly assigned in the BIND macro or the implicitly
assigned name LOCAL#DEFAULT. Programs that are loaded with the DBL are also given the context name assigned as the default option, LOCAL#DEFAULT. Other
program contexts may result from connection to a shared code program.

So as to prevent further inflation of the syntax for the address operands of the
individual commands, the CTX qualification was not included there, particularly as they currently tend to be used only rarely. The AID Core Manual (Related publications) [1], contains further information, also in relation to debugging on machine code level.

Examples

%CONTROL1 IN CTX=LOCAL#DEFAULT.S=MAIN.PROC=PART

The control-area in this case is not in the current context in which the program was interrupted but in the LOCAL#DEFAULT context.

%SDUMP CTX=CTXPHASE

The current interrupt point is in a different context in the call hierarchy. In this %SDUMP the command is limited to the specified context.

%INSERT CTX=LOCAL#DEFAULT.S=SOURCE.PROC=UNDER.UNDER

The compilation unit SOURCE is both in the current context and in the LOCAL#DEFAULT context. A context qualification is needed in order to be able to define the test point.

S=srcname

The S qualification designates a compilation unit.

srcname is formed during compilation, from the program name in the PROGRAM-ID of a "complete" COBOL program (see COBOL2000 (BS2000) (Related publications) User Guide, chapter on "Compiler output" [13], or COBOL2000 (BS2000) (Related publications) Reference Manual [12],
chapter on "Program communication".)
srcname may have up to 8 characters when designating an object module (OM) and up to 30 characters for a link and load module (LLM). If an srcname ending with a
hyphen is produced for an object module as a result of truncation, the S qualification must be written as follows: S=N'srcname'

NESTLEV=level-number

The NESTLEV qualification defines a level number.

Like the qualification S=srcname.PROC=function, the qualification NESTLEV=level-
number is designed to manipulate data names that users declare in the source units. The environment qualification E={VM|Dn} is the only one NESTLEV=level-number
can be combined with.

The qualification NESTLEV accepts a level number, in other words, a reference to the current call hierarchy. Based on this reference, AID identifies a complete list of available data names defined at the specified level.

Normally, you have to display and analyze the call hierarchy before using the
NESTLEV qualification. The following AID commands output the current call
hierarchy augmented with the levels:

%AID LEV=ON

%SDUMP %NEST

The NESTLEV qualification can be used in the commands %DISPLAY, %MOVE,
%SDUMP and %SET. In these commands, the qualification NESTLEV=level-number can equally (with the same result) replace the qualification
S=srcname.PROC=function, if level-number is correct.

For an example for the usage of the NESTLEVqualification, see AID Core Manual, section “Area qualifications“[1].

PROC=program-id [ program-id ]

The PROC qualification designates a COBOL program. It may be a single program or the outermost or an outer or inner program of a nested program.

program-id consists of the maximum of 30 characters of the name from the the
PROGRAM-ID in the source program.

Operands specifying an address area (%CONTROL, %TRACE) or a name range
(%SDUMP) can end with the PROC qualification. The address range or name
range then encompasses the entire program. Otherwise you specify the PROC
qualification if you address a name in the LSD records which is not contained in the current program or is not unique in the compilation unit, i.e. in front of a file name, data name, statement name or a complex memory reference if the latter begins with a name.

program-id

If the name of a program is repeated directly after a PROC qualification, the user is

thus designating the address of the first program statement which can be executed.

If the current interrupt point is in the same program, the PROC qualification can be

omitted. This specification can be used in %DISASSEMBLE and %INSERT.

PROG=program-id [ program-id ]

This area qualification is a combination of the S and PROC qualification. It can only be used if the names of the compilation unit and of the program are identical, i.e. for an "outermost" program. In that case the same applies as to the PROC qualification.

The PROG qualification cannot be used if program-id is more than 8 characters
long. This restriction applies only for object modules (OMs).

The C qualifications listed below switch to the machine code level. They cannot be followed directly by a symbolic operand (see section “Symbolic memory references”"), only a compl-memref (see AID Core Manual (Related publications) [1]). Nevertheless, AID expects or adds a symbolic criterion in %CONTROLn or %TRACE. Only an E qualification, and if appropriate a CTX qualification, can be placed in front of a C qualification.

C=segmentname

This identifies a segment.
segmentname is composed of the first 6 places of the PROGRAM-ID and the segment number from the section header.

This C qualification allows you to define a segment as an area in %CONTROLn, %FIND, %ON write-event or %TRACE, or to declare the start address of the segment as start in %DISASSEMBLE or test-point in %INSERT.

C=sharename

This identifies a module that has been compiled with the SDF option SHAREABLE-CODE=YES. It therefore designates an object module.
sharename is composed of the first 7 places of the PROGRAM-ID and the character @.

This C qualification can be used to define the object module as an area in %CONTROLn, %FIND, %ON write-event or %TRACE provided it is loaded in class 6 memory. Modules loaded in class 4 memory cannot be addressed with this C
qualification.