Asmtiu 23
Asmtiu 23
Asmtiu 23
GC26-8709-09
High Level Assembler for z/OS & z/VM & z/VSE IBM
GC26-8709-09
Note
Before using this information and the product it supports, be sure to read the general information under “Notices” on page
311.
This edition applies to IBM High Level Assembler for z/OS & z/VM & z/VSE Toolkit Feature, Release 6, Program
Number 5696-234 and to any subsequent releases until otherwise indicated in new editions. Make sure that you are
using the correct edition for the level of the product.
Order publications through your IBM representative or the IBM branch office serving your locality.
IBM welcomes your comments. For information on how to send comments, see “How to send your comments to
IBM” on page xv.
© Copyright IBM Corporation 1992, 2017.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.
Contents
Figures . . . . . . . . . . . . . . . ix Building a module on z/OS . . . . . . . . 17
Building a module on CMS . . . . . . . . 17
About this book . . . . . . . . . . . xi Building a phase on z/VSE . . . . . . . . 17
Running ASMLANGX . . . . . . . . . . . 18
Syntax notation . . . . . . . . . . . . . xi
Extraction file allocation on z/OS . . . . . . 18
Online language extraction on TSO . . . . . 19
How to send your comments to IBM . . xv Batch language extraction on z/OS . . . . . 19
If you have a technical problem . . . . . . . xv Online language extraction on CMS . . . . . 20
Batch language extraction on z/VSE . . . . . 20
Summary of changes . . . . . . . . xvii Which files to keep . . . . . . . . . . . 21
Return codes . . . . . . . . . . . . . . 21
Part 1. What is IDF and how do I
Chapter 4. Invoking IDF to debug your
start using it? . . . . . . . . . . . 1
program . . . . . . . . . . . . . . 23
Running IDF on TSO and CMS . . . . . . . . 23
Chapter 1. Introduction to the Interactive Running IDF via TSO batch job. . . . . . . . 24
Debug Facility . . . . . . . . . . . . 3 Running IDF via z/OS batch job . . . . . . . 25
Capabilities . . . . . . . . . . . . . . . 3 Running IDF on z/VSE . . . . . . . . . . 26
Execution control . . . . . . . . . . . . 4 IDF options at invocation . . . . . . . . . . 27
Symbol support . . . . . . . . . . . . 4 1ADSTOP (CMS only) . . . . . . . . . . 27
Typeover storage modification . . . . . . . 5 AMODE24 | AMODE31 | AMODE64 (z/OS
Intelligent cursor sensing . . . . . . . . . 5 only) . . . . . . . . . . . . . . . 27
Screen swapping . . . . . . . . . . . . 5 ASCII . . . . . . . . . . . . . . . 28
Record and playback . . . . . . . . . . 5 AUTOLOAD | NOAUTOLD . . . . . . . 28
Customization - profile and macros . . . . . . 5 AUTOSIZE | NOAUTOSZ . . . . . . . . 28
Where can I run IDF? . . . . . . . . . . . 6 BCX | NOBCX . . . . . . . . . . . . 29
Environments supported . . . . . . . . . 6 CKSUBCM . . . . . . . . . . . . . 29
Limitations when debugging on TSO . . . . . 6 CMDLOG . . . . . . . . . . . . . . 29
Limitations when debugging on CMS . . . . . 7 CMPEXIT . . . . . . . . . . . . . . 29
Limitations when debugging under z/VSE . . . 7 COLORS | COLOURS . . . . . . . . . 30
COMMAND . . . . . . . . . . . . . 30
Chapter 2. Getting started with IDF . . . 9 DMSO (CMS only) . . . . . . . . . . . 30
Program preparation. . . . . . . . . . . . 9 EXITEXEC. . . . . . . . . . . . . . 31
Program debug basics . . . . . . . . . . . 9 FASTPATH | PATH | PATHFILE . . . . . 31
Sample debug session on TSO . . . . . . . . 10 FULLQUAL . . . . . . . . . . . . . 31
Sample program preparation . . . . . . . 10 HEXDISP . . . . . . . . . . . . . . 32
Invoking IDF . . . . . . . . . . . . . 10 HEXINPUT . . . . . . . . . . . . . 32
Invoking IDF with a TSO batch job . . . . . 10 IMPMACRO | NOIMPMAC . . . . . . . 32
Sample debug session on z/OS . . . . . . . . 11 INVPSW | NOINVPSW . . . . . . . . . 32
Invoking IDF with a batch job . . . . . . . 11 ISA (CMS only) . . . . . . . . . . . . 33
Sample debug session on CMS . . . . . . . . 11 LIBE (z/OS and CMS) . . . . . . . . . . 33
Sample program preparation . . . . . . . 11 LINE (CMS only) . . . . . . . . . . . 33
Invoking IDF . . . . . . . . . . . . . 11 LUNAME (z/VSE and z/OS) . . . . . . . 33
Sample debug session on z/VSE . . . . . . . 12 LSMDEBUG . . . . . . . . . . . . . 34
Sample program preparation . . . . . . . 12 MACROLOG . . . . . . . . . . . . . 34
Invoking IDF . . . . . . . . . . . . . 12 MODE (CMS only) . . . . . . . . . . . 34
Running IDF on a sample program . . . . . . 12 MODMAP | NOMODMAP (CMS only) . . . 34
NODSECTS . . . . . . . . . . . . . 35
NUCEXT (CMS only) . . . . . . . . . . 35
Part 2. Guide to using IDF . . . . . 15 OFFSET . . . . . . . . . . . . . . 35
OLDBREAK . . . . . . . . . . . . . 35
Chapter 3. Using ASMLANGX to extract PASSPGM . . . . . . . . . . . . . . 36
source-level information . . . . . . . 17 PROFILE | NOPROFIL . . . . . . . . . 36
Assembly requirements . . . . . . . . . . 17 QWDUMP. . . . . . . . . . . . . . 36
Program build requirements . . . . . . . . . 17 RISK . . . . . . . . . . . . . . . 36
Contents v
PFKDISP . . . . . . . . . . . . . . . 175 TYPE . . . . . . . . . . . . . . . . 210
PLOCATES . . . . . . . . . . . . . . 176 UNION . . . . . . . . . . . . . . . 210
PRESERVE . . . . . . . . . . . . . . 177 UNTIL . . . . . . . . . . . . . . . 211
PREVIOUS . . . . . . . . . . . . . . 177 UP . . . . . . . . . . . . . . . . . 211
PROGCHK (CMS only) . . . . . . . . . . 178 VALUE . . . . . . . . . . . . . . . 211
PROGCK (CMS only). . . . . . . . . . . 179 VARIABLE . . . . . . . . . . . . . . 212
PSW . . . . . . . . . . . . . . . . 179 VCHANGE . . . . . . . . . . . . . . 213
PSWSTEAL (CMS only) . . . . . . . . . . 179 VERSION . . . . . . . . . . . . . . 213
QUALIFY . . . . . . . . . . . . . . 181 VS . . . . . . . . . . . . . . . . . 214
QQUIT . . . . . . . . . . . . . . . 181 VSEP . . . . . . . . . . . . . . . . 214
QUIET . . . . . . . . . . . . . . . 181 WATCH . . . . . . . . . . . . . . . 214
QUIETLY . . . . . . . . . . . . . . . 181 WHERE . . . . . . . . . . . . . . . 216
QUIT . . . . . . . . . . . . . . . . 182 XEDEXIT (CMS only) . . . . . . . . . . 217
RCQUIT . . . . . . . . . . . . . . . 182 ZONED . . . . . . . . . . . . . . . 217
REFRESH . . . . . . . . . . . . . . 183
REGS . . . . . . . . . . . . . . . . 183
Part 3. Advanced topics, macros,
REGS64 (z/OS only) . . . . . . . . . . . 184
REGSTOPS (CMS only) . . . . . . . . . . 184 profiles, exit routines . . . . . . . 219
RESTORE . . . . . . . . . . . . . . 184
RETRIEVE . . . . . . . . . . . . . . 184 Chapter 11. Writing an IDF profile. . . 221
RIGHT . . . . . . . . . . . . . . . 185 When the PROFILE is executed . . . . . . . 222
RLOG . . . . . . . . . . . . . . . . 185 Command restrictions related to PROFILE
RUN . . . . . . . . . . . . . . . . 186 execution . . . . . . . . . . . . . . . 222
RUNEXIT . . . . . . . . . . . . . . 186
R0-R15 . . . . . . . . . . . . . . . 187 Chapter 12. Writing IDF macros . . . 225
SALIMIT . . . . . . . . . . . . . . . 187 REXX linkage considerations . . . . . . . . 226
SAREGS . . . . . . . . . . . . . . . 187 The REXX ADDRESS statement . . . . . . . 226
SAVE . . . . . . . . . . . . . . . . 188 Initial or default ADDRESS environment . . . . 227
SEARCH . . . . . . . . . . . . . . . 188 Overriding the default ADDRESS Environment . . 227
SELFNUCX (CMS only) . . . . . . . . . . 189 Saving and restoring an ADDRESS environment 227
SET ADSTOP (CMS only) . . . . . . . . . 190 Example macros . . . . . . . . . . . . 228
SET AREG . . . . . . . . . . . . . . 190 EX . . . . . . . . . . . . . . . . 228
SET BREAK . . . . . . . . . . . . . . 190 REGS . . . . . . . . . . . . . . . 229
SET COMMAND . . . . . . . . . . . . 191 SYSCMD . . . . . . . . . . . . . . 230
SET EXITEXEC . . . . . . . . . . . . . 191
SET GLOBAL STEM . . . . . . . . . . . 192
SET GLOBAL TEXT . . . . . . . . . . . 193
Chapter 13. The IDF exit routine . . . 231
SET ICOUNT . . . . . . . . . . . . . 193 Naming the exit routine . . . . . . . . . . 231
SET OFFSET. . . . . . . . . . . . . . 193 Controlling exit routine processing . . . . . . 231
SET OPTION . . . . . . . . . . . . . 194 Passing the reason for invocation . . . . . . . 231
SET PSW . . . . . . . . . . . . . . . 195 Looking at the address . . . . . . . . . . 232
SET REGSTOP (CMS only) . . . . . . . . . 196 Ignoring the event. . . . . . . . . . . . 232
SET SIZE . . . . . . . . . . . . . . . 196 Other techniques . . . . . . . . . . . . 233
SHOW . . . . . . . . . . . . . . . 197 Writing a compiled-language IDF exit routine . . 233
SIZE . . . . . . . . . . . . . . . . 198 Specifying that an exit routine is compiled code 233
SKIPSTEP . . . . . . . . . . . . . . 200 Requirements for compiled-language exit routines 233
SPACE . . . . . . . . . . . . . . . 201
STATUS . . . . . . . . . . . . . . . 201 Chapter 14. REXX variables available
STEP . . . . . . . . . . . . . . . . 202 to macros . . . . . . . . . . . . . 237
STMTSTEP . . . . . . . . . . . . . . 202 REXX variables with fixed names. . . . . . . 237
STOKEY . . . . . . . . . . . . . . . 203 REXX variables with variable names. . . . . . 238
STOREMAP . . . . . . . . . . . . . . 204
STRUCTURE . . . . . . . . . . . . . 204 Chapter 15. The EXTRACT command 241
SUBSET (CMS only) . . . . . . . . . . . 206 Return codes . . . . . . . . . . . . . 241
SVC (CMS only) . . . . . . . . . . . . 206 ADSTOPS (CMS only) . . . . . . . . . . 241
SWAP . . . . . . . . . . . . . . . . 206 ALET . . . . . . . . . . . . . . . . 242
SYMBOL . . . . . . . . . . . . . . . 207 AREGS . . . . . . . . . . . . . . . 242
TASKS (TSO only). . . . . . . . . . . . 208 ARGUMENT | ARGS . . . . . . . . . . 242
TITLE . . . . . . . . . . . . . . . . 208 ARRAY . . . . . . . . . . . . . . . 244
TOP . . . . . . . . . . . . . . . . 209 BREAK . . . . . . . . . . . . . . . 244
TRIGGER LOAD . . . . . . . . . . . . 209 CALLERS . . . . . . . . . . . . . . 245
Contents vii
viii HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Figures
1. Specifying parameters for your program (TSO) 45 15. A sample screen before any windows are
2. AdStops window . . . . . . . . . . 72 minimized . . . . . . . . . . . . . 81
3. An example of the Additional Floating-Point 16. The same screen after the Disassembly
Registers window . . . . . . . . . . 73 window is minimized . . . . . . . . . 81
4. An example of the Break window overlaying 17. Options window . . . . . . . . . . . 82
other windows . . . . . . . . . . . 74 18. Old Registers window . . . . . . . . . 82
5. Current Registers window, with General 19. Skipped Subroutines window . . . . . . 83
Purpose and Floating Point Registers . . . . 75 20. Target Status window . . . . . . . . . 83
6. Current Registers window, with Access 21. An example of several open windows on one
Registers . . . . . . . . . . . . . 75 screen . . . . . . . . . . . . . . 84
7. Current Registers window, with Control 22. An example of the Break window overlaying
Registers . . . . . . . . . . . . . 75 other windows . . . . . . . . . . . 85
8. Current Registers window, as opened with 23. Loading symbols directly from TEXT files 153
REGS64 . . . . . . . . . . . . . . 75 24. Example of a simple PROFILE . . . . . . 221
9. Disassembly window . . . . . . . . . 77 25. Example of a special purpose macro . . . . 226
10. Formatted Dump window . . . . . . . 78 26. Specifying a compiled-code exit routine 233
11. Unformatted Dump window . . . . . . . 79 27. Parameter list passed to compiled-code exit
12. Entry Point Names window . . . . . . . 80 routine . . . . . . . . . . . . . . 234
13. LSM Information window, with VARIABLE 28. Invoking an ISPF dialog using TSO TEST 309
command output. . . . . . . . . . . 80 29. Invoking an ISPF dialog using IDF . . . . 310
14. LSM Information window, with LANGUAGE
OPTIONS command output . . . . . . . 80
Syntax notation
Throughout this book, syntax descriptions use this structure:
v Read the syntax diagrams from left to right, from top to bottom, following the
path of the line.
The ►►── symbol indicates the beginning of a statement.
The ───► symbol indicates that the statement syntax is continued on the next
line.
The ►─── symbol indicates that a statement is continued from the previous line.
The ──►◄ indicates the end of a statement.
Diagrams of syntactical units other than complete statements start with the ►───
symbol and end with the ───► symbol.
v Keywords appear in uppercase letters (for example, ASPACE) or uppercase and
lowercase (for example, PATHFile). They must be spelled exactly as shown.
Lowercase letters are optional (for example, you could enter the PATHFile
keyword as PATHF, PATHFI, PATHFIL, or PATHFILE).
Variables appear in all lowercase letters in a special typeface (for example,
integer). They represent user-supplied names or values.
v If punctuation marks, parentheses, or such symbols are shown, they must be
entered as part of the syntax.
v Required items appear on the horizontal line (the main path).
v Optional items appear below the main path. If the item is optional and is the
default, the item appears above the main path.
v When you can choose from two or more items, they appear vertically in a stack.
If you must choose one of the items, one item of the stack appears on the main
path.
If choosing one of the items is optional, the whole stack appears below the main
path.
►► INSTRUCTION ►◄
optional choice1
optional choice2
v An arrow returning to the left above the main line indicates an item that can be
repeated. When the repeat arrow contains a separator character, such as a
comma, you must separate items with the separator character.
A repeat arrow above a stack indicates that you can make more than one choice
from the stacked items, or repeat a single choice.
Format
xii HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
▌A▐ ▌B▐ ▌C▐
►► INSTRUCTION ▼ fragment ►◄
optional item
fragment:
operand choice1
(1)
operand choice2
operand choice3
Notes:
1 operand choice2 and operand choice3 must not be specified together
When you send us comments, you grant to IBM a nonexclusive right to use or
distribute the information in any way it believes appropriate without incurring any
obligation to you.
The Language Support Module (LSM) functions provide for debugging Assembler
Language programs at the source level. The ASMLANGX utility reads the ADATA
file, produced by the High Level Assembler when you assembled your program,
and builds a file that IDF can use for source-level debugging.
You do not have to learn a new command language to use IDF. All IDF's basic
functions can be performed by using the default PF keys.
IDF is window oriented. The screen can be filled with windows of various types,
including:
v Current® Registers window
v Disassembly window
v Dump window
v LSM Information window
Windows can be mixed and matched in any order or combination on the screen.
You can open multiple:
v Dump windows to view multiple areas of non-contiguous storage
v LSM Information windows
v Disassembly windows to view and modify your program at the object code level
These windows will show the source statements if they are available.
In general, the command that opens the window (for example, REGS for the
Current Registers window) is used to close that window on the screen.
Capabilities
IDF can be used for disassembly-level (object code level) or source-level debugging
of user programs under z/OS, CMS, and z/VSE.
v On z/OS
– Programs can be “batch” or TSO Command Processors, with support
provided for reentrant modules.
– IDF provides for debugging programs (for example, ISPF programs) for
which some environmental setup is needed.
– Parameters are passed to your program using standard z/OS EXEC PGM or
TSO Command Processor linkage conventions.
v On CMS
– Programs can be a mix of user-area programs, transients, nucleus extensions,
and self-relocating nucleus extensions.
– Unless one of the debugged programs is a transient, CMS SUBSET is available
throughout the debugging session.
– IDF provides for debugging programs (for example, a REXX function
package) for which some environmental setup is needed.
Execution control
You can single-step through a program. If a Disassembly window is open as the
program progresses, the next instruction to be executed is highlighted.
You can use exit routines, written in REXX or compiled languages, to examine
conditions surrounding a breakpoint and determine whether or not to inform you
of its occurrence, or to ignore the breakpoint and continue execution.
By using the PATH option you can capture the number of times each instruction in
your program is executed. This can be helpful in locating "dead code".
You can use the HISTORY command to review the last 1,023 machine instructions
executed by your program. This is often useful in determining the circumstances
leading to a "wild branch" or similar error.
An exit routine can use the MSTEP command to perform a dynamic path analysis
of your program. (This analysis is slow, since part of a REXX exit routine is
executed for each instruction your program executes.)
z/VM If Extended Control (EC) mode is available to IDF, PER is used to provide
register or storage alteration stops. Breakpoints and single-step mode are
available regardless of EC mode availability.
All SVC instructions issued by your program can be trapped.
If your program invokes a nucleus extension through BALR linkage, an
option lets you single-step through that nucleus extension.
IDF can debug programs that "steal" the new PSWs, if your program's
instructions which access these PSWs are declared to IDF.
Symbol support
You get symbol support by assembling with the ADATA option and using
ASMLANGX to create an extraction file from the SYSADATA file.
This allows you to enter instruction and data addresses in symbolic notation, and
show data areas with their associated labels, or in an unformatted display.
IDF provides a disassembly capability, with code section (CSECT) and external
symbols intensified. Storage references are disassembled to their symbolic names
wherever possible.
If the Current Registers window is displayed, you can alter the PSW, general
purpose registers, and floating point registers in the same way.
When a Disassembly window is open, you can modify the hex values of the
instructions by typing over them. These changes are immediately reflected on the
screen with different instruction mnemonics, addresses, and so on.
The same things can be done in the Old Registers window as in the Current
Registers window.
When a Dump window is open or when the Disassembly window contains storage
being dumped, a full word memory location may be used to specify the next area
to be displayed by positioning the cursor in it and pressing a PF key. This is useful
for following a chain of control blocks.
When a Disassembly window is open, you can set breakpoints by positioning the
cursor on the desired instruction and pressing a PF key.
z/VM When a Dump window is open or when the Disassembly window contains
storage being dumped, you can set PER address (storage alteration) stops
by positioning the cursor on the desired location and issuing an ADSTOP
command.
Screen swapping
IDF provides a screen swapping facility for debugging programs that perform
full-screen I/O. When you use this facility, your program's screen is captured when
a breakpoint is reached, and restored when control is returned to your program for
more than a single instruction.
Environments supported
IDF runs on these operating systems, and unless otherwise stated, on subsequent
versions, releases, and modification levels of these systems:
z/OS OS/390® Version 2 or z/OS Version 1
Required:
Program preparation
Before invoking IDF, you need to make some information about your program
available to IDF.
In any case where IDF's source-level debug capabilities are used, before a
debugging session you must generate an IDF language extract file, using the
ASMLANGX utility.
Invoking IDF
At the TSO/E READY prompt allocate the required data sets:
ALLOC FI (ASMLANGX) DS(’<myid>.ASMLANGX’) SHR
TSOLIB ACT DS(’<myid>.LOAD’)
Wait until the initial IDF panel is displayed, and then continue at “Running IDF on
a sample program” on page 12.
Notes:
1. The IDF parameter LUNAME (or LU) must be specified
2. The IDF VTAM® APPLIDs ASMTL001 to ASMTLnnn must be ACTIVE
3. The VTAM luid specified in the LUNAME parameter must be ACTIVE
Notes:
1. The IDF parameters NOSVC97 and LUNAME must be specified
2. The IDF VTAM APPLIDs ASMTL001 to ASMTLnnn must be ACTIVE
3. The VTAM luid specified in the LUNAME parameter must be ACTIVE
4. TSO Command Processor programs are not supported
Invoking IDF
Invoke IDF by entering:
ASMIDF ASMMSAMP
Wait until the initial IDF panel is displayed, and then continue at “Running IDF on
a sample program” on page 12.
Invoking IDF
Invoke IDF by running:
* $$ JOB JNM=ASMMSAMP,CLASS=0,DISP=L,LDEST=*,PDEST=*
// JOB ASMMSAMP
// SETPFIX LIMIT=24K
// LIBDEF *,SEARCH=(PRD2.PROD,yourlib.sublib)
// EXEC ASMIDF,PARM=’ASMMSAMP (LU luname’
/*
/&
* $$ EOJ
Wait until the initial IDF panel is displayed on luname, and then continue at
“Running IDF on a sample program.”
ASMLANGX collects information about the program sections in the program being
debugged, from the SYSADAT(A) file created by the High Level Assembler.
Assembly requirements
The first step is to assemble the program.
If IDF cannot locate a MAP for a referenced phase then a dummy map is created.
The dummy map has one CSECT with the same name as the phase and one entry
point name ENTRY.
with
// EXEC ASMLKEDT,PARM=’...’.
For example:
// LIBDEF PHASE,CATALOG=MY.SUBLIB
// LIBDEF *,SEARCH=(MY.SUBLIB,...)
// OPTION CATAL
PHASE MYPROG,*
INCLUDE MYPROG
/*
* Invoke linkage editor and create MYPROG.MAP
// EXEC ASMLKEDT,PARM=’AMODE=24’
/*
Running ASMLANGX
The following sections describe how to run ASMLANGX to create a file to allow
source-level debugging.
ASMLANGX handles the case where several programs are included in a single
source file and the assembler BATCH option is used to process this composite
program.
For all operating systems, the input file must be a SYSADATA file created by High
Level Assembler Release 2 or higher.
ASMLANGX does not perform any dynamic allocation. You will need to allocate
the SYSADATA data set to DDname SYSADATA and the ASMLANGX data set to
DDNAME ASMLANGX before you invoke the ASMLANGX command processor.
►► ASMLANGX file-name ►◄
(
▼ option
file-name
The PDS member name of the input and output files.
For TSO sequential files (DSORG(PS)), the name is ignored.
The default input file DDname is SYSADATA. Please see “PFT” on page 281.
The default output file DDname is ASMLANGX. Please see “OFT” on page
280.
option
Options are described in Appendix A, “ASMLANGX options,” on page 277.
▼ option
file-name
The PDS member name of the input and output files.
For TSO sequential files (DSORG(PS)), the name is ignored.
The default input file DDname is SYSADATA. Please see “PFT” on page 281.
The default output file DDname is ASMLANGX. Please see “OFT” on page
280.
options
Options are described in Appendix A, “ASMLANGX options,” on page 277.
Example JCL
//* */
//* --ASMLANGX -- EXTRACTION --
//*
//* Replace member with the correct member name
//* Replace hlq. with the correct high-level qualifiers
//*
►► ASMLANGX file-name ( ►◄
▼ option
file-name
The file name (FN) of the input and output files.
The default input file type is SYSADATA. Please see “PFT” on page 281.
The default output file type is ASMLANGX. Please see “OFT” on page 280.
option
Options are described in Appendix A, “ASMLANGX options,” on page 277.
▼ option
output-file-name
The librarian member name of the ASMLANGX member that is either created
or replaced on the specified PHASE CATALOG library.
The default input file DLBL name is SYSADAT. Please see “PFT” on page 281.
The default output file name can be overridden. Please see “OFN” on page
280.
option
Options are described in Appendix A, “ASMLANGX options,” on page 277.
JCL example
* Create language member ASMSAMP.ASMLANGX on MY.LIB
* for source level debug
// LIBDEF *,SEARCH ...
// LIBDEF *,CATALOG=MY.LIB <======= Required
// DLBL SYSADAT,’my.adata’,0,VSAM,CAT=VSESPUC,DISP=(,KEEP)
// EXEC ASMLANGX,PARM=’myprog (ASM LOUD ERROR’
/*
Return codes
0 Operation successful, output file was written.
0xxx Error discovered while parsing arguments or options, values for xxx are:
1 Token too long
2 Left parenthesis found inside options
3 Unknown option
4 No primary input file name (PDS member name) was specified
2xxx Error occurred during scan of ADATA file.
3xxx Error occurred while writing output file.
For return codes 2xxx, and 3xxx, the values for xxx are:
0yy yy is the RC from File_Write
1yy yy is the RC from File_Open
2yy yy is the RC from File_Read
3yy yy is one of the following ASMLANGX codes:
10 = file not in expected format
11 = maximum mumber of statements exceeded
4yy yy is the RC from File_Point
5yy yy is the RC from Mem_Allocate
6yy yy is the RC from Mem_Free
7yy yy is the RC from File_Close
8yy yy is the RC from File_Note
For a complete list of options, see “IDF options at invocation” on page 27.
When you invoke IDF, double-check that your options are correct. If you make
mistakes setting up a debugging session, you are making the session more
complicated.
►► ASMIDF module-name ►
► ►◄
( ▼ idf-option
*profile-macro-option / module-parameters
module-name
The name of the module to be debugged.
idf-option
An option directed to IDF.
See “IDF options at invocation” on page 27 for details on the options.
*profile-macro-option
An option that begins with an asterisk (*) is not examined by IDF. Instead, it is
made available for processing by the PROFILE macro. Retrieve these options
by issuing the EXTRACT PLIST command within the macro and parsing the
result.
module-parameters
Parameters directed to the module that is to be debugged.
IDF only operates as a TSO command processor on a 3270 terminal, either real or
emulated.
► ►◄
▼ idf-option
*profile-macro-option / module-parameters
module-name
The name of the module to be debugged.
vtam_luid
The VTAM logical unit name of the terminal to be used by IDF.
idf-option
An option directed to IDF.
See “IDF options at invocation” on page 27 for details on the options.
The LUNAME option is required.
*profile-macro-option
An option that begins with an asterisk (*) is not examined by IDF. Instead, it is
made available for processing by the PROFILE macro. Retrieve these options
by issuing the EXTRACT PLIST command within the macro and parsing the
result.
module-parameters
Parameters directed to the module that is to be debugged.
Example JCL
Note: This example assumes the HLASM Toolkit target library (SASMMOD2) is in
the linklist.
//jobname JOB <job parameters>
//IDFT EXEC PGM=IKJEFT01,DYNAMNBR=100,REGION=0M
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
TSOLIB ACT DSN( ’<myid>.LOAD’ )
ALLOCATE DD(ASMLANGX) DSN( ’<myid>.ASMLANGX’ ) SHR REUSE
ALLOCATE DD(ASM) DSN( ’<myid>.ASM’ ) SHR REUSE
TSOEXEC ASMIDF MYPROG ( LU MYterm / module-parameters
TSOLIB DEACT
FREE FI(ASM ASMLANGX)
/*
► vtam_luid ►◄
▼ idf-option
*profile-macro-option / module-parameters
stepname
The name of the job step.
module-name
The name of the module to be debugged.
vtam_luid
The VTAM logical unit name of the terminal to be used by IDF.
idf-option
An option directed to IDF.
See “IDF options at invocation” on page 27 for details on the options.
The NOSVC97 option and the LUNAME option are required.
*profile-macro-option
An option that begins with an asterisk (*) is not examined by IDF. Instead, it is
made available for processing by the PROFILE macro. Retrieve these options
by issuing the EXTRACT PLIST command within the macro and parsing the
result.
module-parameters
Parameters directed to the module that is to be debugged.
Example JCL
//jobname JOB <job parameters>
//IDFB EXEC PGM=ASMIDFB,
// PARM=’MYPROG ( NOSVC97 LUNAME MYterm ’
//STEPLIB DD DISP=SHR,DSN=<myid>.LOAD
// DD DISP=SHR,DSN=ASM.SASMMOD1 HLASM TARGET LIBRARY
// DD DISP=SHR,DSN=ASM.SASMMOD2 TOOLKIT TARGET LIBRARY
//ASMLANGX DD DISP=SHR,DSN=<myid>.ASMLANGX
//ASM DD DISP=SHR,DSN=<myid>.ASM
//SYSTSPRT DD SYSOUT=C
► ' ►◄
/ phase-parameters
phasename
The name of the phase to be debugged.
idf-option
An option directed to IDF.
See “IDF options at invocation” on page 27 for details on the options.
The LUNAME option is required.
*profile-macro-option
An option that begins with an asterisk (*) is not examined by IDF. Instead, it is
made available for processing by the PROFILE macro. Retrieve these options
by issuing the EXTRACT PLIST command within the macro and parsing the
result.
phase-parameters
Parameters directed to the phase that is to be debugged.
Example JCL
// SETPFIX LIMIT=24K
// LIBDEF PHASE,SEARCH=(MY.LIBRARY,HLASM.LIBRARY)
// LIBDEF PROC,SEARCH=(MY.PROCLIB,HLASM.LIBRARY)
// EXEC ASMIDF,PARM=’MYPROG (LU MYterm /phase-parameters’
/*
When you set options in a profile, other restrictions apply. For more information,
see “Command restrictions related to PROFILE execution” on page 222.
►► 1ADStop ►◄
When PER is enabled, four address ranges are provided and storage modifications
in any of these ranges should cause IDF to present a message. Because of the way
the PER hardware works, IDF must partially disassemble the instruction being
executed to obtain an address to check against the address ranges. In some cases
storage modification events are missed.
However, if the 1ADSTOP option is set, the four address ranges are treated as a
single address range, beginning at the lowest address in any range and ending at
the highest address in any range. In this case events are recognized without partial
disassembly.
AMODE24
►► ►◄
AMODE31
AMODE64
AMODE31 is also valid on any XA or ESA system. It initializes the target program
as AMODE31, regardless of the CMS, z/OS, or z/VSE defaults.
ASCII
►► ASCii ►◄
ASCII tells IDF to display the character portion of dumped storage in ASCII rather
than in EBCDIC. Data overtyped in these areas is also in ASCII, rather than
EBCDIC.
AUTOLOAD | NOAUTOLD
AUTOLoad
►► ►◄
NOAUTOLd
AUTOLOAD tells IDF to issue LANGUAGE LOAD commands for you if you
STMTSTEP to a location that is not within a code section for which IDF Language
extract data was loaded. This is done in an attempt to automatically load IDF
Language extract files for you. This only works if the code section name matches
the file name of the extract file.
NOAUTOLD tells IDF not to issue LANGUAGE LOAD commands for you if you
STMTSTEP to a location that is not within a code section for which IDF Language
extract data was loaded. For more information about the LANGUAGE LOAD
command, see “LANGUAGE LOAD” on page 143.
AUTOSIZE | NOAUTOSZ
AUTOSize
►► ►◄
NOAUTOSz
BCX
►► ►◄
NOBcx
When the instruction displayed on the main panel is a BC or BCR, BCX shows an
extended branch mnemonic instead of the CC mask when disassembling the
instruction. Mnemonics used are those for use after compare instructions. This
option has no effect on branch relative instructions.
NOBCX does not show BC and BCR instructions as their extended mnemonics, but
shows the CC mask instead.
CKSUBCM
►► CKSubcm ►◄
When the CKSUBCM option is set, IDF checks that its subcommand environment
is intact before executing a REXX exit routine. The CKSUBCM option is intended
for use in hostile environments which cut off the subcommand chain.
CMDLOG
►► CMDLog ►◄
When the CMDLOG option is set, IDF logs each operator command in the
command log. For the location of the command log, and more information about
logging, see “Command record and playback features” on page 86.
CMPEXIT
►► CMPExit ►◄
CMPEXIT indicates that the exit routine defined by the SET EXITEXEC command
is a compiled-code routine, not a REXX exit routine.
►► COLors mhti ►◄
COLours
COLORS sets the display colors. You can specify up to four colors.
(Default)
m = color for messages white
h = color for headings turquoise
t = color for text blue
i = color for input data green
The first is always messages, the second is always headings, and so on. Valid color
letters are:
B = Blue G = Green P = Pink R = Red
T = Turquoise W = White Y = Yellow
For example, COLORS RYGB specifies messages red, headings yellow, text green,
and input blue.
COMMAND
►► COMmand module-parameters ►◄
►► DMSO ►◄
Most symbols that start with "DMS0" are generated by system macros and are a
nuisance. By default, they are ignored. When the DMS0 option is set, they are
loaded.
Note: Even if DMS0 is not set, "DMS0" symbols are loaded if they occur in
DSECTs.
►► EXITEXEC name ►◄
►► FASTPath ►◄
PATH
PATHFile
FASTPATH displays the number of times each instruction was executed, at the
right side of the disassembly listing. Equivalent to the PATH option in function,
but provides enhanced performance.
PATHFILE produces the same display as PATH, but at the end of operation, writes
the collected data to:
v On CMS, file "ASM PATHDATA fm", where fm is specified by the MODE option
(and defaults to file mode A1).
v On z/OS, the data set pointed to by the PATHDATA DD name.
v On z/VSE, to SYSLST.
See “The PATH, FASTPATH, and PATHFILE options” on page 41 for more
information.
FULLQUAL
►► FULLQual ►◄
FULLQUAL always displays and returns symbolic addresses with the module
name included. The default is to include only the module name, if the module
containing the address is not the currently qualified module. See “Addresses
displayed by IDF” on page 89 for more information.
►► HEXDisp ►◄
HEXINPUT
►► HEXInput ►◄
When the HEXINPUT option is set, IDF assumes that numbers input without any
explicit indication of base are hexadecimal. If the first digit of a hexadecimal
constant is not zero, IDF interprets it as the name of a symbol.
IMPMACRO | NOIMPMAC
IMPMacro
►► ►◄
NOIMPMac
NOIMPMAC disallows the implied execution of macros from the command line.
With this option in effect, macro invocations must be prefixed by the MACRO
keyword if they are to be found and executed.
INVPSW | NOINVPSW
NOINVPsw
►► INVPsw ►◄
When the INVPSW option is set, it lets you set the PSW to any combination of
hexadecimal digits through the SET PSW command.
When the NOINVPSW option is set, the PSW may only be set to a valid PSW
through the SET PSW command.
►► ISA address ►◄
ISA defines the address of a 16-byte doubleword-aligned interrupt save area that is
to be used by all of IDF's first level interrupt handlers.
Valid forms for address are X'nn', F'nn', and nn. The address must reside in the first
4k of storage. The default value is X'500.'.
►► LIBE fn ►◄
v On z/OS, the LIBE option specifies that the target load module should be
loaded from an alternate DD name. A "$" indicates that the target should be
loaded from the standard OS load module search order.
v On CMS, the LIBE option specifies that the target program is to be loaded from
an OS-style LOADLIB rather than from a CMS-style MODULE file. The fn
provided is "$", which indicates a CMS GLOBAL command has specified the
necessary LOADLIB, or the file name of the LOADLIB, which is added to the
list of GLOBAL LOADLIBs as the first library.
►► LINE line-address ►◄
The LINE option provides a means of telling IDF to use a terminal other than the
virtual console, and is useful when debugging full-screen applications. Specify the
line address in explicit hexadecimal or explicit decimal notation.
►► LUname lu-unit ►◄
The LUNAME option defines the lu-unit, the VTAM logical unit name of the
terminal to be used by IDF. This is required to run IDF in z/VSE.
►► LSMDebug ►◄
LSMDEBUG enables the internal diagnostic trace of the IDF Language Support
subsystem.
MACROLOG
►► MACROLog ►◄
When the MACROLOG option is set, all IDF commands that are issued by macros
or exit routines are written to:
v On CMS, "ASM MACROLOG fm", where fm is specified by the MODE option
(and defaults to file mode A1).
v On z/OS, the commands are written to the data set defined by the MACROLOG
DD name.
v On z/VSE, the commands are written to the data set defined by the MACROLG
DLBL.
►► MODE file-mode ►◄
When the MODE option is set, the "CMDLOG" and "PATHDATA" files are read
from or written to the minidisk at the specified file-mode. The "MACROLOG" file is
written to the minidisk at the specified file-mode.
MODMap
►► ►◄
NOMODMap
When the MODMAP option is set, IDF prefers the “fn MAP *” file over a “LOAD
MAP *” file for symbol information. If no “fn MAP *” is found, IDF checks for a
“LOAD MAP *” file.
NODSECTS
►► NODSects ►◄
The default is to load symbols that occur in DSECTs. The NODSECTS option
ignores these symbols.
►► NUCext ►◄
When the NUCEXT option is set, the program is supposed to run as a CMS
nucleus extension and is already loaded.
OFFSET
►► OFFSet ►◄
When the OFFSET option is set, IDF shows dump and disasm addresses in terms
of the currently set offset value. Data at the address specified by the current offset
is shown as +00000000.
OLDBREAK
►► OLDBREAK ►◄
The OLDBREAK option sets an alternative mode of operation for the BREAK
command. This mode of operation does not "toggle" a breakpoint. If the BREAK
command is issued against an address where a breakpoint is already set, IDF
issues an error message.
►► PASspgm ►◄
The PASSPGM option makes IDF pass program interruptions that are not the result
of a PER event to the CMS, z/OS, or z/VSE program interrupt handler. Used for
debugging exit routines.
Warning: If the target program has not activated an exit routine to trap the
interrupt, IDF abends. You may need to re-IPL CMS or logon to TSO again
following the debugging session. On z/VSE, PASSPGM occurs immediately on STXIT
PC entry. If the STXIT is not present, then IDF traps the program check.
PROFILE | NOPROFIL
►► PROfile ►◄
profile-macro
NOPROfil
If neither PROFILE nor NOPROFIL are specified, IDF attempts to run an initial
profile macro called PROFILE. If PROFILE is not found, then no initial profile
macro is run.
QWDUMP
►► QWDump ►◄
RISK
►► RISk ►◄
Setting the option may allow tracing of CMS services or DCSS-resident code under
some circumstances.
RLOG
►► RLog ►◄
When the RLOG option is set, as soon as the PROFILE macro has completed and
the target program is ready for execution, all the commands in the command log
file are executed. Then the CMDLOG option is set. This provides a means of
resuming an interrupted earlier debugging session.
For more information about command logging, see “Command record and
playback features” on page 86.
ROWSTYLE
►► ROWstyle ►◄
When the ROWSTYLE option is set, IDF uses the "traditional" row-style
arrangement for the register display. The default is to display in columns.
SBORDER
►► SBORDer ►◄
When the SBORDER option is set, IDF does not use APL characters in window
borders. This is useful when running IDF on a terminal emulator that does not
support APL characters.
SCDACTIV
►► SCDACTIV ►◄
►► SELFNucx symbol ►◄
The code is self-nucxloading, so IDF does not check the length shown in the
SCBLOCK to see that it matches the length in the MODULE.
STOPNOP | NOSTOPNP
STOPNOP
►► ►◄
NOSTOPNp
STOPNOP tells IDF to stop on NOP and NOPR instructions that follow BAL,
BALR, BAS, and BASR instructions.
NOSTOPNP prevents IDF from stopping on NOP and NOPR instructions that
follow BAL, BALR, BAS, and BASR instructions.
STOPSTMT | NOSTOPST
STOPSTmt
►► ►◄
NOSTOPSt
SVC97
►► ►◄
NOSVC97
When the SVC97 option is set, IDF uses SVC 97 for breakpoints.
When the NOSVC97 option is set, IDF does not use SVC 97 for breakpoints.
Instead, it uses invalid opcodes. NOSVC97 must be specified if running IDF in a
z/OS (non-TSO) batch environment.
The SVC97 and NOSVC97 options can be set only at invocation, or within the
profile macro prior to the load of the user application.
For more details see section “Breakpoint method selection (TSO)” on page 43.
SWAP
►► SWAp ►◄
SWAP tells IDF to capture the target's screen. You need this option when you are
debugging full-screen applications, and need to enter information on the screen.
You switch between the IDF debugging screen and the target application through
the SWAP command.
►► SYStem ►◄
When the SYSTEM option is set, the program runs in system key (key=0).
TRACEALL
►► TRACeall ►◄
When the TRACEALL option is set, and single-step mode is on, IDF traces
executed instructions as much as possible.
►► TRANs ►◄
UNFTDUMP
►► UNFtdump ►◄
When the UNFTDUMP option is set, the memory dump does not show symbols.
The formatted dump display may still be obtained with the DUMPMODE
command.
For example, to execute the CMS program "MYPROG" with the PATH support
enabled, issue the command:
ASMIDF MYPROG (PATH /Parms for MYPROG
If you specified the PATH or PATHFILE options when IDF was invoked, you can
choose an alternative algorithm for collecting the instruction execution count
information. You can set the FASTPATH option only after the target program is
loaded, and before any execution counts are collected.
If the count exceeds 7 digits, the leftmost digits are truncated. This is unlikely, as
executing individual instructions 10 million times through IDF imposes quite a
load on the system.
If you plan to use this option, make sure you have plenty of free disk space. Also
be aware that each instruction needs eight bytes of free storage, plus 20 bytes of
control information for every 64K block of information.
The FASTPATH option is really a "mode" type of setting. The type of storage
allocation and recording performed is determined by whether you issue a SET
OPTION ON FASTPATH or a SET OPTION ON PATH command first. Once you
have set the FASTPATH option to ON, you can use SET OPTION ON/OFF PATH
to turn execution recording on and off; the allocation method does not change once
it is initially set. Because the allocation mechanism assumes a given program size
and start address, the SET BASE and SET SIZE commands may not be used after
the FASTPATH option is set.
When using the FASTPATH option, instruction count information is only collected
for the original target module. All other instructions executed are ignored.
Note: You must allocate the DDs using TSO ALLOC commands, or place them in
your TSO startup procedure JCL, or place them in the batch IDF JCL. No dynamic
allocation is performed.
The disadvantage is that you must install IDF in the z/OS Link List or your
STEPLIB, or via the TSOLIB command. You cannot install it in a TASKLIB or
ISPLLIB concatenation. The reason for this is that IDF must be invoked directly
from TSO/E READY or from a CLIST that it is invoked from TSO/E READY. You
cannot invoke IDF from a REXX EXEC or under ISPF except by using the
TSOEXEC command. For an example of how to debug ISPF dialogs, see “ISPF
applications (TSO)” on page 50.
This is useful if your LOGON PROC does not have a STEPLIB that you can write
to.
The SVC97 and NOSVC97 options cannot be set after IDF has loaded your
program. As a result, if the profile macro issues a LOAD or a LOAD MODULE
command and you do not wish to use the default breakpoint method, you must
set the NOSVC97 option before issuing the LOAD or LOAD MODULE command.
The parameter string is passed to the target in standard z/OS EXEC PGM style. That
is, R1 points to a word that points to a halfword length field that is followed by
the parameter string itself.
The COMMAND option does not work exactly like the CP option of the TSO/E
TEST command. The examples in Appendix E, “Migrating from TSO/E TEST to
IDF,” on page 309 compare the use of these two options.
You can use the COMMAND option for other special environmental setups. For
more details, see “Programs requiring environmental setup (TSO)” on page 47.
When invoking IDF from another TSO program that calls the TSO service
IKJSCAN, such as ISPF, an extra right parenthesis is added to the end of the
command used to invoke IDF.
► ►◄
▼ idf-options
/ module-parameters
stepname
The name of the job step.
module-name
The name of the module to be debugged.
luname
The VTAM LU name of the terminal used to debug this module.
idf-options
Options to be passed to IDF.
module-parameters
Parameters to be passed to your module. These are passed to the program by
IDF in standard z/OS EXEC PGM style. That is, R1 points to a word that
points to a halfword length field that is followed by the parameter string itself.
If the LIBE option is NOT specified, then IDF uses the standard z/OS load module
search order. However after the load completes, IDF will attempt to read the
module to determine the module map. This read will fail unless the module was
loaded from a STEPLIB, TASKLIB or ISPLLIB (when in ISPF) data set.
If the LIBE option is specified, the next option token specifies the DD name of a
pre-allocated DD concatenation to be used in loading the target. If the target is not
in the specified concatenation of libraries the target is not loaded using the
standard z/OS search order.
If the NOSVC97 option is specified, the TSO TEST SVC 97 support is not used for
breakpoints.
Programs that dynamically load other modules and programs that are link-edited
as overlay programs may get z/OS System 106 ABENDs under IDF, unless the
library in which the target program resides is in the STEPLIB, ISPLLIB, or other
TASKLIB DD concatenation.
Also remember to allocate and free the DDs that are needed for IDF operation.
These include:
ASM Used to access the PDSs holding the IDF REXX EXECs used to customize
IDF for a particular task.
ASMLANGX
Used to access the PDSs holding the IDF Language extract data files, if you
want source-level debug.
If you plan to execute the program more than once under IDF, write these
commands into a REXX EXEC or CLIST.
This COMMAND is LINKed to, and if it is an EXEC, you must precede it with a
percent (%) sign. The percent sign signifies an implicit EXEC, and the command
string is passed to the EXEC command for execution.
You can use this technique to debug user-area programs that need environmental
setup.
IDF uses VTAM application IDs that are defined according to the convention:
v The first five characters must be ASMTL
v The last three characters must be consecutive 3-digit numbers, starting at 001
There must be at least as many VTAM application IDs defined as there are
concurrent IDF sessions. For example, if five IDF sessions are required at the same
time, then there must be the following (at least) five VTAM application IDs
defined: ASMTL001 ASMTL002 ASMTL003 ASMTL004 ASMTL005.
Note: If your program is dynamically loaded, and then deleted from storage, any
existing breakpoints are invalidated. Use the IDF DROP MODULE command to
notify IDF that the module definition is no longer valid.
DROP MODULE removes all breakpoints that are currently defined for locations
within this module. Any deferred breakpoints (from previous DBREAK commands)
are reactivated in case this module is loaded into storage again, possibly at a
different location.
For information about source level support for dynamically loaded programs, see
“Source level support” on page 97.
REXX functions must return an EVALBLOK. If you quit from IDF while in the
middle of a REXX function, an error message is issued by the REXX interpreter,
and you may have to LOGOFF and then LOGON to TSO again.
Notes:
1. The IDF session cannot be invoked from within ISPF. It must be invoked from
the TSO/E ready prompt.
2. If the library containing the program to be debugged does not reside in the
STEPLIB or ISPLLIB allocations, use TSOLIB ACTIVATE to include the load
library, or allocate the library and invoke IDF using the LIBE option to specify
the allocated DDNAME.
When IDF initially invokes your program, it establishes an ESTAE exit. If your
program has not established its own ESTAE exit (which overrides the IDF ESTAE),
IDF should receive control when the ATTENTION key is pressed.
When a break-in event is recognized, IDF displays the IDF user interface screen
and issues a message acknowledging the event. You can then continue your
debugging session.
Notes:
1. This requires SVC97 to operate normally.
2. There is no break-in event if the LUNAME option is specified when IDF is
invoked.
The origin and size of the programs known to IDF are displayed in the Target
Status window, when open.
If you have specified the TRACEALL option, IDF considers the defined limits of
your program to begin at location zero and extend upward to the end of storage.
Thus when you specify TRACEALL, you can trace through all of virtual memory.
Care should be taken if you attempt to trace through protected (read only) storage.
IDF provides the SWAP option to make this kind of debugging easier. If MYPROG
was a user-area program that performed full-screen I/O, you could debug it with
the following IDF command:
IDF myprog (SWAP /Parms for MYPROG
When the SWAP option is in effect, IDF attempts to respect the screen image
created by your program. In single-step mode, IDF does nothing special. However,
if you set a breakpoint in your program and press the RUN key to run the target
program to that point, before turning control over to your program, IDF restores
any saved screen image. When the breakpoint is reached, IDF captures the contents
of the screen and saves it before presenting its own display. The same process
occurs when you use the UNTIL command.
To capture the screen image, IDF uses the Read Buffer command in Character
Mode, so even program symbol sets should be saved.
To see the saved screen at a breakpoint, issue the SWAP command. To return to the
IDF screen, just press ENTER.
Breakpoints can be set in different subtasks at the same time, but this is only
reliable when only one subtask is “active” at a time (that is, the other subtask
remains non-dispatchable). This requires judicious use of breakpoints at the
appropriate points in the application. It is strongly recommended that you do not
place breakpoints in code which can be executed by multiple tasks if it is possible
for the breakpoints to be encountered simultaneously. Failure to do this can cause
unpredictable results.
By default, any local symbols which are present in SYM records within the
program object code are placed in the MAP file, with the prefix Invalid card
- IDF uses this information if, for some reason, you cannot use the ASMLANGX
files for source-level debugging. Suppress these records with the NOINV option of
the CMS LOAD command if you wish to minimize the size of the MAP file.
These parameters are parsed into tokenized and extended parameter lists. The flag
byte in R1 has the same contents as it has if your program is invoked directly. If
IDF is invoked from an EXEC-1 program, the contents of R0 at the time IDF was
invoked are propagated to your program's R0.
* CMS Parameter Lists ---------------------------------------
* A) Extended Parameter List
EPLIST DC A(start of command verb)
DC A(start of first nonblank byte following verb)
DC A(first byte past the end of the argument list)
DC A(0)
DS 0D align next part on doubleword
* B) Tokenized Parameter List
TPLIST DC CL8’command verb’
DC CL8’token’
... ...
DC CL8’token’
DC 8X’FF’
CMDSTR DC C’original command string’
Unless your program is a nucleus extension (see “CMS nucleus extensions loaded
explicitly”), IDF loads it into the appropriate area (user/transient) with the
LOADMOD command.
You issue:
ASMIDF myprog / fn ft fm (abcd
If you want to specify more options for IDF, for example to set display colors, you
specify:
ASMIDF myprog (COLORS RWGY / fn ft fm (abcd
User-area programs
By default, CMS programs are built to execute in the User Program Area at location
X'20000'.
Unless told otherwise, IDF assumes that you want to debug a user-area program.
There are no mandatory options to specify when debugging a user-area program
(although there are options you can specify to enable special features).
Under IDF, these programs are debugged in the same way as user-area programs
but the TRANS option must be specified so that IDF knows that you want to
debug a transient.
If MYPROG is a nucleus extension that you have loaded with the NUCXLOAD
command you invoke IDF:
ASMIDF myprog (NUCEXT /fn ft fm (abcd
If the nucleus extension was loaded from a LOADLIB and not a MODULE file, use
the LIBE $ option as well as the NUCEXT option. This tells IDF to not check the
MODULE file.
For example, if your program is a REXX function package, there is a short piece of
code at the start of the program that loads the remainder as a nucleus extension.
The real program begins at symbol FREEGO. You invoke IDF:
ASMIDF rxmyprog (SELFNUCX FREEGO/fn ft fm (abcd
You must pre-load the nucleus extension before invoking IDF. Since the program is
self-loading and may not yet be operational, you may have to use a two-run
technique with IDF:
1. First run:
For the first run, do not declare the program as self-loading. Invoke IDF as if
the program was only going to allocate nucleus storage. Trace through the
program up to the point where it normally branches to the NUCXLOADed
code, then QUIT from IDF. At this point, you have effectively pre-loaded the
nucleus extension.
2. Second run:
For the second run, invoke IDF with the SELFNUCX option as shown above.
Since you pre-loaded it in the first run, you can now continue debugging in the
NUCXLOADed code.
Note: It may also be possible to use the SET BASE and SELFNUCX VALUE
commands to trace a self-loading nucleus extension in a single run.
You can use the same technique to debug user-area programs that need
environmental setup.
If practical, when using the COMMAND option, allow the target program to
execute through to the point of its return to its caller (for example, to the EXEC
that was invoked by the COMMAND string and which then invoked the target
program). This “normal flow of control” allows any usual “house-cleaning” needed
by the operating system for these call/return linkages. If instead you QUIT from
the target program before its normal return, it may leave a “dangling” call linkage
to the target program, without a corresponding return.
IDF termination contains special logic to check for this condition (that is, a QUIT
from the target program that was invoked with a COMMAND string), and if
detected, IDF:
1. Issues a linemode message warning of the problem.
2. Executes one or more CMSRET RC=999 macros until the original SVC nesting (as
saved just before IDF's CMSCALL to the COMMAND string) is restored.
Attention: If your program is dynamically loaded, and then deleted from storage,
any existing breakpoints are invalidated. Use the IDF DROP MODULE
module-name command to notify IDF that the module definition is no longer valid.
DROP MODULE removes all breakpoints that are currently defined for locations
within this module. Any deferred breakpoints (from previous DBREAK commands)
are reactivated in case this module is loaded into storage again, possibly at a
different location.
IDF must be able to gain control when your program starts executing.
v Insert an invalid opcode (such as X'0000') at the entry point of your program
using one of the following methods:
– If your program is in assembler, insert a DC X'0000' data directive in its
source.
– If a MODULE editor is available, change the opcode at the entry point to
X'0000'. Record the original opcode for later restoration.
– Use a binary editor (such as the ISPF (PDF) editor in HEX mode), to edit the
object Module to change the opcode at the entry point to X'0000'. Record the
original opcode for later restoration.
Invoke IDF (you need to use the COMMAND option, as described in “Programs
requiring environmental setup” on page 57), and press the RUN key.
IDF issues the command you specified with the COMMAND option, and your
program is dynamically loaded into memory. It then executes the invalid
instruction (X'0000') that you inserted.
IDF issues a message saying that either an operation exception has occurred, or
that a breakpoint was reached.
At this point:
v If an extra instruction (X'0000') was inserted, you need to open the Current
Registers window, and use IDF's register typeover capability to update the PSW
to advance the current execution address by 2.
You can optionally replace the X'0000' by a NOPR R0 (X'0700') instruction. This
stops IDF receiving control at this location if the instruction is executed again.
v If an existing instruction was replaced (by an X'0000'), you can restore the
modified instruction to the original value by opening a Disassembly window or
Dump window and using IDF's storage typeover capability.
For information about source level support for dynamically loaded programs, see
“Source level support” on page 97.
REXX functions must return an EVALBLOK. If you quit from IDF while in the
middle of a REXX function, an error message is issued by the REXX interpreter,
and you may have to re-IPL CMS.
Remember that some interrupt routines are not automatically cleared by CMS at
end of command. ABNEXIT is one of these. If you are in a debugging session and
your program has declared an ABNEXIT routine, if you quit from IDF through PF3
before your program explicitly clears the exit routine, the exit routine remains in
effect even when your program is no longer in memory. The next time you run a
program or invoke IDF for another debugging session, a system abend is most
likely, after which you need to re-IPL CMS.
It is safest if you re-IPL CMS after a debugging session where exit routines were
tested. The results after IDF completes are unpredictable.
If your program has gone into an infinite loop however, there may not be any
interrupts. You can ensure a steady supply of interrupts by setting the PATH
option. This makes IDF take an interrupt after each target program instruction.
When a break-in event is recognized, IDF displays the IDF user interface screen
and issues a message acknowledging the break-in event. You can then continue the
debugging session.
The origin and size of the programs known to IDF are displayed in the Target
Status window, when open.
Whenever possible, IDF tells you if your program is about to branch to a location
outside its defined limits. This is often useful in finding a "wild branch", for
example to location zero.
If you have specified the TRACEALL option, IDF considers the defined limits of
your program to begin at location zero and extend upward to the address specified
in the VMSIZE word of NUCON. Thus when you specify TRACEALL, you can
trace through all of virtual memory.
Take care if you attempt to trace through protected (read only) storage.
If you specify the RISK option, IDF considers all of memory to be within your
program's defined limits. Thus you could attempt to step through code in a DCSS
that is actually above the address specified in the VMSIZE word of NUCON.
When PER mode is enabled through the Break window (the default is for IDF to
disable it), IDF puts the processor in EC mode before turning control over to the
target program. This lets IDF use the PER instruction fetch, register alteration, and
storage alteration features to monitor your program's execution. Single-stepping
and breakpoints are available in either mode. Register stops and address stops
(storage alteration stops) are available only in PER mode.
When you debug your program, allowing for these benefits and disadvantages
leads to better results and fewer surprises.
You are not committed to either mode for the entire debugging session. Whenever
IDF reaches a breakpoint and is therefore able to display the Break window, you
can change modes.
IDF provides the SWAP option to make this kind of debugging easier. If MYPROG
was a user-area program that performed full-screen I/O, you could debug it with:
ASMIDF myprog (SWAP /fn ft fm (abcd
When the SWAP option is in effect, IDF attempts to respect the screen image
created by your program. In single-step mode, IDF does nothing special when
SWAP is in effect. However, if you set a breakpoint in your program and press the
RUN key to run the target program to that point, before turning control over to
your program, IDF restores any saved screen image. When the breakpoint is
reached, IDF captures the contents of the screen and saves it before presenting its
own display. The same process occurs when you use the UNTIL command.
To capture the screen image, IDF uses the READ BUFFER command in Character
Mode, so even program symbol sets should be saved.
If you have two terminal sessions available, then you can use the LINE option. The
LINE option tells IDF to use the GRAF at the specified address for its I/O, instead
of using the virtual console.
To see the saved screen at a breakpoint, issue the SWAP command. To return to the
IDF screen, just press ENTER.
If the target program sets up an HNDEXT routine, that new routine supersedes
IDF's dummy handler without interfering with IDF operation. If IDF was invoked
by another program that had set up a HNDEXT routine, IDF's dummy handler
supersedes it.
Many message trappers "steal" the external new PSW and perform their own
interrupt handling at that level. If the message trapper you use does this, it is
likely that it can coexist with IDF. It is suggested that you test it to make sure, if
you are concerned about the possibility of losing messages that arrive during a
debugging session.
IDF does not affect the MSG setting, so if you do not use a message-trapping tool,
none of this should affect you.
Note: Phases loaded into the SVA or Logical Transients cannot be debugged.
On z/VSE, you must reference files using DLBL statements (JCL), and libraries
using LIBDEF statements.
where:
phasename
Is the name of the phase to be debugged
luname
Is the VTAM LU name of the terminal you use to debug this phase
idf-options
Are options to be passed to IDF
phase-parameters
Are parameters to be passed to your phase
Loading programs
The target program being debugged is loaded from the first sublibrary in the
LIBDEF PHASE SEARCH list in which it occurs.
JCL requirements
Because IDF runs from JCL, you need to specify any files that your program needs
in that JCL. You need to allocate optional IDF files, such as REXX customization
macros and IDF Language extract files. Even though IDF is started as a batch job,
it needs a terminal (defined by its VTAM logical unit (LU) name) to run. This
JCL example:
// SETPFIX LIMIT=24K
// LIBDEF PHASE,SEARCH=(my.library,HLASM.LIBRARY)
// LIBDEF PROC,SEARCH=(MY.PROCLIB,HLASM.LIBRARY)
// EXEC ASMIDF,PARM=’MYPROG (LU MYterm /phase-parameters’
/*
Attention: If your program is dynamically loaded, and then deleted from storage,
any existing breakpoints are invalidated. Use the IDF DROP MODULE command
to notify IDF that the module definition is no longer valid.
DROP MODULE removes all breakpoints that are currently defined for locations
within this module. Any deferred breakpoints (from previous DBREAK commands)
are reactivated in case this module is loaded into storage again, possibly at a
different location.
For information about source level support for dynamically loaded programs, see
“Source level support” on page 97.
When issuing MSG CICS partition console commands on debug sessions, do not
interrupt the IDF session.
Note: You may need to issue the RUN command twice when a branch
address is invalid, before the STXIT PC code is invoked.
STXIT AB
IDF lets you debug your STXIT AB routines if you set breakpoints in them.
Care should be taken when debugging STXIT AB routines with subtasks. If
another event is trapped by IDF at the same time as the STXIT AB
breakpoint, IDF may terminate the session due to a possible deadlock
situation.
STXIT IT, OC
IDF lets you debug your STXIT IT, OC routines if you set break points in
them. Refer to “Running with subtasks” on page 67 for considerations
when running with subtasks.
When IDF initially invokes your program, it has established a STXIT OC exit. If
your program has not established its own STXIT OC exit (which overrides the IDF
STXIT OC), IDF should receive control when the console command 'MSG partition
ID' is entered. This may cause corruption of any open data sets
When a break-in event is recognized, IDF displays the IDF user interface screen as
usual and issues a message acknowledging the event. You can then continue your
debugging session.
The origin and size of the programs known to IDF are displayed in the Target
Status window, when open.
If you have specified the TRACEALL option, IDF considers the defined limits of
your program to begin at location zero and extend upward to the end of storage.
Thus when you specify TRACEALL, you can trace through all of virtual memory.
Care should be taken if you attempt to trace through protected (read only) storage.
IDF provides the SWAP option to make this kind of debugging easier. If MYPROG
was a program that performed full-screen I/O, you could debug it with the
following IDF command:
// EXEC ASMIDF PARM=’myprog (LU myterminal SWAP /Parms for MYPROG’
When the SWAP option is in effect, IDF attempts to respect the screen image
created by your program. In single-step mode, IDF does nothing special. However,
if you set a breakpoint in your program and press the RUN key to run the target
program to that point, before turning control over to your program, IDF restores
any saved screen image. Then when the breakpoint is reached, IDF captures the
contents of the screen and saves it before presenting its own display. The same
process occurs when you use the UNTIL command.
To capture the screen image, IDF uses the READ BUFFER command in Character
Mode, so even program symbol sets should be saved.
Windows
IDF has many different windows:
v AdStops window
v Additional Floating-Point Registers window
v Break window
v Current Registers window
v Disassembly window
v Dump window
v Entry Point Names window
v LSM Information window
v Minimized Windows Viewer
v Options window
v Old Registers window
v Skipped Subroutines window
v Target Status window
By default, when windows are opened, IDF positions them on the screen so that
their top border overlays the bottom border of the window last opened. The
exceptions to this rule are:
v AdStops window
v Break window
v Skipped Subroutines window
These windows are placed on the right of the screen.
As windows are opened they are added to the bottom of the screen. Use the
ORDER command to move a window to the front of the list of windows being
displayed.
Change this default behavior with the NOAUTOSZ option (AUTOSIZE is the
default), or with the SET OPTION OFF AUTOSIZE command.
When AUTOSIZE is off, all open windows are placed in the upper left corner of
the screen.
The AdStops window lets you set and reset register alteration stops (RegStops) or
clear storage alteration stops (AdStops).
┌01─AdStops──────────────────────────────────────────────────┐
│ PER Register Stop (RegStop) on: │
│ R0 N R4 N R8 N R12 N │
│ R1 N R5 N R9 Y R13 N │
│ R2 N R6 N R10 N R14 N │
│ R3 Y R7 N R11 N R15 N │
│ │
│ PER Address Stop (AdStop) ranges: │
│ 1. 000202E0 (SUBJOB) @DL00101 │
│ 00020306 (SUBJOB) @DE00103 │
│ 2. Free │
│ Free │
│ 3. Free │
│ Free │
│ 4. Free │
│ Free │
└────────────────────────────────────────────────────────────┘
To clear a storage alteration stop, just place the cursor on the field describing the
stop you want to clear, and either press the ERASE-EOF key or overtype the field
with blanks. You must clear both the start and the end address.
You can change the contents of the registers by overtyping the hex values
displayed.
Break window
Open the Break window by issuing the BREAK command without providing any
arguments. Close the window by issuing the BREAK command again without any
arguments or by issuing the CLOSE command against that window. When the
Break window is opened, it is positioned at the top right corner of the screen,
overlaying any existing information. It uses only as many rows as needed to
display the breakpoint information.
The window lists the active breakpoints and watchpoints. For watchpoints, the
address is preceded by a "w" and the condition are displayed on the next line. Any
commands associated with the breakpoint or watchpoint are shown on the
following line. If there are more breakpoints or watchpoints than fit on the screen
the NEXT and PREVIOUS commands scroll forwards and backwards through the
list.
The Break window also lets you clear breakpoints. Breakpoints remain in effect
until you explicitly clear them.
To clear a breakpoint, place the cursor on the field describing the breakpoint you
want to clear, and either press the ERASE-EOF key or overtype the field with
blanks.
==>
z/VM The Break window lets you enable or disable SVC trapping and PER
operation. Change the SVC and PER settings by overtyping the values
shown.
By default it displays the current PSW, the current general purpose and floating
point registers. If the CREGS command was issued the current control registers are
displayed. If the AREGS command was issued the current access registers are
displayed.
Figure 5. Current Registers window, with General Purpose and Floating Point Registers
┌01─Current Registers────────────────────────────────────────────────────────┐
│ Access Registers: PSW 03E800008005774A (CC mask=2 H) │
│ A0 00000000 A1 00000001 A2 00000000 A3 00000000 │
│ A4 00000000 A5 00000000 A6 00000000 A7 00000000 │
│ A8 00000000 A9 00000000 A10 00000000 A11 00000000 │
│ A12 00000000 A13 00000000 A14 00000000 A15 00000000 │
!────────────────────────────────────────────────────────────────────────────┘
┌01─Current Registers────────────────────────────────────────────────────────┐
│ Control Registers: PSW 03E800008005774A (CC mask=2 H) │
│ C0 000100E0 C1 00000000 C2 00000000 C3 00000000 │
│ C4 00000000 C5 00000000 C6 FF000000 C7 00000000 │
│ C8 00000000 C9 00000000 C10 00000000 C11 00000000 │
│ C12 00000000 C13 00000000 C14 1F000000 C15 00000000 │
!────────────────────────────────────────────────────────────────────────────┘
┌01─Current Registers────────────────────────────────────────────────────────┐
│ (TESTVAR) TESTVAR │
│ EPSW FF00000000000000 000000000000ACC0 (CC mask=8 E) │
│ R0 00000000 FEFE000F R8 00000000 FEFE080F FPR0 0000000000000000 │
│ R1 00000000 0000D024 R9 00000000 FEFE090F FPR2 0000000000000000 │
│ R2 00000000 FEFE020F R10 00000000 FEFE0A0F FPR4 0000000000000000 │
│ R3 00000000 FEFE030F R11 00000000 FEFE0B0F FPR6 0000000000000000 │
│ R4 00000000 FEFE040F R12 00000000 0000ACC0 │
│ R5 00000000 FEFE050F R13 00000000 0000D058 │
│ R6 00000000 FEFE060F R14 00000000 00090466 │
│ R7 00000000 FEFE070F R15 00000000 0000ACC0 │
!────────────────────────────────────────────────────────────────────────────┘
You can modify the contents of the PSW or registers whenever they are displayed
by overtyping the current information with the new value.
Disassembly window
Open a Disassembly window with the DISASM command or the OPEN DISASM
command. Close it by issuing the DISASM command without an address or by
issuing the CLOSE command against that window. Many Disassembly windows
can be open. Each Disassembly window can display storage and source at a
different address.
To change the location counter such that it reflects the original location counter of
the CSECT as it appears in the assembler listing, use the OFFSET command to set
the offset to the starting location of the CSECT within the modules. It may be
necessary to set the OFFSET option on (use the OPTIONS command to review the
current options).
CSECT names and external symbols are shown intensified (or in the heading color)
and the next instruction to be executed is shown intensified (or in the message
color). If a breakpoint was set for an instruction, then its address (at the left side of
the screen) is shown intensified (or in the heading color). If a watchpoint was set
for an instruction, then its address is shown intensified (or in the heading color)
and is preceded by a 'w'. If an instruction starts a subroutine that is being skipped,
then its address is shown intensified (or in the heading color) and is preceded by
an 's'.
All open Disassembly windows share any space on the screen not occupied by the
Additional Floating-Point Registers window, the Current Registers window, the
Old Registers window, the Options window, and the Target Status window with
any open Dump windows, and LSM Information windows. Use the SIZE and
MOVE commands to change the size and location of any open window.
Dump window
Open a Dump window by issuing the DUMP command or the OPEN DUMP
command. Close it by issuing the DUMP command without an address or by
issuing the CLOSE command against that window. Many Dump windows can be
open. Each Dump window can display storage at a different address. The Dump
window provides either a symbolic or an unformatted dump of storage. The dump
format is toggled by the DUMPMODE command.
If a non-zero ALET was provided for a Dump window, then that window displays
storage from the dataspace identified by the ALET. The storage in the dataspace is
dumped in the unformatted style regardless of the current dump mode selected.
The ALET specified is displayed on the first row of the Dump window.
You specify an ALET for a Dump window with the SET ALET command, by using
an access register in an expression, or by placing the cursor in an access register in
the Current Registers window or Old Registers window.
All open Dump windows share any space on the screen not occupied by the
Additional Floating-Point Registers window, the Current Registers window, the
The symbolic format shows data areas with their symbolic names indicated. In
addition, the symbolic dump format shows only the memory area that applies.
The advantage of this dump format is that you see the variable and its limits,
without hunting for them. The disadvantage is that less is shown on each screen,
since a line is taken for each new variable's name.
┌01─Storage Dump─────────────────────────────────────────────────────────────┐
│ 00010408 47F0F0E8 D3898385 95A28584 40D481A3 │ å00YLicensed Mat │ │
│ 00010418 85998981 93A24060 40D79996 978599A3 │ erials - Propert │ │
│ 00010428 A8409686 40C9C2D4 40C5E7C1 D4D7D3C5 │ y of IBM EXAMPLE │ │
│ 00010438 F1404DC3 5D40C396 97A89989 8788A340 │ 1 (C) Copyright │ │
│ 00010448 C9C2D440 C3D6D9D7 40F1F9F9 F56BF2F0 │ IBM CORP 1995,20 │ │
│ 00010458 F0F44B40 C1939340 D9898788 A3A240D9 │ 04. All Rights R │ │
│ 00010468 85A28599 A585844B 40E4E240 C796A585 │ eserved. US Gove │ │
│ 00010478 99959485 95A340E4 A28599A2 40D985A2 │ rnment Users Res │ │
│ 00010488 A3998983 A3858440 D9898788 A3A24060 │ tricted Rights - │ │
│ 00010498 40E4A285 6B4084A4 97938983 81A38996 │ Use, duplicatio │ │
│ 000104A8 95409699 408489A2 839396A2 A4998540 │ n or disclosure │ │
│ 000104B8 9985A2A3 998983A3 85844082 A840C7E2 │ restricted by GS │ │
│ 000104C8 C140C1C4 D740E283 888584A4 938540C3 │ A ADP Schedule C │ │
│ 000104D8 9695A399 8183A340 A689A388 40C9C2D4 │ ontract with IBM │ │
│ 000104E8 40C39699 974B4000 90ECD00C 18CF41E0 │ Corp. .°Ö}..õ \ │ │
│ 000104F8 F11050D0 E00450E0 D00818DE 58F0F158 │ 1.&}\.&\}..úì01ì │ │
│ 00010508 05EF58D0 D00450F0 D01098EC D00C07FE │ .Õì}}.&0}.qÖ}..Ú │ │
│ 00010518 00000000 00000000 00000000 00000000 │ ................ │ │
│ 00010528 00000000 00000000 00000000 00000000 │ ................ │ │
│ 00010538 00000000 00000000 00000000 00000000 │ ................ │ │
│ 00010548 00000000 00000000 00000000 00000000 │ ................ │ │
│ 00010558 00000000 00000000 00010568 00000000 │ ...........Ç.... │ │
│ 00010568 47F0F016 C5E7C1D4 D7D3C5F2 40F2F0F0 │ å00.EXAMPLE2 200 │ │
│ 00010578 F4F0F3F0 F30090EC D00C18CF 41E0F114 │ 40303.°Ö}..õ \1. │ │
│ 00010588 50D0E004 50E0D008 18DE17FF 58D0D004 │ &}\.&\}..ú..ì}}. │ │
│ 00010598 50F0D010 98ECD00C 07FE90EC D00C18CF │ &0}.qÖ}..Ú°Ö}..õ │ │
│ 000105A8 41E0F114 50D0E004 50E0D008 18DE17FF │ \1.&}\.&\}..ú.. │ │
│ 000105B8 58D0D004 50F0D010 98ECD00C 07FE90EC │ ì}}.&0}.qÖ}..Ú°Ö │ │
│ 000105C8 D00C18CF 41E0F114 50D0E004 50E0D008 │ }..õ \1.&}\.&\}. │ │
│ 000105D8 18DE17FF 58D0D004 50F0D010 98ECD00C │ .ú..ì}}.&0}.qÖ}. │ │
│ 000105E8 07FE90EC D00C18CF 41E0F114 50D0E004 │ .Ú°Ö}..õ \1.&}\. │ │
│ 000105F8 50E0D008 18DE17FF 58D0D004 50F0D010 │ &\}..ú..ì}}.&0}. │ │
│ 00010608 98ECD00C 07FE90EC D00C18CF 41E0F114 │ qÖ}..Ú°Ö}..õ \1. │ │
│ 00010618 50D0E004 50E0D008 18DE17FF 58D0D004 │ &}\.&\}..ú..ì}}. │ │
│ 00010628 50F0D010 98ECD00C 07FE90EC D00C18CF │ &0}.qÖ}..Ú°Ö}..õ │ │
│ 00010638 41E0F114 50D0E004 50E0D008 18DE17FF │ \1.&}\.&\}..ú.. │ │
│ 00010648 58D0D004 50F0D010 98ECD00C 07FE90EC │ ì}}.&0}.qÖ}..Ú°Ö │ │
│ 00010658 D00C18CF 41E0F114 50D0E004 50E0D008 │ }..õ \1.&}\.&\}. │ │
!────────────────────────────────────────────────────────────────────────────┘
Regardless of the dump format, you can modify memory by overtyping the data
shown, in either the hexadecimal or the character portions of the display.
Characters overtyped in the character portion are EBCDIC unless the ASCII option
is ON.
The Entry Point Names window has a fixed size. Use the PREVIOUS and NEXT
commands or PF keys to scroll to the next or previous page, provided the cursor is
in the Entry Point Names window when the command is issued or the PF key
pressed. The window lists the program name, entry point name, load address and
long entry point name for each entry point in the module being debugged.
You can change the short entry point name by overtyping it.
All open LSM Information windows share any space on the screen not occupied by
the Additional Floating-Point Registers window, the Current Registers window, the
Old Registers window, the Options window, and the Target Status window with
any open Disassembly windows, and Dump windows. Use the SIZE and MOVE
commands to change the size and location of any open window.
The title and contents of an LSM Information window varies depending on the
command being used and the IDF Language options and settings.
┌───────────────────────────────────────────────────────────────────────────┐
│ Var: BThing > This is the b-thing here < │
!───────────────────────────────────────────────────────────────────────────┘
Figure 13. LSM Information window, with VARIABLE command output. In this case, the
variable attributes are hidden due to the COMPACT ON (default) Language option.
┌01─Language Options──────────────────────────────────────────────────────────┐
│ Show: Both, Stmt │
│ Dcls: ON Comments: ON Macs: ON Generated: ON Nocode: OFF │
│ Space: OFF Brief: OFF Compact: OFF │
│ Char: EBCDIC Fixed: Decimal Float: Std Bit: Bit │
│ Enum: Decimal Packed: Decimal Zoned: Decimal │
│ VAR checking: Bounds: ON Negative: ON Substring: ON Optimize: ON │
│ Audit: OFF │
│ SAREGS: OFF SALIMIT: 100 │
│ Major: OFF PadID: OFF Detail: MIN,3 │
│ Nest: 0 Scroll: MAX │
│ Debug: OFF │
│ Stem: LSM. EXLIMIT: 20000 │
│ XPATH: ASMLANGX │
!─────────────────────────────────────────────────────────────────────────────┘
Figure 14. LSM Information window, with LANGUAGE OPTIONS command output
┌01─Current Registers───────────────────────────────────────────────────────┐
│ (TCAT) @PROLOG+44 PSW 078D100080057722 (CC mask=4 L)│
│ R0 00009025 R1 000120D4 R2 FEFE020F R3 FEFE030F FPR0 0000000000000000 │
│ R4 FEFE040F R5 FEFE050F R6 FEFE060F R7 FEFE070F FPR2 0000000000000000 │
│ R8 FEFE080F R9 000577BC R10 FEFE0A0F R11 FEFE0B0F FPR4 0000000000000000 │
│ R12 800576E0 R13 00012130 R14 000145CC R15 800576E0 FPR6 0000000000000000 │
├02─Disassembly─────────────────────────────────────────────────────────────┤
│ (TCAT) @PROLOG+32 │
│ 00057716 92C1 C0CA MVI CTGTYPE,193 │
│ 0005771A 943F C0BA NI CTGOPTN3,63 │
│ 0005771E 9620 C0BA OI CTGOPTN3,32 │
│ 00057722 4190 07D8 LA R9,2008 │
│ 00057726 5090 C108 ST R9,CATWRK │
│ 0005772A 1F88 SLR R8,R8 │
│ 0005772C 5080 C10C ST R8,CATWRKUS │
│ 00057730 4190 C108 LA R9,CATWRK │
│ 00057734 5090 C0C4 ST R9,CTGWKA │
│ 00057738 4170 0002 LA R7,2 │
!───────────────────────────────────────────────────────────────────────────┘
==>
┌01─Current Registers────────────────────────────────────────────────────────┐
│ (TCAT) @PROLOG+44 PSW 078D100080057722 (CC mask=4 L) │
│ R0 00009025 R1 000120D4 R2 FEFE020F R3 FEFE030F FPR0 0000000000000000 │
│ R4 FEFE040F R5 FEFE050F R6 FEFE060F R7 FEFE070F FPR2 0000000000000000 │
│ R8 FEFE080F R9 000577BC R10 FEFE0A0F R11 FEFE0B0F FPR4 0000000000000000 │
│ R12 800576E0 R13 00012130 R14 000145CC R15 800576E0 FPR6 0000000000000000 │
!────────────────────────────────────────────────────────────────────────────┘
==>
Figure 16. The same screen after the Disassembly window is minimized
Options window
Open an Options window with the OPTIONS command. Close it by issuing the
OPTIONS command again, or by issuing the CLOSE command against that
window.
The Options window has a fixed size. Use the PREVIOUS and NEXT commands or
PF keys to scroll to the next or previous page of settings, provided the cursor is in
┌04─Debugger Options──────────────────────────────────────────────More: + - ─┐
│ APROGMSG: ON ASCii: OFF AUTOLoad: ON AUTOSize: ON BCX: ON │
│ CKSubcm: OFF CMDLog: OFF CMPExit: OFF COMmand: OFF DMS0: OFF │
│ DSECts: ON EXItexec: OFF FASTPath: OFF FULLQual: OFF HEXDisp: ON │
│ HEXInput: ON IMPMacro: ON INVPsw: OFF MACROLog: OFF MODMap: ON │
!────────────────────────────────────────────────────────────────────────────┘
Some IDF options settings cannot be modified after IDF has completed
initialization. For these, the option setting is shown in the same color as the option
name.
┌01─Old Registers────────────────────────────────────────────────────────────┐
│ (TCAT) @PROLOG+82 PSW 078D200080057748 (CC mask=2 H) │
│ 00057748 1836 LR R3,R6 │
│ R0 00009025 R1 000120D4 R2 00057FC0 R3 FEFE030F FPR0 0000000000000000 │
│ R4 FEFE040F R5 FEFE050F R6 00000001 R7 00000002 FPR2 0000000000000000 │
│ R8 00000000 R9 000577E8 R10 FEFE0A0F R11 FEFE0B0F FPR4 0000000000000000 │
│ R12 800576E0 R13 00012130 R14 000145CC R15 800576E0 FPR6 000000000000000 │
!────────────────────────────────────────────────────────────────────────────┘
If your program has executed one or more instructions, by default, a copy of the
PSW, next instruction, and registers as of the last time IDF was in control are also
shown (after this these are generally the previous contents of the PSW, general
registers, and so on). If the CREGS command or the AREGS command was issued,
the control registers or the access registers, as of the last time IDF was in control,
are displayed. If your program has not executed any instructions, this window is
empty.
The window lists the subroutines for which single-stepping, statement stepping, or
the PATH or FASTPATH options are bypassed. If there are more skipped
subroutines than fit on the screen, the NEXT and PREVIOUS commands scroll
forward and backward through the list.
The Skipped Subroutines window also lets you stop the "skipping" of a subroutine
by placing the cursor on the field describing the subroutine in question, and either
pressing the ERASE-EOF key or overtyping the field with blanks.
┌───────────────────────────────────────────────────────────────────────────┐
│ Program VARMVSXA Origin 00057920 Entrypoint 80057920 │
│ Symbols 66 End 00057FFF Size(hex) 000006E0 Size(dec) 1760 │
!───────────────────────────────────────────────────────────────────────────┘
The Target Status window provides information about the programs known to IDF.
This includes the number of symbols in the program known to IDF, where the
program was loaded in memory, how large it is, and, for the original target, its
entrypoint address. The name of the currently qualified module is shown in the
message color. The window shows the information about one module at a time. To
display information about the other modules known to IDF, place the cursor in the
Target Status window and issue a NEXT or PREVIOUS command.
z/OS For multi-segment program objects the window shows information about
one segment at a time. For example: PROGA with AMODE24 and
AMODE31 classes bound with the SPLIT option will have two entries, one
for each segment, with the same Program name.
If your screen display is like the one shown above, and you open the Break
window, the Break window overlays part of the screen as described above and
shown in Figure 22 on page 85.
Specifying a window
Many commands affect what is displayed in a particular window. There can be
more than one Disassembly window, Dump window, or LSM Information window,
open at once. IDF needs to be told which one is the target of commands like
DISASM, DUMP, FOLLOW, LANGUAGE, SEARCH, and SET ALET. Similarly, with
the CLOSE, MOVE, NEXT, PREVIOUS, and SIZE commands IDF needs to be told
which window to use.
To tell IDF which window to use, you can use a Window Specification in the
appropriate command. The Window Specification is an equal sign followed by the
window's window number, in the form "=n". The Window Specification, if present,
must precede any operands of the command. For example:
DISASM =2 address
FOLLOW =3 R9
If you neither use a Window Specification nor place the cursor in a window of the
appropriate type (Disassembly window for DISASM command, and so on), then:
1. The DISASM and LANGUAGE commands use the first open Disassembly
window.
2. The DUMP and FOLLOW commands use the first open Dump window.
3. The ARRAY, STRUCTURE, and VARIABLE commands use the first open LSM
Information window.
4. The NEXT and PREVIOUS commands scroll all the open windows.
5. The SIZE and MOVE commands need the window type as an extra argument.
6. The SEARCH command starts searching from the start address of the first open
Disassembly window or Dump window.
PF keys
The default PF key settings provide the functions anticipated to be most useful.
As distributed on CMS and TSO, the ENTER key is set to the COMMAND
command. This means that you can invoke any IDF command by typing it on the
command line and pressing ENTER, instead of invoking it by pressing a PF key.
You can redefine the PF keys by issuing a SET command on the command line, by
issuing SET commands in your PROFILE (the usual method), or by writing a
macro to reset them (occasionally useful). The SET PFK command is described in
“PFK” on page 175.
The ENTER key and PF1 through PF24 can be set to any IDF command or to any
IDF macro.
By default, PF13 through PF24 are undefined and undisplayed. To display use
“PFKDISP” on page 175. Any of those keys that remain undefined are mapped into
PF1 through PF12. This makes it easier to use some terminals.
To record a debugging session on the command level, specify or set the CMDLOG
option.
To play back all or part of a session recorded at command level, use the RLOG
command, or specify the RLOG option at invocation.
Address expressions
You can specify the addresses you provide to IDF either by the cursor placement
(for information about this see “Arguments and cursor positioning” on page 89) or
by typing an expression on the command line before pressing a PF key.
Source statement numbers can be used as symbolic names. They are specified in
the form "STMT#nnnnn", where nnnnn is the statement number involved.
Numeric values that are input without an explicit hexadecimal (X'999') or decimal
(F'999') indication, for example "246", are interpreted by IDF as determined by the
current base setting. The default base is decimal. It can be redefined to
hexadecimal with HEXINPUT ON or SET OPTION ON HEXINPUT. (The arrow
beside the command line indicates the default base; an arrow of the form "-->" is
used if the default base is decimal, and of the form "==>" is used if the default
base is hex.)
Implicitly specified hexadecimal numbers must begin with a numeric digit from 0
to 9. If you attempt to input a hexadecimal number such as A34 implicitly, IDF
interprets it as the name of a symbol, not a number. Thus, 0A34 is recognized
(assuming the default base is hexadecimal) but A34 is taken as a symbol name.
In some cases you may wish to specify a CSECT name or a module name. For
example, if symbol LOOP occurs in two assemblies, you have to specify the CSECT
name of the symbol you are referring to. If the symbol is not in the currently
QUALIFIED module, you have to specify the module of the symbol you are
referring to. Specify the module name and the CSECT name by prefixing the term
with them, and enclosing them in parentheses. The module name, when present,
precedes the CSECT name and is followed by a period. When a module name is
specified, a CSECT name need not be specified. Here are some examples:
(TEST)LOOP
(VARMVSXA.VARASM) BTHING
(TCAT.) LOCRET
The SET QUALIFY command tells IDF which module's symbols should be
searched when a module name is not specified in a symbolic name.
In some cases you may wish to follow a term with a register designator. A register
designator consists of the strings 'PSW', 'R0' through 'R15', or 'AR0' through 'AR15',
enclosed in parentheses. If 'AR0' through 'AR15' are specified then those
commands that can use an ALET use the ALET contained in that access register in
addition to the contents of the associated general purpose register. For example,
location LOOP in CSECT TEST indexed by the current contents of R4 is specified:
(TEST)LOOP(R4)
The byte at the location addressed by R4 in the dataspace identified by the ALET
in AR4 is specified:
0(AR4)
24(R2)+0(R3)
As another example, to find the difference between two labels in the same CSECT,
LOOP, and LOOPEND, you could use:
(TEST)LOOPEND-(TEST)LOOP
If you have a translate table, you might want to use an expression with a character
term:
TRTABLE+C’t’
Terms and register designators can be followed by indirection operators (%, :>, &,
+>, ?, =>, ->). If an indirection operator follows a term, IDF uses the contents of
the word pointed to by the expression evaluated thus far. Similarly, if an
indirection operator follows a register designator, IDF is being told how to
interpret the contents of the register. The word or register is treated as:
v A 24-bit address if the % or :> operators are used.
v A 31-bit address if the ? or => operators are used.
v A 64-bit address if the & or +> operators are used.
v The appropriate size (31-bit or 24-bit or 64-bit) depending on the AMODE of the
PSW if the -> operator was used.
If the current offset value is X'20000', the expression +X'40' gives the value X'20040'.
If the address is within the limits of the currently qualified module, the module
name and the separating period are normally left out. The FULLQUAL option
forces IDF to always include the module name in generated symbolic names.
Source statement numbers can be used as symbolic names. They are specified in
the form "STMT#nnnnn", where nnnnn is the statement number involved. nnnnn can
be any value between 1 and 65535 inclusive.
IDF uses "intelligent" cursor sensing logic to let you specify a "verb" by pressing a
PF key, and specify the argument by either typing an expression, or "pointing"
with the cursor. Instead of typing an expression and a command, you can place the
cursor on a display field, then press a PF key. This tells IDF to perform the
requested task at the current cursor location.
If you find the rules described here difficult to remember, experiment with IDF to
see if you can get the "feel" of it. If not, you can always specify arguments by
typing them on the command line.
Programmers write programs at the source level. It follows that when the reason
for a problem is not immediately visible, it is advantageous to also debug at the
source level. The addition of the ASMLANGX step to the program development
process means that IDF Language extract data is available for the program compile
units. When this data is loaded using the IDF LOAD LANGUAGE or STEP or
STMTSTEP commands, you can perform these extra functions:
v
– Selectively enable and disable the display of variable declaration statements
with SHOW DCLS and HIDE DCLS commands.
– Selectively enable and disable the display of block comments with SHOW
COMMENTS and HIDE COMMENTS commands.
– Selectively enable and disable the display of macro definitions and macro
expansions with SHOW MACROS and HIDE MACROS commands.
v Perform source text searches
– You can find and display the desired area of the source code.
– The search can be up or down.
– Both LOCATE (like the XEDIT Locate command) and FIND (like the ISPF
Editor Find command) commands are supported.
v Set breakpoints on program statements
– The breakpoint can be at the start of, or within, any program statement.
v Single-step your program
– You can use the STMTSTEP command to single-step at the program statement
level.
– You can use the STEP command to single-step at the program instruction
level.
v Program variable data display (with optional typeover alteration)
– Supported for any program variable that is "known" in the currently
executing program block.
– There are many types of variables. These are displayed with different IDF
Language Support commands:
- To display simple variables, the VARIABLE command is used.
- To display structures and their components, the STRUCTURE command is
used.
- To display array elements, the ARRAY command is used.
- To display variables type attributes, the TYPE command is used.
- To display the names of variables for which a pointer (or locator) variable
is a valid base address, the PLOCATES command is used.
For more details, see “Displaying and changing items” on page 93.
– The various forms of program variable display support complex expressions.
See “Variable expressions” on page 93 for more details.
v Program variable name display
With STOPSTMT OFF, a STMTSTEP on a call to another CSECT will still perform
single-stepping on each instruction in the called routine (without updating the
display) until an instruction for which language extract data was loaded is
encountered. This may involve many thousands of instructions before such an
instruction is encountered, and may give the appearance that the program is in a
loop because the display is locked during this process.
If the STEP command is issued by a macro, it does not take effect until the macro
exits. The MSTEP command can be used to execute target instructions before
returning control to the invoking macro.
If you have subroutines within the program which you do not want to step
through, use the SKIPSTEP command. The SKIPSTEP command causes IDF to skip
stepping when it comes to a subroutine call to a subroutine that was added to the
list of subroutines being skipped. For the purposes of stepping, the skipped
subroutine is treated as one instruction, the subroutine call instruction itself. If a
breakpoint or a watchpoint whose condition is true is placed within the execution
path of the subroutine being skipped, execution stops at that breakpoint or
watchpoint.
variables VARIABLE
structures STRUCTURE
array elements ARRAY
type attributes for a variable TYPE
pointer locates information for a variable PLOCATES
If the array is actually a substructure with multiple components you must spend
the time to scroll past the components which are not relevant to the problem at
hand. The ARRAY command helps in these situations.
When you use the ARRAY command, you select the initial element to be displayed
using the same syntax as the VARIABLE command. The significant differences are:
v When the LSM Information window is scrolled forwards past the end of the
current variable information display, the next element in the array is displayed.
v When the LSM Information window is scrolled backwards past the beginning of
the current variable information display, the previous element in the array is
displayed.
Variable expressions
Variable expressions are supported for those programs for which the program that
generates the extraction file (ASMLANGX) has made variable information
available. Variables are displayed in PL/I-like format, with appropriate extensions
where needed.
Variable scope
The source statement which corresponds to the current instruction address in the
PSW is used to determine the current program scope.
Only variables that are active within the current program scope can be accessed.
Variable names
Variable names are 1 to 255 characters.
Simple variables
Simple variables are defined by name only.
Aggregate variables
Structures are examples of aggregate variables, where a number of variables are
associated together in a hierarchical manner.
The major component is the term which is used to define the variable which
"owns" the aggregate. The variables within the aggregate are variously known as
components, fields, and members depending on the source language.
Dot qualification
A simple variable can have the same name as a variable which is within a
structure. In this case, dot qualification is used to distinguish the variables.
Dcl
minor Char(1), /* Simple variable */
When a structure is more than 2 levels deep, IDF lets you omit any of the leading
names, as long as the name is not ambiguous. If multiple variables within the
Based variables
You can specify based variables by name only, in which case the implicit variable
basing is used if available. This is:
v The variable basing which was defined when the variable was declared. For
some variables, such as parameters, this information is determined during the
extraction process (by ASMLANGX).
v The variable basing as redefined by an active assembler USING statement.
Alternatively, you can specify an explicit locating expression, making use of the ->
locator operator.
Array indexing
Information regarding the upper and lower bounds of each array dimension are
defined within the IDF Language extract file.
If too many array indexes are specified, a warning message is issued and the extra
indexes are ignored.
If insufficient array indexes are specified, a warning message is issued and the
remaining indexes are set to the low bound of the corresponding array dimension.
Variables and built-in function results can specify array index specifications.
Array index values must normally be within the bounds defined by the variable
declaration. Suppress this check with the CHECK BOUNDS OFF command.
Substrings
For Character String and Bit String variables, you can specify that only a portion of
the string (from here on known as a “substring”) is processed by a command.
The definition of the first element of a string varies from language to language.
IDF lets you specify the format to be used:
PL/I-like-style
v array index or substring expression is enclosed within parentheses
v first element in the string is element 1
C-style
v array index or substring expression is enclosed within either square
brackets ("[" and "]"), or the equivalent trigraphs ("??(" and "??)")
v first element in the string is element 0
Substring ranges must normally be within the limits defined by the variable
declaration. Suppress this check with the CHECK SUBSTRING OFF command.
Examples
var stuff
str addr(x’20000’)->struct
var addr(12(R2))->ptr->stuff(2)
var ptr->ptr2->stuff
var ptr(3)->ptr->stuff
arr stuff(-5)
arr stuff(1:10)
arr stuff(1::25)
var var1;var2
var var1 ;ptr->stuff
var stuff(1:10) ; stuff(30:40)
var chrarray(15,1:10);chrarray(15,1::10)
var chrarray[15,0:9];chrarray[15,0::10]
Displaying CALLERS
Calling hierarchy information display is supported for all programs which use the
standard OS/VS "Type-1" convention for Save Area area register usage and
chaining.
For more information about displaying the calling hierarchy information for one or
more generations in the program caller hierarchy, see “CALLERS” on page 114.
The QUALIFY command (see “QUALIFY” on page 181) lets you change the
default module name. This is useful with dynamically loaded programs to simplify
the commands.
For example, assume that the initial program is ARROW, and IDF has loaded
another program called TARGET. The default module name starts off as ARROW
and a command like DISASM SECTA searches ARROW for the section names SECTA.
If there is also a section named SECTA in TARGET, to display this section, you
have to enter the command DISASM TARGET.SECTA.
If you issue QUAL TARGET first to change the default section name, then DISASM
SECTA searches module TARGET.
The qualified name is used whenever a module name is omitted from a command,
and the displays remove the qualified name from the window title. Using the
previous example, and with QUAL TARGET issued, then the DISASM window from
DISASM SECTA shows (SECTA), and if there is another window displaying SECTA
from the module ARROW, then the title in that window shows (ARROW.SECTA).
IDF commands perform the same functions regardless of whether they are invoked
through a PF key, the command line (when a PF key set to COMMAND is
pressed), or a macro.
If you have not read “Arguments and cursor positioning” on page 89, please do so
before you continue. Many of the following command descriptions assume you
understand how IDF obtains an address from the cursor position.
The documentation of each command describes a way in which the command will
work. The IDF command processor is powerful and flexible, and it is possible that
there are alternative undocumented variations to these commands that will also
work.
100 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Breakpoint Commands Page
Meta Control Commands
APROGMSG “APROGMSG (CMS only)” on page 107
AUDIT “AUDIT” on page 109
DROP GLOBAL “DROP GLOBAL” on page 124
DROP MODULE “DROP MODULE” on page 125
DROP SYMBOLS “DROP SYMBOLS” on page 125
EXITEXEC “EXITEXEC” on page 128
GLOBALS “GLOBALS” on page 134
GPACK “GPACK” on page 135
GSTATUS “GSTATUS” on page 136
HISTORY “HISTORY” on page 138
ICOUNT “ICOUNT” on page 139
KWDSYN “KWDSYN” on page 139
LIBE “LIBE (CMS and z/OS)” on page 151
MODE “MODE (CMS only)” on page 158
MPACK “MPACK” on page 163
MSTATUS “MSTATUS” on page 167
PRESERVE “PRESERVE” on page 177
RESTORE “RESTORE” on page 184
REGS64 “REGS64 (z/OS only)” on page 184
SALIMIT “SALIMIT” on page 187
SAREGS “SAREGS” on page 187
SAVE “SAVE” on page 188
SET EXITEXEC “SET EXITEXEC” on page 191
SET GLOBAL STEM “SET GLOBAL STEM” on page 192
SET GLOBAL TEXT “SET GLOBAL TEXT” on page 193
SET ICOUNT “SET ICOUNT” on page 193
SET OPTION “SET OPTION” on page 194
Terminal Control Commands
ALARM “ALARM” on page 106
COLORS “COLORS” on page 118
COMMAND “COMMAND” on page 118
CURSOR “CURSOR” on page 120
LASTMSG “LASTMSG” on page 150
MSG “MSG” on page 165
MSGID “MSGID (CMS and z/OS)” on page 165
MSGMODE “MSGMODE” on page 166
PFK “PFK” on page 175
PFKDISP “PFKDISP” on page 175
QUIET “QUIET” on page 181
QUIETLY “QUIETLY” on page 181
102 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Breakpoint Commands Page
Source Level Set and Query Commands
BINARY “BINARY” on page 110
BIT “BIT” on page 110
BRIEF “BRIEF” on page 114
CHARACTER “CHARACTER” on page 115
COMPACT “COMPACT” on page 119
DETAIL “DETAIL” on page 123
EXLIMIT “EXLIMIT” on page 128
FIXED “FIXED” on page 130
FLOAT “FLOAT” on page 131
FMT “FMT” on page 132
FORMAT “FORMAT” on page 133
LANGUAGE COLOR “LANGUAGE COLOR” on page 141
LANGUAGE COMMENTS “LANGUAGE COMMENTS” on page 141
LANGUAGE DECLARES “LANGUAGE DECLARES” on page 142
LANGUAGE MACROS “LANGUAGE MACROS” on page 146
LANGUAGE OPTIONS “LANGUAGE OPTIONS” on page 146
LANGUAGE STATUS “LANGUAGE STATUS” on page 147
LANGUAGE STEM “LANGUAGE STEM” on page 148
LANGUAGE VERSION “LANGUAGE VERSION” on page 148
LANGUAGE XPATH “LANGUAGE VERSION” on page 148
PACKED “PACKED” on page 173
SPACE “SPACE” on page 201
VSEP “VSEP” on page 214
ZONED “ZONED” on page 217
Source Level Display Commands
ARRAY “ARRAY” on page 107
BOTTOM “BOTTOM” on page 111
FIRST “FIRST” on page 130
HIDE “HIDE” on page 137
LANGUAGE DEBUG “LANGUAGE DEBUG” on page 142
LANGUAGE DROP “LANGUAGE DROP” on page 142
LANGUAGE LOAD “LANGUAGE LOAD” on page 143
LANGUAGE SCROLL “LANGUAGE SCROLL” on page 147
LAST “LAST” on page 149
MAJOR “MAJOR” on page 156
NAMES “NAMES” on page 168
SHOW “SHOW” on page 197
STRUCTURE “STRUCTURE” on page 204
TOP “TOP” on page 209
TYPE “TYPE” on page 210
►► ABEND ►◄
abend-code
abend-code
A valid IDF expression denoting the ABEND code.
If no argument is supplied, the command line is checked for an expression and
if a valid expression is found its value is used as the ABEND code. If no
argument is provided and the command line is empty, the current contents of
the target program's R15 are used as the ABEND code.
►► ADSTop ►◄
expression
expression
The storage location. If not supplied, the address is determined from the cursor
position, if possible.
Since the ADSTOP command sets one end of a range, you must issue it twice to
define the range.
Storage locations can only be monitored for alteration when PER is enabled.
Entering the ADSTOP command when PER is disabled produces an error message.
Because of the way the PER hardware works, IDF partially disassembles any
instruction that changes PER storage, to determine the storage address modified.
From this it determines whether the storage address falls in one of the defined
ranges. The partial disassembly is valid for most of the common instructions. Some
instructions do not resolve to the correct address. If you miss storage modification
stops, you may need to set the 1ADSTOP option (see “SET OPTION” on page 194).
This option treats the four ranges you have specified as a single storage area, from
the lowest address in all of the ranges to the highest. When the 1ADSTOP option is
set, partial disassembly is not needed to determine the address of modified data.
Return codes
0 Operation successful
5 Syntax or other error in expression
6 PER is disabled, or an ADSTOP is already set at that location
►► ADSTops ►◄
REGSTops
The AdStops window is opened if it is not already open. If the AdStops window is
already open, it is closed.
See also “ADSTOP (CMS only)” on page 104, “SET ADSTOP (CMS only)” on page
190, and “SET REGSTOP (CMS only)” on page 196.
Return codes
0 Operation successful
6 PER is disabled
►► AFPR ►◄
Return codes
0 Operation successful
ALARM
Controls the terminal alarm.
ON
►► ALARM ►◄
OFF
Examples
SET ALARM
SET ALARM ON
SET ALARM OFF
ALET
Specifies the ALET used to qualify the dataspace to be displayed in a Dump
window.
►► ALEt expression ►◄
window
window
The window whose ALET is to be set. Select by a Window Specification or by
placing the cursor in the window. If omitted and the cursor is not in a Dump
window, sets the ALET for the first Dump window.
expression
If an access register is used in the expression, the ALET in the referenced
access register is used instead of the value of the expression.
106 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
You must be in an ESA environment for this command to work.
Examples
SET ALET =3 X’00010003’
SET ALET =2 0(AR4)
►► APROGMSG ON ►◄
OFF
AREGS
Rotates the register display between the General Purpose and the Access Registers.
Valid only in an ESA environment.
►► AREGs ►◄
When issued, opens the Current Registers window if it is not already open.
Return codes
0 Register display was toggled
7 Not valid in this environment.
ARRAY
Displays the contents of one or more variables which are array elements.
►► ARRay ►◄
window ;
▼ element
window
The LSM Information window used to display the array element contents
information. Select it by a Window Specification, or by placing the cursor in
the window.
In EBCDIC display mode, character data equal to X'FF' or below X'40' is displayed
as a period character.
In ASCII display mode, character data which does not correspond to a displayable
EBCDIC character is displayed as a period character.
If a based variable was respecified, the current active USINGs will be used to
locate the variable.
The display of the contents of the variables may be incorrect if the PSW indicates
that execution is in the middle of a statement. This is because the variable may be
in a transitional state, not having yet achieved its new value. Variable contents are
only certain at the start and end of a statement.
Examples
array stuff(15)
array addr(x’20000’)->stuff(20)
array addr(12(r2))->ptr->stuff(2)
array ptr->ptr2->stuff
array ptr(3)->ptr->stuff
array array1(10);array2(-5)
array chrarray(15,1:10);chrarray(15,1::10)
array chrarray[15,0:9];chrarray[15,0::10]
108 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
AUDIT
Enables and disables display of variable basing audit information.
►► AUDit ON ►◄
OFF
When a based variable is displayed, IDF can optionally provide an audit trail to
show you the intermediate results of the variable location calculation.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
BACK
Makes a Dump window display the storage it displayed on the previous DUMP
command for that window.
►► BACK ►◄
window
window
A Dump window. Select by a Window Specification or by placing the cursor in
the window. If a Window Specification is not present and the cursor is not in a
Dump window, uses the first Dump window.
IDF maintains the addresses used on the last ten DUMP commands for each open
Dump window in a circular buffer.
Return codes
0 Operation successful
6 No Dump windows are open at this time.
►► BASe expression ►◄
expression
An expression that resolves to an address value.
Use the MODULE BASE command (see “MODULE BASE” on page 160) to set the
base address of other programs defined to IDF.
May be used when debugging a self-loading nucleus extension to follow the code
to its new location.
Examples
SET BASE X’21000’
BINARY
The BINARY command is a synonym of the FIXED command. For details see
“FIXED” on page 130.
BIT
Sets or queries the format used to display the data for bit variables.
BIT
►► BIT ►◄
*
HEX
BIT
Bit variables are displayed as a string of 0 and 1 characters.
* Bit variables are displayed in the default format (BIT).
HEX
Bit variables are displayed in hexadecimal. This mode is especially useful for
displaying long bit strings.
If the length of the bit string is not a multiple of 4 bits, the last hexadecimal
character represents less than 4 bits. Since bit strings are left-aligned, the
extraneous trailing bits are ignored if you overtype this nibble with a new
value with 1 bits in any of these positions. A warning message is shown, and
the new digit is displayed with the corrected hexadecimal value.
If the display format is not specified, a message shows the current display format
for bit variables.
Return codes
110 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
0 Operation successful
2 Keyword truncated
5 Not valid bit variable display format
BOTTOM
Displays source code starting at the highest available address within the current
code section.
►► BOTtom ►◄
window
window
A Disassembly window. Select by a Window Specification or by placing the
cursor in the window.
If omitted, and the cursor is not in a Disassembly window, uses the first
Disassembly window.
Return codes
0 Operation successful
6 No code section definition corresponds to the current address.
BREAK
Sets an instruction breakpoint, or toggles the Break window display.
►► BREak ►◄
address
▼ | command
address
An address. If an expression, the expression is used to provide the address.
If omitted, the address is determined from the cursor position. If it is not
possible to determine an address from the cursor position (for example when
the cursor is on the command line and the command line is empty), the Break
window is opened if it is not already open, or closed if it is open.
command
A command to be executed immediately after the breakpoint is taken.
To set a deferred or sticky breakpoint, use the DBREAK command. See “DBREAK”
on page 121 for details.
The breakpoint is taken (that is, execution is interrupted and the operator notified)
just prior to the execution of the indicated instruction. A maximum of 64
breakpoints may be active at one time. Breakpoints remain in effect until they are
explicitly cleared (through the Break window).
You can associate a list of commands with the breakpoint. These commands are
executed when the breakpoint is taken, before control is returned to you. The
commands are specified at the end of the BREAK command, separated from the
address and each other by vertical bars (|). If a command receives a non-zero
return code, the remaining commands in the list are not executed.
z/VM IDF provides two types of instruction breakpoint, PER and non-PER. If
PER is enabled (with the Break window or SET PER command) then all
breakpoints are PER breakpoints. Likewise, if PER is disabled, all
breakpoints are non-PER breakpoints.
v PER breakpoints are implemented by means of PER Instruction Fetch
and Branch events, and are only possible so long as the processor can be
kept in Extended Control mode. In some cases, for example when an
SVC is issued in a read-only DCSS, Extended Control mode is dropped
by CMS.
v Non-PER breakpoints are implemented by temporarily inserting an
invalid opcode at the indicated location.
For more information about the distinction between the two available
breakpoint types, see “PER versus non-PER mode” on page 61.
z/OS IDF provides two types of instruction breakpoint, SVC 97 and non-SVC 97.
v SVC 97 breakpoints are implemented by temporarily inserting an SVC 97
instruction at the indicated location.
v Non-SVC 97 breakpoints are implemented by temporarily inserting an
invalid opcode at the indicated location.
For more information about the distinction between the two available
breakpoint types, see “Breakpoint method selection (TSO)” on page 43.
z/VSE IDF provides one type of breakpoint.
v A breakpoint is implemented by temporarily inserting an invalid opcode
at the indicated location.
IDF verifies that there is a valid instruction at the breakpoint address, and rejects
the BREAK command (with a message) if not. This test is not infallible. Certain
combinations of DATA can appear as valid instructions. For example X'1E14' might
be data or it might be an ALR R1,R4. IDF lets you install a break here.
112 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
For non-PER and non-SVC 97 breakpoints, IDF uses an invalid instruction of the
format x'02xx', to cause a program-check (operation exception), which gives IDF
control to handle the breakpoint logic. At the time of handling the breakpoint, IDF
reinstalls the original instruction bytes for execution. But if you manage to install a
non-PER breakpoint (that is, x'02xx') on top of program DATA (which looks like an
instruction), then IDF never gains control to remove its x'02xx' from your
program's DATA. So IDF corrupts valid data, potentially leading to bizarre
program behavior. Take care to install breakpoints only on valid target program
instructions.
Each of these SVCs may be followed by DATA bytes. If IDF finds any of
these codes preceding the breakpoint address, IDF assumes that the
breakpoint instruction is in fact DATA for the SVC, and prevents the
breakpoint installation.
This check cannot be completely certain that the x'0Axx' preceding the
breakpoint address is in fact an SVC. It is possible that it is also DATA, or
perhaps the last 2 bytes of a 4-or 6-byte instruction. However the risk of
either of these is small, and since the result of allowing a breakpoint to be
installed on top of SVC 203 data (for example) is catastrophic, being
over-zealous in its checking is worthwhile.
If IDF rejects (due to the above SVC test) an attempted breakpoint
installation on what you know for certain is a valid instruction you should
be able to successfully install the break on the next instruction.
Return codes
0 Operation successful
5 Syntax or other error in expression
6 Location does not contain a valid instruction, location is read only and PER
is unavailable, or a breakpoint already set at that location and the
OLDBREAK option is on.
►► BRIef ON ►◄
OFF
The COMPACT option is initially ON, which also suppresses the declaration
information. To display the declaration information, both the COMPACT and the
BRIEF options must be OFF.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
CALLERS
Displays information for each generation in the program caller hierarchy.
*
►► CALlers ►◄
window ;
▼ generation
window
A LSM Information window. Select by a Window Specification, or by placing
the cursor in the window.
If supplied, the window must be an LSM Information window. If omitted, and
the cursor is not in an LSM Information window, uses the first LSM
Information window. If no LSM Information window is open, one is opened.
* Information is shown for all caller generations, beginning with the current
location and followed by all previous generations along the save area chain
until either:
v the save area back link is zero
v the save area back link contains an invalid address
v the generation specified by the SALIMIT command is reached
generation
A program caller generation.
The program caller generations numbering convention is:
0 Current program
114 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
1 Parent (caller)
2 Grandparent (caller of caller), and so on
When supplied, information is displayed for only the nominated caller
generations.
The information displayed for each generation in the program caller hierarchy
includes:
v Current execution location, as:
– Memory location, in IDF symbolic format
(module.CSECT)Stmt#nnnnn+offset
– Logical location
program-block-name+offset
This location is only provided when extract data was loaded, for the program.
Extra information may also be used from data areas in the program's storage.
v Save Area Header
v Save Area register values, if applicable
Use the SAREGS command to enable and disable the display of the Save Area
header and registers in the CALLERS display. The Save Area registers are
formatted according to the IDF ROWSTYLE option setting.
Use the SALIMIT command to control the maximum depth of the CALLERS
display. This is intended to prevent problems when the program call chain is
damaged, or is of unexpected depth (due to runaway recursion).
Examples
CALLERS
CALLERS 0;99
CHARACTER
Sets or queries the format used to display the data for character variables.
EBCdic
►► CHAracter ►◄
*
ASCii
CHAracter
HEX
PACked
ZONed
If the display format setting is not specified, the current display format for
character variables is shown in a message.
Return codes
0 Operation successful
2 Keyword truncated
5 Not valid character variable display format
CHECK
Controls the checking of selective input values when variable information is
displayed or altered by overtyping.
►► CHEck BOUnds ON ►◄
NEGative OFF
SUBstring
ALL
*
BOUNDS
Controls array index specification processing.
ON Array indices must be inside the declared range.
116 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
OFF
Array indices outside the declared range may be specified, allowing you to
follow errant program results.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
CLOSE
Closes a window.
►► CLOse ►◄
window
window
A window. Select by a Window Specification or by placing the cursor in the
window.
Return codes
0 Operation successful
1 No window selected.
►► COLors MHTI ►◄
COLours
MHTI
A four-letter color specification. Each position indicates the color for a screen
element. The positions are:
1 Messages
2 Headings
3 Text
4 Input areas
Valid letters are:
B Blue
G Green
P Pink
R Red
T Turquoise
Y Yellow
W White
Examples
SET COLORS RYGB
COMMAND
Performs the IDF command specified on the command line.
►► COMmand text ►◄
IDF-command
The IDF command to be executed.
arguments
Arguments to be passed to the command. The particular arguments depend on
the command that is supplied.
118 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
The command line is examined for the name of the IDF command. If the command
is not known to IDF, the IMPMACRO option is checked. If this indicates that
implied macro processing is desired, the indicated macro is used as the command.
The command name is then temporarily removed from the command line, so that
any arguments which are present are available to the specified command. The
command is then executed as if you have pressed a PF key.
If the command line is empty and no input fields in the remainder of the screen
are changed, the only function performed is to move the cursor to the command
line.
Return codes
The return code when COMMAND is issued by a macro is the propagated return
code from the IDF command.
COMPACT
Minimizes the number of lines used for variable display.
►► COMPact ON ►◄
OFF
ON As with BRIEF ON, disables the display of declaration information. This is the
initial setting.
To further reduce the number of display lines, if the length of the variable
value permits the variable name and contents are shown on the same display
line. If sufficient space exists, the variable location information is also shown in
this case.
OFF
As with BRIEF OFF, enables the display of declaration information.
When you display a variable, IDF normally uses multiple lines of the display to
show all the variable information. When variables with short names and short
formatted values are displayed, much of these display lines contain blanks. Use the
COMPACT display mode to minimize the number of lines used for variable
display.
As with the BRIEF display mode, the optional variable declaration information is
suppressed.
To maximize the number of variables that can be displayed, you can use the
SPACE OFF command to eliminate the blank line optionally generated between
variables.
The COMPACT option is initially ON, which also suppresses the declaration
information. To display declaration information, the COMPACT and BRIEF options
must both be OFF.
Return codes
0 Operation successful
Chapter 10. Commands and operating procedures 119
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
►► CREGs ►◄
The CREGS command opens the Current Registers window if it is not already
open.
Return codes
0 Register display was toggled
6 Unable to comply due to PER setting
CURSOR
Provides IDF macros with some control over cursor positioning.
►► CURsor STAY ►◄
COMmand
DISasm
DUMP
(1)
xx yy zz
Notes:
1 2-digit hexadecimal values, separated by blanks.
STAY
Leaves the cursor at the position it had when the PF key was pressed.
COMMAND
Positions the cursor at the start of the command line.
DISASM
Places the cursor in the first input field of the Disassembly window.
DUMP
Places the cursor in the first input field of the Dump window.
xx yy zz
Positions the cursor at an absolute position on the screen.
These three values are blank separated, 2-digit hexadecimal numbers
representing:
v The window containing the cursor
v The row within the window of the cursor
120 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
v The column within the window of the cursor
Examples
SET CURSOR STAY
SET CURSOR COMMAND
SET CURSOR DISASM
SET CURSOR DUMP
’SET CURSOR’ varname
DBREAK
Sets or clears a deferred instruction breakpoint.
►► DBREak ►◄
address
▼ | command
address
An address. If an expression, the expression is used to provide the address.
If omitted, the address is determined from the cursor position. If it is not
possible to determine an address from the cursor position (for example, when
the cursor is on the command line and the command line is empty), the Break
window is opened if it is not already open, or closed if it is open.
command
A command to be executed.
This function is a variation of the BREAK function (see “BREAK” on page 111).
Breakpoints established with this command are placed in a special IDF table.
The DBREAK command only works on TSO if the SVC97 option is in force.
If the module containing the deferred breakpoint is not in storage (or defined to
IDF):
v IDF monitors program loading
v When IDF detects the module is loaded, (or the TRIGGER LOAD command is
issued) a standard instruction breakpoint is established at the location specified
within the module.
v The deferred breakpoint remains active:
– if the module is later dropped from IDF's module list (and possibly removed
from storage), the standard instruction breakpoint is removed automatically.
– if the module is once again loaded into storage, the deferred breakpoint is
again triggered, and a new standard instruction breakpoint established.
If any deferred breakpoints are active, they are shown in a special section of the
Break window. See “BREAK” on page 111 for details regarding the operation of the
Break window.
1. The full syntax for all IDF symbols is:
►► SYMbol ►◄
(section-name) + offset
(module-name.section-name) -
With most other IDF commands, you are working within the qualified module.
This is the default module name if module-name is omitted from the symbol
specification.
The QUALIFY command makes the module you are about to load the default
module. If this is not done, you must be careful to explicitly specify the correct
module name in the DBREAK command parameter.
For dynamically loaded programs, see also “LANGUAGE LOAD” on page 143.
2. Deferred breakpoints are normally for modules not yet in storage. In this case,
the expression must specify a symbolic address, since the base address of a
module is not known until after it is loaded by another program or command.
3. Each time a new module is encountered, the module name is checked. If it
matches the name of one of the desired modules, IDF then attempts to load the
symbol table (from the Load Module on z/OS, from the MAP file on CMS,
from the librarian MAP member in z/VSE). If this fails, IDF ignores the
module.
4. If no section or symbol is specified, the default is to establish the breakpoint at
the entry point of the module.
For example, to insert a deferred breakpoint at the entry point of the module
MOD1, the command is:
DBREAK (MOD1.)
5. DBREAK supports an extension to the standard IDF symbol syntax. If * is
specified as the module name, the deferred breakpoint is triggered whenever a
new module is loaded.
6. Only use external symbols in a DBREAK address expression.
7. While hexadecimal or decimal offsets may be used, this is not encouraged. The
definition of specific external symbols for use as deferred breakpoint locations
ensures that operation are not affected as section sizes (and hence offsets)
change over the course of program development.
Return codes
0 Operation successful
5 Syntax or other error in expression
122 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
DETAIL
Controls the display of data for the structure components of intermediate depth.
Initially, this data is not shown.
MAXIMUM
Enables the display of intermediate component data.
MINIMUM
Disables the display of intermediate component data.
number-of-levels
Integer, indicating number of levels of structure component data to be
displayed.
+ number-of-levels
Integer, indicating number of extra levels of structure component data to be
displayed.
- number-of-levels
Integer, indicating the number of fewer levels of structure component data to
be displayed.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
5 Arguments are invalid
DISASM
Displays a disassembly listing.
►► DISasm ►◄
window address
window
A Disassembly window. Select by a Window Specification or by placing the
cursor in the window. If omitted and the cursor is not in a Disassembly
window, uses the first Disassembly window.
address
An address specifying the storage location at which the disassembly listing
begins.
If the cursor is positioned in the first halfword of the first instruction displayed,
and that instruction is a branch, the effective address of that branch instruction
becomes the first instruction disassembled.
Return codes
0 Operation successful
5 Syntax or other error in expression
6 Specified address exceeds the current virtual memory size
DOWN
The DOWN command is a synonym of the NEXT command. For details, see
“NEXT” on page 169.
DROP GLOBAL
Discards the information for stems from Global Storage.
stem-name
A Global Storage stem name. Each stem name must have a trailing period.
Return codes
0 Operation successful
1 Missing stem name
2 Stem name truncated
5 Stem name specified is not defined in Global Storage
124 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
DROP MODULE
Discards information known about a module and the symbols associated with the
module.
module-name
The name of the module for which information is discarded.
Return codes
0 Operation successful
1 Missing module name
2 Module name truncated
5 Module specified not known to IDF
DROP SYMBOLS
Discards symbols known to IDF.
►► DROp SYMbols ►◄
module-name
module-name
The name of the module for which symbols are dropped. If omitted, the
symbols of the qualified module are dropped.
DROP SYMBOLS and LOAD SYMBOLS (see “LOAD” on page 152) lets you use
symbol information from any file, providing the file is recognized by IDF.
DUMP
Displays a storage dump.
►► DUMP ►◄
window address
window
A Dump window. Selected by a Window Specification or by placing the cursor
in the window. If omitted and the cursor is not in a Dump window, uses the
first Dump window.
address
The storage location at which the storage dump begins.
If the DUMP function is invoked when no Dump windows are open, one is
opened.
If the DUMP function is invoked when a Dump window is open, but no address is
specified, the window is closed.
If the DUMP function is invoked when a Dump window is open, and an address
is specified, the starting address of the storage displayed in the window is
changed.
IDF provides two DUMP modes, symbolic and unformatted, toggled by the
DUMPMODE command.
The symbolic dump shows the names of storage areas along with the contents of
each named area. The unformatted dump shows the traditional storage dump.
The storage dump shown by the DUMP command is presented in the current
dump format. Toggle the dump format with the DUMPMODE command.
If the cursor is positioned in the first field displayed, and that field is a fullword
and in AMODE24, the low-order 24 bits of the contents of that word specify the
first location to DUMP. If in AMODE31, the low-order 31 bits are used instead. If
in AMODE64, the contents of that word and the next word are used as the first
location to dump.
Using this feature, it is easy to follow a linked list. Just place the cursor in the
fullword that represents the link word, and repeatedly press the DUMP key.
Return codes
0 Operation successful
5 Syntax or other error in expression
6 Specified address exceeds the current virtual memory size
DUMPMODE
Toggles the DUMP format between symbolic and unformatted.
►► DUMPMode ►◄
Return codes
0 Operation successful
126 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
EPNAMES
Displays the Entry Point Names window.
►► EPNAMES ►◄
section-name
section-name
The name of the first section to be displayed.
Return codes
0 Operation successful
If you invoke the EPNAMES function when no Entry Point Names window is
opened, one is opened.
If you invoke the EPNAMES function when an Entry Point Names window is
open, but you specify no section-name, the window is closed.
If you invoke the EPNAMES function and specify a section-name, and an Entry
Point Names window is open, the contents of the window change to display
information about the entry point.
If the module that IDF loaded has more than one section-name, and thus more
than one section-name is loaded, you can use the PREVIOUS and NEXT
commands to scroll the Entry Point Names window to view the information for
the extra section-names.
EPOFFSET
Specifies the offset of the primary entry point within a program.
►► EPOffset entry-point-offset ►◄
entry-point-offset
An expression which is resolved to the entrypoint offset value. This entrypoint
offset is the entrypoint address of the program less the start (base) address of
the program.
EXITEXEC
Enables or disables (toggles) exit routine processing.
►► EXItexec ►◄
If the current exit routine is present and enabled, it is invoked when execution of
the target program is normally interrupted to notify the operator of an unusual
event (such as a breakpoint). The exit routine then determines whether to notify
the operator of the event.
If exit routine processing is disabled, the exit routine is not invoked and the
operator is notified as usual when one of these events occurs.
For more information, see Chapter 13, “The IDF exit routine,” on page 231.
Return codes
0 Operation successful
6 Exit routine not found
EXLIMIT
Sets the maximum LSM stemmed array index during EXTRACT LANGUAGE
commands execution.
►► EXLimit max-stemmed-array-index ►◄
max-stemmed-array-index
Maximum stemmed array index. Integer between 1 and 9999999. The initial
value is 20000.
When information is written to the stemmed array, user free storage is consumed.
This can present a problem if data is extracted for extremely large variables, or for
variables such as unbounded bit or character strings which have no upper limit
(aside from the end of machine storage). In these cases, no storage remains for
application or IDF operation. EXLIMIT helps prevent this from happening.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
5 Arguments are invalid
128 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
FIND
Locates a string and displays the section of code where it occurs.
►► Find string ►
window * start-col
finish-col
► ►◄
FIRst
LASt
NEXt
PREvious
window
A Disassembly window. Select by a Window Specification or by placing the
cursor in the window. If omitted, and the cursor is not in a Disassembly
window, uses the first Disassembly window.
string
The group of characters being searched for, the search string.
Enclose this search text in quotes if it is numeric or contains embedded blanks.
Both "..." and '...' are accepted.
* Use the current search string.
start-col
The column at which searching starts. Integer. If omitted, searching starts from
column 1.
finish-col
The column at which searching ends. Integer greater than the start column. If
omitted, searching finishes at column 80.
FIRST
Begin search at lowest address, and look for search string in a forward
direction.
LAST
Begin search at highest address, and look for search string in a reverse
direction.
NEXT
Begin search at current address, and look for search string in a forward
direction.
PREVIOUS
Begin search at current address, and look for search string in a reverse
direction.
The function of this command is essentially the same as the ISPF editor FIND
command. The search begins at the first source line shown on the screen; the target
code, if found, is displayed at the top of the screen.
Unless otherwise qualified, the search is performed from the current address, in
the direction last specified.
f ’text’
f text
f text
f info first
f init( next
f * prev
f bit( last
find =3 ’window 3’
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
5 Arguments are invalid
6 Specified string was not located or the search was not conducted
FIRST
Displays the source code corresponding to the lowest memory address.
►► FIRst ►◄
window
window
A Disassembly window. Select by a Window Specification or by placing the
cursor in the window. If omitted and the cursor is not in a Disassembly
window, uses the first Disassembly window.
Return codes
0 Operation successful
FIXED
Sets or queries the format in which the data for fixed binary variables are
displayed.
►► FIXed ►◄
BINary DECimal
*
HEX
DECIMAL
Fixed binary variables are displayed in decimal. This is the initial value.
* Fixed binary variables are displayed in the initial format (DECIMAL).
130 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
HEX
Fixed binary variables are displayed in hexadecimal.
If the display format setting is not specified, the current display format for fixed
binary variables is shown in a message.
Return codes
0 Operation successful
2 Keyword truncated
5 Not valid fixed binary variable display format
FLOAT
Sets or queries the format in which the data for float variables is displayed.
►► FLOat ►◄
STD
STAndard
FIXed
*
SCIence
HEX
If the display format setting is not specified, the current display format for float
variables is shown in a message.
Return codes
0 Operation successful
2 Keyword truncated
5 Not valid float variable display format
FOLLOW
Makes a Dump window follow the contents of a register or storage location as
program execution progresses.
►► FOLlow ►◄
window address
OFF
window
A Dump window. Select the window by a Window Specification or by placing
the cursor in the window. If omitted and the cursor is not in a Dump window,
uses the first Dump window.
address
The address to be followed. If an expression, the expression is used to provide
the address.
If omitted, the address is determined from the cursor position. If it is not
possible to determine an address from the cursor position (for example, when
the cursor is on the command line and the command line is empty), the
current follow state of the selected window is displayed.
If R0 to R15, the indicated register's contents determine the starting DUMP
address as target program execution progresses.
The argument “R1” means follow the contents of R1, but the argument “0(R1)”
means follow the contents of the storage area now pointed to by R1. If in
AMODE64, this is an 8-byte storage area, otherwise it is a 4-byte storage area.
If no register is specified, is the address of a storage area whose contents are to
determine the area to be shown in the selected Dump window as program
execution progresses. This includes addresses specified by means of cursor
position. The storage area need not be aligned.
OFF
Following is turned off for the window. The window contents change to reflect
any change in the contents of the current address.
Each open Dump window can have its own follow address or none at all.
Return codes
0 Operation successful
5 Syntax or other error in expression
6 Specified address exceeds the current virtual memory size
132 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
FORMAT
Controls the way in which a variable is displayed, or shows the display format for
the variable.
►► FORmat variable-name ►◄
FMT ;
▼ variable-name *
format-type
variable-name
The variable for which the format is being set.
If only one variable is supplied, and there are no following parameters, then a
message is displayed. The message indicates the display format for the
variable.
* The variables listed inherit their display format from the current display
format for the underlying variable classes.
format-type
The display format for the listed variables.
Must be appropriate to the underlying data classes of the variables:
Binary float
HEX
Bit BIT|HEX
Char EBCDIC|ASCII|CHAR|HEX|PACKED|ZONED
Fixed DECIMAL|HEX
Hexadecimal float
STD|STANDARD|FIXED|SCIENCE|HEX
Packed Decimal
DECIMAL|HEX
Zoned Decimal
DECIMAL|HEX
See the following commands for more details:
v “BIT” on page 110
v “CHARACTER” on page 115
v “FIXED” on page 130
v “FLOAT” on page 131
v “PACKED” on page 173
v “ZONED” on page 217
Return codes
0 Operation successful
2 Keyword truncated
FPC
Changes the contents of the Floating Point Control Register (FPC).
►► FPC FPC-value ►◄
FPC-value
The new FPC value. From one to eight hexadecimal digits, right-aligned.
Example
SET FPC 0 FE430000
FPR
Changes the contents of a Floating Point Register (FPR).
FPR-number
The FPR number, which can be in the range 0 - 15.
FPR-value
The new FPR value. From one to sixteen hexadecimal digits, right-aligned.
Example
SET FPR 0 FE43000000000000
GLOBALS
Displays information about Global Storage stems.
►► GLObals ►◄
The LSM Information window containing the GLOBALS display is closed if you
issue another GLOBALS command.
To define Global Storage areas, see “SET GLOBAL STEM” on page 192.
Return codes
0 Operation successful
134 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
6 There are no Global Storage stems defined.
GOTO
Evaluates an expression and places it in the address portion of the Program Status
Word (PSW).
►► GOTo expression ►◄
PSW
expression
Specify as an address expression or by the cursor position.
Return codes
0 Operation successful
1 No address specified
5 Syntax or other error in expression
6 Conditions do not permit completion of command
GPACK
Returns the Global Storage data storage areas that no longer contain Global
Storage stem data to the operating system free storage pool.
►► GPAck ►◄
Return codes
0 Operation successful
Other Error occurred while packing Global Storage data storage areas. This is
most likely caused by an overlay of the Global Storage data AREA control
information by an errant application program under test.
GPR
Changes the low-order 32 bits of a General Purpose Register (GPR).
register-number
The GPR number. An integer from 0 to 15.
expression
The new GPR value. Values are right-aligned with leading zeroes.
register-number
The GPR number. An integer from 0 to 15.
expression
The new GPR value. Values are right-aligned with leading zeroes.
Example
SET GPRG 0 X’1234000123456’
register-number
The GPR number. An integer from 0 to 15.
expression
The new value to be placed in the upper 32 bits of the register. Values are
right-aligned with leading zeroes.
Example
SET GPRH 0 1200
GSTATUS
Displays information about the storage used to contain the Global Storage stem
data which was loaded with SET GLOBAL STEM commands.
►► GSTAtus ►◄
The LSM Information window containing the GSTATUS display is closed if you
issue a GSTATUS command when the window is open. If not opened, it is opened.
136 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
v number of Global Storage stems
v Global Storage storage consumption (total, direct, pooled)
v Global Storage storage pool utilization, including the number of areas in the
pool that are unused
When Global Storage data is removed from storage with DROP GLOBAL, the
storage areas which contained the extract data are retained for use by later SET
GLOBAL stemname commands. Use the GPACK command to return to the
operating system free storage pool those storage areas that no longer contain
Global Storage data.
Return codes
0 Operation successful
HIDE
Controls the display of source code and disassembly.
DISasm
►► HIDe ►◄
ALL
*
SOUrce
(1)
▼ separator COMments
DEClares
DCLs
MACros
NOCode
Notes:
1 An option can be chosen no more than once.
DISASM
Show source code only, without interspersed assembler code.
ALL | *
Show disassembled assembler code only, without source code. The display of
comments, declarations, macro expansions, and source lines with no
corresponding object code is also disabled, so that these lines are excluded
when source display is later enabled by a SHOW SOURCE or SHOW BOTH
command. These may be enabled by appropriate SHOW commands.
SOURCE
Show disassembled assembler code only, without source code.
COMMENTS
Exclude block comment source when source code is displayed.
SEPARATOR
A comma, blank, or semicolon. Separates SOURCE and its suboptions.
The HIDE command assumes that everything is showing, then excludes (hides)
whatever you specify. Everything else is then shown, regardless of whether it is
shown or hidden. “SHOW” on page 197 provides an alternative means of
displaying and hiding items.
Return codes
0 Operation successful
2 Keyword truncated
5 Invalid information type keyword
HISTORY
Allows review of the history information maintained by IDF when the PATH or
PATHFILE option is set.
►► HISTory ►◄
IDF maintains a history of the last 1,023 instructions executed, and the order in
which they were executed. HISTORY is only valid when the PATH or PATHFILE
option is ON.
When the HISTORY command is executed, an arrow is placed beside the last
instruction that was executed. This arrow appears on the right side of the screen,
just to the left of the instruction count in the first Disassembly window. The arrow
is only displayed against the disassembled assembler code. If the Disassembly
window is displaying source code, then you need to issue the SHOW DISASM
command to see the arrow.
While the HISTORY arrow is shown in the window, the PREVIOUS and NEXT
commands do not scroll the open windows on the screen. Instead, they move the
arrow to the previously executed instruction or to the following instruction.
The display remains in this state until a DUMP, DISASM, RUN, or STEP command
is executed.
This lets you review the series of instructions that lead to an incorrect result.
Return codes
0 Operation successful
6 PATH option is not ON
138 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ICOUNT
Displays the number of instructions executed since the last ICOUNT command.
►► ICOunt ►◄
After the number is displayed, it is reset to zero. If the PATH option was not set
ON, it is set on by the ICOUNT command.
Return codes
0 Instruction execution count successfully displayed
KWDSYN
Defines a synonym of an IDF keyword.
oldkwd
The existing IDF keyword. It may be abbreviated to the permitted minimum.
newkwd
The overriding synonym. It can have a length different from the IDF keyword
it is a synonym of. Specify its minimum abbreviation by putting that part of
the new keyword in upper case.
The synonym does not replace the IDF keyword, but it is recognized as the IDF
keyword and given all its properties.
Examples
v The following command equates the keyword DUMP with the keyword DUMP.
However, the new keyword has a minimum abbreviation of D, where the old
one's minimum abbreviation was DUMP.
set kwdsyn dump Dump
v The following command replaces the keyword DISASM with SOurce.
SET KWDSYN DIS SOurce
LANGUAGE +
Scrolls information in an LSM Information window.
►► LANguage + ►◄
window - scroll-number-of-lines
Many IDF commands provide user feedback in the form of messages which are
displayed in a dedicated area above the IDF command line. Some messages
provide sufficient information, for example, when an error occurs, but other
commands need more space for displays, for example, VARIABLE, STRUCTURE,
and LANGUAGE STATUS.
To handle this situation, IDF provides many LSM Information windows. The first
LSM Information window opens automatically when needed, and you can open
more with the IDF OPEN command.
There may still not be enough screen lines to display all of the information.
In this situation, IDF provides a “More: + –” indicator in the upper right corner of
each LSM Information window. You can now scroll the LSM Information window
in IDF with the LANGUAGE + and LANGUAGE – commands.
LANGUAGE + scrolls the LSM display forward, and reissues the current LSM
command. When the last line is displayed, the message is not issued, and further
forward scrolling does not occur.
Return codes
0 Operation successful
2 Keyword truncated
5 Arguments are invalid
140 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
LANGUAGE COLOR
Controls the color used to display the source code.
Initially, source code is displayed in the color you have specified for IDF display of
text data.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
5 Not valid color keyword
LANGUAGE COMMENTS
Enables or disables the block comment display.
►► LANguage COMments ON ►◄
OFF
This command is used for debugging the IDF Language Support internal
interfaces.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
LANGUAGE DECLARES
Enables or disables declare display.
►► LANguage DEClares ON ►◄
DCL OFF
LANGUAGE DROP
Removes language extract data from storage, freeing the space for reuse by new
extract files loaded by subsequent LANGUAGE LOAD commands.
►► LANguage DROp * ►◄
extract-file-name
142 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
If no extract data matches the argument, an error message is displayed.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
5 Arguments are invalid
28 The specified extract file was not loaded with LANGUAGE LOAD
LANGUAGE LOAD
Loads an extract file, optionally associating it with an executable module.
ASMLANGX *
►► LANguage LOAd extract-file-name ►
file-type file-mode
► ►◄
( MODUle module-name
extract-file-name
The extract file that is loaded.
v On CMS, the file name (FN) of the extract file created by ASMLANGX.
v On z/OS, the PDS member name of the extract file created by ASMLANGX.
For z/OS sequential files (DSORG(PS)), a dummy name must be specified,
but is ignored.
v On z/VSE, the librarian member name of the extract file created by
ASMLANGX.
If not specified (the file type default accepted) IDF uses the entries in the
XPATH to locate the extract file.
ASMLANGX
The default file type for extract file (normally not specified).
file-type
The file type of the extract file.
v On CMS, the file type (FT) of the extract file created by ASMLANGX.
v On z/OS, the DD name allocated to the extract file created by ASMLANGX.
v On z/VSE, not used.
file-mode
The file mode of the extract file.
v On CMS, the FM of the extract file created by ASMLANGX.
v On z/OS, not used, ignored if specified.
v On z/VSE, not used, ignored if specified.
* Indicates that all disks are to be searched in order.
MODULE
Indicates that a module name is being specified.
module-name
The module with which to associate the extract file.
Return codes
0 Operation successful.
1 Missing keyword.
2 Keyword truncated.
3 Keyword unknown.
28 File not found.
29 File was already loaded with the same module specification.
201 The input file is from a version of ASMLANGX that is not supported by
the LSM.
202 Duplicate or invalid scope record in input file.
203 More source statements in file than indicated by the scope record.
204 Duplicate or invalid number-of-symbol record in the input file.
205 Symbol id number larger than maximum symbol number was encountered
in a symbol record.
206 Symbol id number larger than maximum symbol number was encountered
in an array record.
207 File contains no records of a known format.
208 Duplicate or invalid check record in the input file.
209 Duplicate or invalid address expression record in the input file.
210 Duplicate or invalid structure layout record in the input file.
211 Symbol id number larger than maximum symbol number was encountered
in a respecify record.
212 Address expression id number larger than maximum address expression
number or symbol id number larger than the maximum symbol number
was encountered in an address expression record.
213 Address expression id number larger than maximum address expression
number or symbol id number larger than the maximum symbol number
was encountered in an address expression respecify record.
214 Symbol id number larger than maximum symbol number was encountered
in a symbol optimization record.
215 Symbol id number larger than maximum symbol number was encountered
in a structure layout record.
216 Errors were encountered unpacking a source record.
217 Base debugger (IDF) version is too low to support the required function.
218 Module private-code CSECT was not found. The functions in the extract
file cannot be located in the IDF symbol table.
219 Scope ID record present, but it was not preceded by a Scope record.
220 Symbol id number larger than maximum symbol number was encountered
in a scope ID record.
221 Duplicate or invalid CSECT record in the input file.
222 CSECT record expected but not found in the input file.
144 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
223 CSECT id number larger than maximum CSECT number was encountered
in a PC (Private Code) lookup record.
224 CSECT id number larger than maximum CSECT number was encountered
in a source record.
225 CSECT id number larger than maximum CSECT number was encountered
in a symbol record.
226 Symbol id number larger than maximum symbol number was encountered
in a constant record.
227 Error occurred building the statement offset table.
237 Duplicate or invalid On Event Map record in the input file.
238 Duplicate or invalid Secondary Entry Point record in the input file.
239 Symbol id number larger than maximum symbol number was encountered
in a Secondary Entry Point record.
240 Duplicate or invalid External Symbol List record in the input file.
241 Symbol id number larger than maximum symbol number was encountered
in an External Symbol List record.
242 Duplicate or invalid Symbol Display Format record in the input file.
243 Symbol id number larger than maximum symbol number was encountered
in a Symbol Display Format record.
244 Duplicate or invalid Class Layout record in the input file.
245 Symbol id number larger than maximum symbol number was encountered
in a Class Layout record.
246 Duplicate or invalid Class Hierarchy record in the input file.
247 Symbol id number larger than maximum symbol number was encountered
in a Class Hierarchy record.
248 Symbol id number larger than maximum symbol number was encountered
in an OverLoaded Symbol record.
249 Duplicate or invalid Linkage Convention record in the input file.
250 Symbol id number larger than maximum symbol number was encountered
in a Linkage Convention record.
251 Symbol id number larger than maximum symbol number was encountered
in a Parameter List record.
252 Duplicate or invalid Compile Information record in the input file.
253 Duplicate or invalid OverLoaded Entry Stmt record in the input file.
254 Symbol id number larger than maximum symbol number was encountered
in an Overloaded Entry Stmt record.
1xxx
►► LANguage MACros ON ►◄
OFF
For more details see the command description of SHOW and HIDE.
LANGUAGE OPTIONS
Displays the current value for each IDF Language Support setting.
►► LANguage OPTions ►◄
Return codes
0 Operation successful
146 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
LANGUAGE SCROLL
Sets the default for the number of screen lines by which an LSM Information
window is scrolled when the LANGUAGE command is issued.
►► LANguage SCRoll 0 ►◄
number-of-lines
MAX
*
0 Scrolling is disabled.
number-of-lines
Scrolling is by this number of lines
MAX | *
Scrolling is by the maximum number of lines (the current size of the LSM
Information window)
The current scroll amount value is displayed as part of the LANGUAGE OPTIONS
command information.
Return codes
0 Operation successful
2 Keyword truncated
5 Arguments are invalid
The current scroll amount value is displayed as part of the LANGUAGE OPTIONS
command information.
LANGUAGE STATUS
Displays information about the extract files that were loaded with LANGUAGE
LOAD commands.
*
►► LANguage STAtus ►◄
;
▼ extract-file-name
To display the current value of the IDF Language Support settings, use the
LANGUAGE OPTIONS command.
Return codes
0 Operation successful
28 The specified extract file was not loaded with LANGUAGE LOAD.
LANGUAGE STEM
Alters the name of the REXX stemmed variable array which is used to return
information to an IDF macro as a result of all subsequent EXTRACT LANGUAGE
commands, as well as a number of other EXTRACT commands.
LSM
►► LANguage STEM ►◄
stem-name
LSM
The default value of the REXX stem name.
stem-name
The REXX stem name. It must be between 1 and 8 characters, with the first
character alphabetic.
The current LANGUAGE STEM setting can be displayed with the LANGUAGE
OPTIONS command, and retrieved with the EXTRACT LANGUAGE STEM
command.
For more information, see Chapter 15, “The EXTRACT command,” on page 241.
Return codes
0 Operation successful
2 Keyword truncated
5 Arguments are invalid
LANGUAGE VERSION
Displays the IDF Language Support version information.
►► LANguage VERsion ►◄
Return codes
0 Operation successful
148 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
LANGUAGE XPATH (CMS and z/OS)
Defines the extract file search path file type (TSO DD name) information.
ASMLANGX
►► LANguage XPATH ►◄
separator
(1)
▼ extract-file-type
Notes:
1 Up to 10 entries can be specified.
ASMLANGX
The default extract file search path.
extract-file-type
The extract file search path.
separator
A comma, blank, or semicolon. Separates extract file types.
This information is used to locate extract files for which the extract file type (z/OS
DD name) was not explicitly specified. The XPATH entries are searched in the
supplied order.
The ability to define the extract file search path gives you full control of the extract
file loading process. It is easy to support the coexistence of many versions of a
target program.
Return codes
0 Operation successful
2 Keyword truncated
5 Arguments are invalid
LAST
Displays source code starting at the highest available address.
►► LASt ►◄
window
Return codes
0 Operation successful
LASTMSG
Displays the last two messages issued in the message areas.
►► LASTMsg ►◄
Return codes
0 Operation successful
LEFT
Scrolls an open window left.
►► LEFt ►◄
window number-of-columns
window
A window. Select by a Window Specification or by placing the cursor in the
window. If omitted and the cursor is not in a scrollable window, then all
scrollable windows are scrolled.
number-of-columns
The number of columns by which the window is to be scrolled. This may be
specified as:
v An integer
v An integer prefixed by a +
v An integer prefixed by a -, specifying the number of screen columns by
which the window is to be scrolled to the right.
If omitted, each window to be scrolled is scrolled by the current number of
data columns for that window.
Return codes
0 Operation successful
5 Arguments are invalid
6 Command issued when it has no meaning
150 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
LIBE (CMS and z/OS)
Controls the source of the target program which IDF is to load.
►► LIBE file-name ►◄
file-name
The file to be loaded.
z/VM
v LIBE indicates that the target program should be loaded from an
OS-style LOADLIB rather than from the usual CMS-style MODULE
file.
file-name
The file name of the LOADLIB to be used.
If this file name is not present in the list of files declared with
the CMS GLOBAL LOADLIB command, it is added as the first
library.
$ Indicates that the LOADLIB was declared through the CMS
GLOBAL LOADLIB command.
z/OS
v LIBE is used to explicitly control the loading of the target Load
Module.
v A single parameter is needed. It may be either:
– The DD name of the PDS containing the Load Module.
– $ to indicate that standard OS Load Module search order should
be used.
The LIBE command may only be issued from the PROFILE macro, before loading
the target program into storage.
Examples
SET LIBE $
SET LIBE mylib
►► LOAd ►◄
MODule
SYMbols File Info
File Info:
MAP
cms-fn
ft ( MODUle module-name
fm
pds-member
dd-name
phasename
MODULE
Keyword indicating module-only load.
Only the target module is loaded into storage.
This option may only be used in the PROFILE macro. For more details see
“Command restrictions related to PROFILE execution” on page 222.
SYMBOLS
Keyword indicating symbols-only load. Does not apply to z/OS.
Only the module symbols are loaded into storage. The following parameters
provide more information.
cms-fn
CMS file name
MAP
Default CMS file type
ft CMS file type
fm CMS file mode
pds-member
z/OS PDS member name.
dd-name
z/OS DD name. If omitted, IDF looks in the ISPLLIB or STEPLIB if present. If
the LIBE option was used, then that DD name is used as the default. IDF does
not look in LPALIB or the z/OS link list.
phasename
The z/VSE phase map, as generated by ASMLKEDT.
MODULE
Keyword to indicate that a module name is supplied. If not supplied, then
symbols are loaded for the qualified module.
module-name
Module for which symbols are loaded.
152 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
If LOAD MODULE or LOAD SYMBOLS is issued by the PROFILE macro, but not
both, IDF makes sure that both functions are performed after the profile completes.
For example, if the PROFILE issues LOAD SYMBOLS but does not issue LOAD
MODULE, IDF loads the module anyway after the profile is completed.
You can stop IDF from loading the module with the MODULE command.
If no parameters are supplied with this command (the command is just “LOAD”)
then both the target module and its associated symbols are loaded into storage.
This may only be used in PROFILE macro. For more details see “Command
restrictions related to PROFILE execution” on page 222.
Return codes
0 Target program loaded successfully
Other An error occurred, see “Message numbers and severity levels” on page 283
for return codes.
The underlying assumption for the IDF processing which loads symbols is that the
symbol information is found as INVALID CARD images in the LOAD MAP file,
interspersed with entrypoint addresses. You can use the LOAD SYMBOLS
command to load symbol information from a TEXT file rather than a renamed
LOAD MAP if you wish, but you have to perform some more setup for this case.
When loading symbol information directly from a TEXT file, you must first load all
of the applicable TEXT files by means of the LOAD SYMBOLS command, then you
must issue a SYMBOL command to define the offset-within-module for each
CSECT.
An example profile to perform this kind of operation follows, but you probably
want something more elaborate to prevent retyping the addresses within the
profile each time you rebuild the program:
The records in the LOAD MAP file which IDF uses to determine the start
addresses of various CSECTs have the following format (in some cases you may
want or need to build the map manually):
Col 1 Blank
Col 2-9
Symbol name (upper case)
Col 10 Blank
Col 11-12
If the symbol marks the start of a CSECT, these columns should contain
the characters SD, otherwise they should be blank.
Col 13 Blank
Col 14-19
The hexadecimal address associated with this symbol.
LOCATE
Locates a string and displays the section of code where it occurs.
►► / string ►◄
Locate window - /
window
A Disassembly window. Select by a Window Specification or by placing the
cursor in the window. If omitted, and the cursor is not in a Disassembly
window, uses the first Disassembly window.
- Search direction is up, rather than down.
string
The string to be searched for. Include the trailing delimiter “/” when the string
has trailing blanks.
Format is essentially the same as the XEDIT LOCATE command. The search begins
at the first source line shown on the screen; the target code, if found, is displayed
at the top of the screen.
Examples
loc /procedure
loc -/end;
l /declare /
/init(
/first use/
-/gobackward
loc =3 /window 3/
Return codes
0 Operation successful
1 Missing search string
6 No extract data files containing source code were loaded with
LANGUAGE LOAD.
LOCATION
Sets main storage to the contents of REXX variable MEMAREA.
►► LOCation storage-start-address ►◄
154 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
location-start-address
An expression specifying the storage start address.
If the expression contains an Access Register then the storage that is modified
is in the dataspace identified by the ALET in the referenced Access Register.
The SET LOCATION command lets you modify storage within your program's
defined limits. If the TRACEALL or RISK option is ON, you may be able to modify
storage beyond the defined limits.
For more details on your program's defined limits and how to change them, see
(for CMS) “Your program's defined limits” on page 61, (for z/OS) “Your program's
defined limits” on page 51 and (for z/VSE) “Your program's defined limits” on
page 69.
Examples
SET LOCATION plist
SET LOCATION 0(R1)
SET LOCATION 0(AR2)
LOCATION ALET
Sets storage in a dataspace to the contents of REXX variable MEMAREA.
access-link-entry-token
A token identifying the ALET. Must be a one to eight character hexadecimal
value.
storage-start-address
An expression resolving to a storage area start address within the dataspace.
Examples
SET LOCATION ALET 10003 X’1000’
SET LOCATION ALET 10004 0(R1)
REXX variables
MEMAREA
New contents of the specified memory area
►► MACro macro-name ►◄
macro-parameters
macro-name
The name of the macro.
macro-parameters
Arguments for the macro.
Return codes
MAJOR
Enables and disables the display of data for the structure major component.
►► MAJor ON ►◄
OFF
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
156 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
MAP
Displays the location of modules and code sections known to IDF, and the name of
any associated extract file.
*
►► MAP ►◄
window ;
▼ module-name
window
An LSM Information window. Select by a Window Specification or by placing
the cursor in the window. If omitted and the cursor is not in an LSM
Information window, uses the first LSM Information window.
* Displays information for all known modules.
module-name
The module for which information is displayed.
The LSM Information window containing the MAP display is closed if you
issue a MAP without operands and the current display is for the same
command with a null argument.
The module and code section entries are built (and possibly associated with an
extract file) as part of processing the LANGUAGE LOAD command, as well as the
DISASM command.
The MAP command is meant primarily for debugging situations, or for verifying
that IDF understood your commands.
Return codes
0 Operation successful
28 The specified module was not defined to IDF
MAXIMIZE
Removes a window from the Minimized Windows Viewer and restores it to its
previous position on the display screen.
►► MAXimize ►◄
window
window
The window to maximize. Select by a Window Specification or by placing the
cursor in the window name token in the Minimized Windows Viewer.
Return codes
0 Operation successful
1 No window selected
►► MINimize ►◄
window
window
The window to be minimized. Select it by a Window Specification or by
placing the cursor in the window.
Return codes
0 Operation successful
1 No window selected
►► MODE file-mode ►◄
file-mode
A CMS file mode specification.
Examples
SET MODE b
SET MODE A2
MODULE
Stops IDF loading an executable file into memory.
►► MODUle ►◄
MODULE intended for use by user profiles that need to perform unusual program
loading. It can only be issued from an IDF macro or profile.
Examples
MODULE
158 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
MODULE
Defines the origin and length of a module that was loaded while the original target
program was executing.
►► MODUle module-name ►◄
CDE
NUCext
TRANs
module-name
The name of the module that is to have its origin and length defined.
The second argument is the module search type. It is not needed for z/VSE.
The origin and length are taken from system control blocks.
The new module definition is needed before symbols are loaded for modules
loaded by the original target.
MODULE BASE
Sets the origin of a module that was loaded while the original target program was
executing.
module-name
The name of the module that is to have its origin set.
The new module definition must be completed with a MODULE SIZE command
before symbols are loaded.
See “BASE” on page 110 for information about how to set the base address of the
target program specified when IDF was invoked.
Examples
MODULE ASMLANGX BASE 0(R0)
MODULE SIZE
Sets the length of a module that was loaded while the original target program was
executing.
module-name
The name of the module that is to have its length set.
160 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
module-length
An expression which resolves to the length value for module module-name.
The new module definition must be completed with a MODULE BASE command
before symbols are loaded.
Examples
MODULE ASMLANGX SIZE X’123000’
MODULE FDISK SIZE F’1024’
MOVE
Moves a window to a new location on the screen.
Location:
row
+ column
- +
* -
STANdard *
STD STANdard
STD
WINDOW
The window to be moved. Select by a Window Specification, or by placing the
cursor in the window.
ADSTOPS
The AdStops window.
AFPR
The Additional Floating-Point Registers window.
BREAK
The Break window.
DISASM
The Disassembly window with the lowest window id.
The MOVE command lets you place open windows in explicit places on the screen.
Any window can overlap any other window. However, none of the windows can
162 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
overlap the Command window. Also, a window cannot be placed such that some
of the window is off the screen. If you try this, IDF repositions the window so that
all of it stays on the screen.
Examples
v To move the window 03 origin to row 5 and column 20:
MOVE =03 5 20
v To move the window in which the cursor is placed to row 8 and column 1:
MOVE 8 1
v To move the window 01 origin to the current cursor position:
MOVE =01
Return codes
0 Operation successful
1 Window name or Row location missing
2 Operand longer than eight characters
5 Window name invalid or syntax or other error in expression
MPACK
Returns extract data storage AREAs that do not hold extract data to the operating
system free storage pool.
►► MPAck ►◄
Return codes
0 Operation successful
Other Error occurred while packing extract data storage AREAs. This is probably
caused by an overlay of the extract data AREA control information by an
errant application program under test.
MRUN
Executes target program instructions until the next event occurs.
►► MRUn ►◄
The MRUN command is different to RUN, because the target program is executed
before control returns to the issuing macro. When RUN is issued from a macro, it
has no immediate effect, being processed after the macro exits.
After issuing MRUN, the macro can use EXTRACT EVENT to determine what
kind of event occurred in the target program.
Return codes
0 Operation successful
6 The target program is not yet loaded
164 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
the target program, and CMS is hopelessly confused if IDF returns. So instead
IDF issues a series of messages about the situation, telling you to consult this
section of the documentation for details. A re-IPL of CMS is needed afterwards.
Exactly the same situation occurs when using LINK or SVC 202 linkage to
another program instead of CMSCALL. Again, IDF detects a change in the
CMS SVC nesting depth, issues its messages, and needs a re-IPL.
3. If the target program does a DMSKEY NUCLEUS, DMSKEY USER, or
DMSKEY LASTUSER which does not specify the NOSTACK option, and an
event occurs to signal completion of the MRUN before the corresponding
DMSKEY RESET in the target program, then a CMS ABEND occurs, since the
change of key appears to have occurred from within IDF and is not restored
before returning to the calling function, in this case REXX.
These considerations apply only to an address ASM invocation on CMS. They are
of no concern if you use the default LPSW Fastpath interface to invoke the
command. With no SVC linkage used in that path, each of these potential problems
is bypassed.
MSG
Places text in the next available Command window message display line.
►► MSG message-text ►◄
message-text
The message text.
If all message display lines are occupied, the current messages scroll up and the
new message appears in the bottom display line.
Examples
SET MSG This is a message
►► MSGId ON ►◄
OFF
The initial setting is based on the execution environment and z/OS or OS runtime
settings:
v Under CMS, the messages respect the CMS EMSG setting:
ON The MSGID option is initially ON
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
MSGMODE
Controls the display of messages during macro execution.
►► MSGMode ON ►◄
OFF
When some IDF commands are issued through PF keys, or a command typed on
the Command window command line, appropriate status and informational
messages are displayed.
During the execution of a macro, these messages may become rather lengthy, hence
this command to give you control.
The most recent 10 messages, including those suppressed by MSGMODE OFF, may
be retrieved with the EXTRACT LASTMSG command. See “LASTMSG” on page
255 for details.
The QUIETLY prefix command may be used to override the current MSGMODE
setting, and suppress messages (as if MSGMODE was OFF) for the invocation of a
single command. See “QUIETLY” on page 181 for details.
Examples
166 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Since this is one of the settings which is saved in the status stack, a useful
sequence within a macro is:
’PRESERVE’ /* Save current settings in stack */
’MSGMODE OFF’ /* No messages displayed */
.
.
.
/* Quietly perform macro functions */
’RESTORE’ /* Restore settings, including MSGMODE */
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
MSTATUS
Opens or closes (toggles) the MStatus window.
►► MSTAtus ►◄
This window displays information about the storage used to contain the extract
data information that was loaded with LANGUAGE LOAD commands. This
includes:
v number of compile areas
v extract data storage consumption (total, direct, pooled)
v extract data storage pool utilization, including the number of AREAs in the pool
which are unused
When extract data file information is removed from storage with LANGUAGE
DROP, the storage AREAs that held the extract data are kept for use by later
LANGUAGE LOAD commands. The MPACK command returns storage AREAs
that no longer hold extract data back to the operating system free storage pool.
Return codes
0 Operation successful
MSTEP
Executes the next target program instruction.
►► MSTep ►◄
The MSTEP command is different to STEP because the target program is executed
before control returns to the issuing macro. When STEP is issued from a macro, it
has no immediate effect, being processed after the macro exits.
Return codes
0 Operation successful
6 The target program is not yet loaded
NAMES
Display the names of all variables that match a particular pattern and are eligible
for display.
►► NAMes ►◄
window ;
▼ variable-name-pattern
window
An LSM Information window. Select by a Window Specification, or by placing
the cursor in the window. If omitted and the cursor is not in an LSM
Information window, uses or opens the first LSM Information window.
variable-name-pattern
A variable name matching pattern.
If this parameter is not supplied, then the names of all variables which are
eligible for display are shown. Supplied variable name matching patterns
define a subset of the eligible names. A variable name is displayed if it
matches one variable pattern name.
The variable name matching pattern rules are:
v ? matches a single variable name character
168 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
v % matches zero or more variable name characters
v other characters represent themselves
v the search is not case sensitive
Examples
If name
lists:
301char
ab30xcc
aptr
bptr001
ctra
ctrd
i
ii
mstidx
slvidx
title
Then NAME
lists:
aptr
bptr001
and NAME
lists:
301char
ab30xcc
and NAME
lists:
ctra
ctrd
i
mstidx
slvidx
NEXT
Scrolls windows forward.
►► NEXt ►◄
Down window
Return codes
0 Operation successful
6 Command issued when it has no meaning
OFFSET
Sets or queries the current offset value.
►► OFFSet ►◄
address
address
The new value of the offset.
If not provided, displays the current value of the offset.
The OFFSET option must be ON to obtain a window display that shows dump or
disassembly addresses in terms of the offset.
For information about specifying arguments in terms of the offset, see “Address
expressions” on page 87. Arguments may be specified in terms of the offset
regardless of the setting of the OFFSET option.
The initial value of the offset is the same as the program's base address (origin in
memory).
Return codes
0 Operation successful
5 Syntax or other error in expression
6 Command issued when it has no meaning
170 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
OPEN
Opens a Disassembly window, a Dump window, or an LSM Information window.
ARRAY
Open an LSM Information window with an array element display.
CALLERS
Open an LSM Information window with a program call hierarchy display.
DISASM
Open a Disassembly window.
DUMP
Open a Dump window.
LANGUAGE
Open an LSM Information window with a display from a LANGUAGE
command.
MAP
Open an LSM Information window with a program map display.
STRUCTURE
Open an LSM Information window with a structure component display.
TYPE
Open an LSM Information window with a variable type attribute display.
UNION
Is a synonym for STRUCTURE.
VARIABLE
Open an LSM Information window with a variable display.
command-parameters
Parameters for the window. The format of this argument depends on the type
of the window being opened:
v If a Disassembly window is being opened, the second argument is the
address at which the disassembly listing is to begin. For more information
about how to specify this address see “DISASM” on page 123.
v If a Dump window is being opened, the second argument is the address at
which the storage dump is to begin. For more information about how to
specify this address see “DUMP” on page 125.
The OPEN command lets you have more than one of these types of window open,
letting you view many non-contiguous areas of storage at once.
Return codes
0 Operation successful
1 Window type missing
2 Window type too long
5 Window type invalid
6 Too many windows open
OPTIONS
Toggles the display of the options window.
►► OPTions ►◄
ORDER
Moves a window to the top of the screen.
►► ORDer ►◄
window
window
The window that is moved. Select by a Window Specification or by placing the
cursor in the window.
Return codes
0 Operation successful
1 No window selected.
172 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
OREGS
Opens or closes (toggles) the Old Registers window which contains a display of
the registers and PSW as they were the last time IDF had control.
►► OREGs ►◄
If the CREGS command or the AREGS command was issued, the control registers
or the access registers as of the last time IDF was in control are displayed. If the
target has not executed any instructions the window is blank.
Return codes
0 Operation successful
PACKED
Sets or queries the format in which the data for packed decimal variables are
displayed.
►► PACked ►◄
DECimal
*
HEX
DECIMAL
Packed decimal variables are displayed in decimal. This is the initial value.
* The same as DECIMAL.
HEX
Packed decimal variables are displayed in hexadecimal.
If the display format setting is not specified, the current display format for packed
decimal variables is shown in a message.
Return codes
0 Operation successful
2 Keyword truncated
5 Not valid packed decimal variable display format
►► PARms ▼ module-name ►◄
window
window
An LSM Information window. Select by a Window Specification, or by placing
the cursor in the window. If omitted and the cursor is not in an LSM
Information window, uses or opens the first LSM Information window.
module-name
A Callable Block name.
Return codes
0 Operation successful
5 Arguments are invalid
6 No extract data files containing source code were loaded with
LANGUAGE LOAD.
PAUSE
Delays the execution of IDF (and thus of the target program).
►► PAUSe ►◄
delay
delay
The number of hundredths of seconds to pause. An integer from 0 to 99999999.
If omitted, a pause of 0.25 seconds is assumed.
Return codes
0 Operation successful
►► PER Y ►◄
N
174 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Y Enable PER exploitation. Break window displays PER=Y.
N Disable PER exploitation. Break window displays PER=N.
Examples
SET PER Y
SET PER N
PFK
Assigns a command or macro invocation to a PF key.
pfkey-number
An integer identifying the PF key. Has a value from 0 to 24. 0 is the ENTER
key.
command-string
The PF key command text. This has a maximum of 40 characters.
Examples
PFK 1 SUBSET
PFK 10 ADSTOP
PFK 0 MACRO MYENTER
When you press the PF key, the command that you entered against the key is
executed. Parameters typed on the command line may be used as parameters for
the command.
If you want a PF key to invoke a macro, you must use the MACRO command in
the text assigned to the PF key.
PFKDISP
Adjusts the display of PF key settings at the bottom of the screen in the Command
window.
►► PFKDISP ALL ►◄
ON
OFF
ALL
Display settings of PF keys 1 to 24.
OFF
Display no PF key settings.
ON Display settings of PF keys 1 to 12.
PLOCATES
Displays the variables that may be located with a given locator (pointer) variable.
►► PLOcates ►◄
window ;
▼ variable-name
The PLOCATES command determines the variables which may be located with a
given locator (pointer) variable, and displays an entry for each in the LSM
Information window.
window
An LSM Information window. Select by a Window Specification, or by placing
the cursor in the window. If omitted and the cursor is not in a LSM
Information window, uses or opens the first LSM Information window.
variable-name
A variable name.
Only the variable name is relevant in determining the located variables. Extra
information such as:
v Locating expressions for based variables
v array index values
v substring ranges
is not needed, and should not be specified.
Examples
ploc base@
ploc DSA_ptr
plocates ptr1;ptr2
176 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
PRESERVE
Saves the current value of the IDF settings in a 32 element stack.
►► PREServe ►◄
SAVe
If the IDF settings stack is full, the last stack element is replaced. Use the
RESTORE command (see “RESTORE” on page 184) to restore the settings.
This command is intended for use within IDF macros, as it lets you save the
current values of IDF settings, then change them for the duration of the macro,
then restore them to their values before the macro was run.
Return codes
0 Operation successful
PREVIOUS
Scrolls a window backwards.
►► PREvious ►◄
Up window
window
The window to be scrolled. Select it by a Window Specification or by placing
the cursor in the window. If omitted and the cursor is not in a scrollable
window, then all scrollable windows are scrolled.
This command works only on a scrollable window, which is any window made
smaller with the SIZE command, or one of the following:
v Break window
v Dump window
v Disassembly window
v LSM Information window
v Options window
v Skipped Subroutines window
v Target Status window
Whenever you use the NEXT command, IDF records information about the
windows that are displayed on the screen in a page buffer. This page buffer holds
information for about forty windows. When you use the PREVIOUS command,
IDF attempts to determine the proper starting address for the previous display
page by examining the page buffer. If you page forward, then page back, the
starting location on the first page should be the same as on its previous display. If
you page forward beyond the limits of the page buffer, information about the
If IDF is unable to obtain information from the page buffer, the number of bytes
that are displayed in the window is subtracted from the address of the first byte
displayed. Unless the display shown is an unformatted dump, this is an imprecise
amount. Paging backward and then paging forward does not necessarily display
the original location.
Return codes
0 Operation successful
6 Command issued when it has no meaning
►► PROGck check-code ►◄
PROGchk
check-code
The program check code to be simulated. An integer, with the following
possible values:
1 Operation exception
2 Privileged operation exception
3 Execute exception
4 Protection exception
5 Addressing exception
6 Specification Exception
7 Data exception
8 Fixed-point overflow exception
9 Fixed-point divide exception
10 Decimal overflow exception
11 Decimal divide exception
12 Exponent overflow exception
13 Exponent underflow exception
14 Significance exception
15 Floating-point divide exception
The program check is simulated with the current GPRs, FPRs, ARs, CREGS, and
PSW.
As this command is intended to simulate an error and drive an error handler, that
handler may be expecting some other conditions that must be set up before this
command is issued. If necessary, you must first change these values before issuing
the PROGCK command.
Return codes
0 Operation successful
178 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
PROGCK (CMS only)
The PROGCK command is a synonym of the PROGCHK command. For details,
see “PROGCHK (CMS only)” on page 178.
PSW
The PSW command is a synonym of the GOTO command. For details, see “GOTO”
on page 135.
►► PSWSTEAL address ►◄
address
The storage location. If an expression is present on the command line, that
expression is used as the argument. If the command line is empty, an attempt
is made to determine the address from the cursor position.
To guarantee correct results, you must declare all occurrences of the following:
v All references (both store and fetch) to either SVC or PGM New.
v All store references to SVC or PGM Old.
v All store references to locations 136-159 (interrupt information)
The following instructions are supported for interpretive execution through the
PSWSTEAL command, and are therefore its only valid targets:
MVC Move characters
STM Store multiple
LM Load multiple
ST Store
L Load
The maximum number of PSWSTEAL breakpoints that may be active at any time
is 75. These are not shown on the Break window, but may be obtained by means of
the EXTRACT BREAK command.
When you issue the PSWSTEAL command, IDF exploitation of PER is locked out
for the remainder of the debugging session. This does not affect the program in
terms of its ability to use PER.
When the new PSW locations in low storage are displayed on a Dump window,
the values the program placed in them are visible. However if you use EXTRACT
LOCATION to obtain this information, IDF's PSWs are returned.
This facility enables you to use IDF to single-step through every instruction of the
program's first level interrupt handler.
/*-------------------------------------------------------*/
/* Establish PSWSTEALs using information from MAP file */
/*-------------------------------------------------------*/
PSWsteals = 0
Do i = 1 To maprec.0
Parse Upper Var maprec.i label .
If Substr(label,1,3) ¬= ’PSW’ Then Iterate
’PSWSTEAL’ label
If RC ¬= 0 Then
Do
’SET MSG2 Error on PSWSTEAL’ label’ after’ ,
PSWsteals ’successful, RC=’RC
’SET ALARM’
Exit
End
PSWsteals = PSWsteals + 1
End
This makes the fact that you are stealing PSWs transparent as far as your
operational procedures are concerned.
Return codes
0 Operation successful
1 No address specified
5 Syntax or other error in expression, or unsupported instruction
6 Module not yet loaded, or maximum number of PSWSTEALs already set
180 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
QUALIFY
Sets the name of the module that is used with some commands and addresses
when no explicit module name is supplied.
►► QUAlify default-module-name ►◄
default-module-name
The name of the new default module.
Examples
SET QUALIFY ASMLANGX
QQUIT
The QQUIT command is a synonym of the QUIT command. For details, see
“QUIT” on page 182.
QUIET
Controls the display of informational messages.
►► QUIET ON ►◄
OFF
QUIETLY
Temporarily suppresses the display of I (Informational), W (Warning) and E (Error)
messages during the execution of the specified command.
command-name
The command that is being executed.
command-parameters
The parameters needed by this command.
The QUIETLY prefix command overrides the current MSGMODE setting, and
suppresses messages (as if MSGMODE was OFF). It does not affect the actual
value of the MSGMODE setting.
If an IDF message that normally rings the terminal alarm is issued under
QUIETLY, the alarm is also suppressed.
Return codes
0 Operation successful
1 No command specified
2 Command name truncated
3 Command unknown
Other Return code from the command
QUIT
Quits IDF.
►► QUIT ►◄
QQUIT
If the QUIT command is issued from a PF key, it must be issued twice (press the
key twice) to quit.
If the QUIT command is issued from the command line through a PF key that is
set to COMMAND, IDF exits immediately.
If the QUIT command is issued by a macro, it must be issued twice to make IDF
exit. In this case, IDF does not exit until the macro stops.
Return codes
0 Operation successful
RCQUIT
Quits IDF with a specific return code.
►► RCQuit ►◄
return-code
return-code
The return code. This must be a valid IDF expression. If omitted, the command
line is checked for an expression and if a valid expression is found its value is
used as the return code. If omitted and the command line is empty, the current
content of the target program's R15 is used as the return code.
Intended for use by macros, but can also be issued from the command line if
desired.
Return codes
182 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
If an invalid expression is provided, either as part of the command or on the
command line, RC=5 is returned to the invoking macro and processing is ended.
REFRESH
Forces IDF to rebuild the IDF user interface screen image, and optionally rewrite it
to the terminal.
DISP
►► REFresh ►◄
NODISP
DISP
Rebuilds the screen image, and writes it to the terminal.
This is useful if a macro wishes to update the IDF user interface display, but
continue running. Normally the rebuild and screen update does not occur until
the macro completes execution.
NODISP
Rebuilds the screen image, but does not write the updated image to the
terminal.
This is useful if a macro has issued a command which causes an update of the
IDF user interface display, and needs to issue EXTRACT commands for the
new display image. Eliminating the extra terminal update speeds up the
execution of the macro.
This facility can even be used to hide the update by immediately issuing more
commands to restore the user interface display to the previous configuration.
The REFRESH command can also be used to restore the IDF user interface display.
This is normally only needed in a macro that sends line mode output to the screen,
and should only be needed on TSO.
Return codes
0 Operation successful
REGS
Opens or closes (toggles) the Current Registers window which contains a display
of the registers and PSW or the current contents of the control registers or the
access registers.
►► REGs ►◄
Return codes
►► REGS64 ►◄
Return codes
0 Operation successful
RESTORE
Restores the IDF settings from the 32 element stack.
►► REStore ►◄
If the IDF settings stack is empty, the current setting values are maintained.
This command is intended for use within IDF macros, as it lets you restore the IDF
settings to the state that they held when the last PRESERVE or SAVE command
was issued.
Return codes
0 Operation successful
RETRIEVE
Places the previous command on the command line.
►► RETRieve ►◄
?
IDF maintains the last 30 inputs in a circular buffer. The RETRIEVE function shifts
the most recent of these into the command line.
184 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Return codes
0 Operation successful
RIGHT
Scrolls a window to the right.
►► RIGHt ►◄
window number-of-columns
window
A scrollable window. Select by a Window Specification or by placing the cursor
in the window. If omitted and the cursor is not in a scrollable window, then all
open scrollable windows are scrolled.
number-of-columns
The number of columns by which the window is scrolled.
This can be specified as:
v an integer
v an integer prefixed by a +
v an integer prefixed by a -, specifying the number of screen columns by
which the window is to be scrolled to the left.
If this parameter is omitted, each window being scrolled is scrolled by the
current number of data columns for that window.
Return codes
0 Operation successful
5 Arguments are invalid
6 Command issued when it has no meaning
RLOG
The RLOG command (Repeat from Log) controls the execution of IDF commands
stored in the command log.
►► RLog ►◄
search-string
$
search-string
The text of a search string. All commands in the log file, up to and including
the first command which begins with the specified search argument, are
executed. This search is case insensitive.
By providing an argument not in the log file, for example, eof, you can execute
all commands in the log.
Chapter 10. Commands and operating procedures 185
$ RLOG first executes anything on the command line, then retrieves the next
command from the log and places it on the command line. Thus by repeatedly
pressing the PF key, you can step through as many commands as you like,
previewing (and optionally modifying) them before they are executed.
When issued with no arguments, the next command is retrieved from the log file
and placed on the command line. You can then press ENTER to execute it, or clear
the command line as you choose. By clearing the command line, you skip
executing the command.
You can get a similar result by specifying the RLOG option at invocation. When
specified at invocation, RLOG means:
1. Repeat all commands in the log, and
2. Start logging any new commands issued.
If you are executing many commands from the log file, any command which has a
nonzero return code or sets the alarm, stops the RLOG operation.
For more details on command logging support, see “Command record and
playback features” on page 86.
RUN
Begins execution of the target program and runs to the next unusual event (such as
a breakpoint, program check, or completion).
►► RUN ►◄
If the RUN command is issued by a macro, it does not take effect until the macro
exits.
Return codes
0 Operation successful
RUNEXIT
Executes the exit routine, passing it the single argument PFKEY.
►► RUNExit ►◄
For more information, see Chapter 13, “The IDF exit routine,” on page 231.
Return codes
0 Exit routine executed
6 Exit routine not found
186 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
R0-R15
Evaluates the expression provided and places it in the indicated General Purpose
Register.
►► Rn expression ►◄
expression
The expression to be evaluated. Can also be set from the cursor position.
There are 16 separate commands, named R0, R1, ... R15. They all have the same
arguments and function, and differ only in which GPR is changed.
Return codes
0 Operation successful
1 No address specified
5 Syntax or other error in expression
6 Conditions do not permit completion of command
SALIMIT
Sets the maximum depth of the CALLERS display.
►► SALimit max-caller-display-depth ►◄
max-caller-display-depth
The maximum depth of the CALLERS display. Integer from 1 to 999999.
The initial value is 100.
This is intended to prevent problems when the program call chain is damaged, or
is of unexpected depth (due to runaway recursion).
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
5 Arguments are invalid
SAREGS
Toggles the display of Save Area header and register information when the
CALLERS command is displaying information about each generation of the
program caller hierarchy.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
SAVE
The SAVE command is a synonym of the PRESERVE command. For details see
“PRESERVE” on page 177.
SEARCH
Searches for a string in storage.
►► SEArch string ►◄
window
window
A Dump window or Disassembly window. Select by a Window Specification or
by placing the cursor in the window. If omitted, the search begins at the first
location that is displayed. If both a Dump window and a Disassembly window
are open, but show different storage areas, it is not clear where the search
should begin, and an error message is issued.
string
The string for which IDF is to search.
Search arguments may be specified in either hexadecimal or character form.
Hexadecimal search arguments must contain an even number of hex digits. An
apostrophe in a character argument is represented by two successive
apostrophes.
Examples of valid search arguments are:
X’0741fe3022’
C’The quick brown fox’
C’The dog’’s feet are’
When the search argument is located, it becomes the first location displayed in the
selected window or in the first Disassembly window or Dump window.
188 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Repeat the command to continue searching the remainder of virtual storage.
If the search argument is not found within the target program, a message is issued.
Return codes
0 Operation successful
5 Search argument missing or invalid
6 Not valid in current display mode, unable to determine start address for
search, or target not found
Lets the PROFILE macro control the start offset of the code that is relocated by a
self-loading CMS Nucleus extension.
symbol-name
A symbol that defines the start of the relocated code.
start-offset-value
An expression that resolves to the start offset value.
This only applies to the target program specified when IDF was invoked.
SELFNUCX SYMBOL may only be issued within the PROFILE macro before the
target program is loaded into memory. If it is issued after that point, RC=6 results.
SELFNUCX VALUE may be issued within the PROFILE macro, and may also be
used later to let you (or IDF macros) redefine this offset after the target program is
loaded.
Examples
SELFNUCX SYMBOL FREEGO
SELFNUCX VALUE X’44’
►► SET ADSTop ON ►◄
OFF expression
Examples
SET ADSTOP ON ALLOPEN+4
SET ADSTOP OFF X’200E4’
SET AREG
Changes the contents of an Access Register (AR).
access-register-number
The Access Register number; an integer from 0 to 15.
expression
The new value for the Access Register.
Examples
SET AREG 2 X’00010004’
SET BREAK
Sets or clears a breakpoint at an address.
►► SET BREak ON ►◄
OFF address
▼ | command
190 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ON Set the breakpoint.
OFF
Clear the breakpoint.
address
The address at which the breakpoint is set. If an expression, the expression is
used to provide the address.
If omitted, the address is determined from the cursor position. If it is not
possible to determine an address from the cursor position (for example, when
the cursor is on the command line and the command line is empty), then an
error.
command
A command that is executed when the breakpoint is taken, before control is
returned to the user. Many commands can be specified at the end of the SET
BREAK command, separated from the address and each other by a vertical bar
(|). If a command receives a non-zero return code, the remaining commands in
the list are not executed.
See also “BREAK” on page 111.
Examples
SET BREAK ON ALLOPEN+8
SET BREAK OFF 4(R2)
SET BREAK ON MOON | SET MSG Houston... the Eagle has landed.
SET COMMAND
Places text on the command line.
text
The text to be placed on the command line.
Examples
SET COMMAND Press VALUE to see it yell about this expression
SET EXITEXEC
Names the current IDF exit routine (exec).
EXIT
►► SET EXItexec ►◄
IDF-exit-exec
EXIT
Default name of IDF exit routine.
For more information, see Chapter 13, “The IDF exit routine,” on page 231.
Examples
SET EXITEXEC STUFF
stem-name.
A REXX stemmed array name. Must have a terminating period.
Any existing Global Storage stem by the same name is dropped before the REXX
stemmed array is inspected.
If the stemname.0 item is not a positive integer, an error message is issued. The new
Global Storage stem is not created.
If a REXX stemmed array element is omitted, an error message is issued. The new
Global Storage stem is not created.
If a REXX stemmed array element is longer than 4,096 bytes, an error message is
issued. The new Global Storage stem is not created.
Examples
SET GLOBAL ptr-array.
SET GLOBAL data.buf1.stem.
192 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
SET GLOBAL TEXT
Saves the value of the IDF global area. Other macros can then access it, by using
the EXTRACT GLOBAL command.
global-text
The new global text value, up eighty characters in length.
Do not end the first blank-delimited word of the new global text value with a
period (.), as this is a SET GLOBAL STEM command.
Examples
SET GLOBAL state3
SET ICOUNT
Sets the count of instructions executed to a specified value.
instruction-count
An expression which is resolved to the new instruction count value.
Examples
SET ICOUNT 0
SET OFFSET
Toggles the display of addresses using offsets.
►► SET OFFSet ON ►◄
OFF
Notes:
1 This alternative form may be used only when it does not conflict with
other command names.
option
The IDF option name.
The IDF options control the environment of IDF, which in turn controls the way
IDF works, and the information you see on the screen.
Most options can be controlled through the SET OPTION command. Many of these
options can also be specified at the invocation of IDF, either as parameters to the
ASMIDF call, or as items in the PROFILE macro. The restrictions that apply to
options specified in a PROFILE macro are set out in “Command restrictions related
to PROFILE execution” on page 222.
Some options are invocation options only, and cannot be controlled after invocation
with the SET OPTION command. The information provided by these options must
be available at invocation. It makes no sense for it to be provided later.
Some options are controlled by a command of the same name. Some of these can
also be specified at invocation.
These options can be specified at invocation and set by the SET OPTION
command:
These options are set and changed by a command with the same name. They
cannot be specified as an invocation parameter, but each option has an initial
value:
194 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
APROGMSG BRIEF MAJOR MSGMODE SPACE
AUDIT COMPACT MSGID SAREGS
These options are set by a command with the same name, and can be specified as
an invocation parameter:
These options are specified only as an invocation option. They cannot be changed
by a command, or by the SET OPTION command:
The current state of many options is displayed in the Options window, see
“Options window” on page 81.
You can use the alternate syntax of option ON or SET option ON when the option
name does not conflict with any other command or SET command name. If the
option name conflicts with a command name, the alternate syntax SET option ON
may still be used.
Examples
hexinput ON
SET offset ON
SET OPTION ON impmacro
SET PSW
Sets the current PSW.
hex
The new PSW value, expressed as 1 to 16 hexadecimal digits.
Normally the SET PSW command does not let you set the PSW to an invalid PSW.
If the INVPSW option is ON, then the PSW may be set to any combination of
sixteen hexadecimal digits. This is useful in writing a macro that gets control at a
breakpoint in an error recovery routine and you want the PSW to show the
original PSW in error.
Normally it does not let you set the address part of the PSW to an address that is
outside the programs limits. If the TRACEALL option is on, the address part of the
PSW may be set to any even address from zero to VMSIZE. If the RISK option is
on, the address part of the PSW may be set to any even address you want.
Chapter 10. Commands and operating procedures 195
Examples
SET PSW FFE0000000020000
Examples
SET REGSTOP ON 4
SET REGSTOP ON 12
SET REGSTOP OFF 9
SET SIZE
Specifies the size in bytes of the target program specified when IDF was invoked.
module-length
An expression which resolves to the module length value.
IDF automatically sets the size based on information found in the module file. Use
this command to override the size determined by IDF.
Use the MODULE SIZE command to specify the size in bytes of other programs
defined to IDF.
Examples
SET SIZE X’1A08’
196 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
SHOW
Controls the display of source code and disassembly. It is used to enable the
display of specific information, and is the opposite of the HIDE command.
BOTh
►► SHOw ►◄
SOUrce separator
(1)
▼ COMments
DEClares
DCLs
LINe
MACros
NOCode
STAtement
STMt
ALL
*
DISasm
Notes:
1 An option can be chosen no more than once.
BOTH
Show source code interspersed with the generated assembler.
SOURCE
Show source code only, without interspersed assembler code.
SEPARATOR
A comma, blank, or semicolon. Separates the suboptions of SOURCE and
BOTH.
COMMENTS
Show block comment source when source code is displayed.
DECLARES | DCLS
Show declaration source when source code is displayed.
LINE
Show source line numbers when source code is displayed.
MACROS
Show macro expansion source when source code is displayed.
NOCODE
Show source lines with no corresponding object code when source code is
displayed.
STATEMENT | STMT
Show source statement numbers when source code is displayed.
ALL | *
Show all source code, interspersed with the generated assembler.
DISASM
Show disassembled assembler code only, without source code.
Return codes
0 Operation successful
2 Keyword truncated
5 Invalid information type keyword
SIZE
Changes the size of a window on the screen.
►► SIZe Location ►◄
window
ADSTops
AFPR
BREak
DISasm
DUMP
OREGs
REGs
SKIPstep
STAtus
LSMinfo
Location:
row
+ column
- +
* -
STANdard *
STD STANdard
STD
WINDOW
The window to be sized. Select by a Window Specification, or by placing the
cursor in the window.
ADSTOPS
The AdStops window.
AFPR
The Additional Floating-Point Registers window.
BREAK
The Break window.
DISASM
The Disassembly window with the lowest window id.
DUMP
The Dump window with the lowest window id.
198 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
OREGS
The Old Registers window.
REGS
The Current Registers window.
SKIPSTEP
The Skipped Subroutines window.
STATUS
The Target Status window.
LSMINFO
The LSM Information window with the lowest window id.
rows
The number of window data rows to be displayed.
This may be specified as:
v an integer. Specifies an absolute number of window data rows.
v An integer prefixed by a +. Specifies the number of extra window data rows
to be used.
v An integer prefixed by a -. Specifies the number of fewer window data rows
to be used.
v * Indicates that the current number of data rows for this window should be
used.
v STANdard | STD. Indicates that the standard number of data rows for this
window type should be used.
If this parameter is omitted, the position of the cursor on the screen is used as
the new location of the lower right corner of the window. In this case, the
columns parameter must also be omitted.
columns
The number of window data columns to be displayed.
This may be specified as:
v An integer. Specifies an absolute number of window data columns.
v An integer prefixed by a +. Specifies the number of extra window data
columns.
v An integer prefixed by a -. Specifies the number of fewer window data
columns.
v * Indicates that the current number of data columns for this window should
be used.
v STANdard | STD. Indicates that the standard number of data columns for
this window type should be used.
If this parameter is omitted, the number of data columns in the window
remains the same.
If the window is not named, it is assumed that this command is specifying the
number of rows in a newly sized window.
Windows cannot be made larger than their maximum size. You can size them so
that they overlap any other window. However, no window can overlap the
Command window. You cannot size a window so that some of the window falls
outside the screen. If you try, IDF repositions the window so that it remains
completely on the screen.
Examples
To change the window in which the cursor is placed to have 8 data rows and 20
data columns:
SIZE 8 20
To resize window 03 so that the lower right corner is at the current cursor position:
SIZE =03
Return codes
0 Operation successful
1 Window name or Row location missing
2 Operand longer than eight characters
5 Window name invalid or syntax or other error in expression
SKIPSTEP
Sets or clears a subroutine to be skipped, or displays the Skipped Subroutines
window.
►► SKIPstep ►◄
address
address
A storage location.
If an expression is present on the command line, that expression is used as the
argument. If the command line does not contain an expression, an attempt is
made to determine the address from the cursor position.
200 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
If a breakpoint or a watchpoint whose condition is true is placed within the
execution path of the subroutine to be skipped, execution stops at that breakpoint
or watchpoint.
Return codes
0 Operation successful
1 No address specified
5 Syntax or other error in expression
6 Location, or location does not contain a valid instruction
SPACE
Separates the display of variables or sets of components with a blank line.
►► SPAce ON ►◄
OFF
When many variables or structure components are displayed, IDF normally begins
the display of each variable or set of components immediately. This command can
separate each variable or set of components with a blank line.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
STATUS
Opens and closes (toggles) the Target Status window that contains information
about the target programs.
►► STAtus ►◄
The target program name is highlighted when the information for the qualified
program is shown.
Return codes
0 Operation successful
STEP
Executes the next instruction in the target program.
►► STEp ►◄
If the STOPNOP option is OFF or the NOSTOPNP option is ON, then IDF does not
stop on NOP and NOPR instructions that follow BAL, BALR, BAS, and BASR
instructions.
Return codes
0 Next instruction is executed when macro exits
6 Single-step mode locked out pending execution of startup command
STMTSTEP
Performs a repeated single-step operation until the target program is executing a
source statement other than the one it was executing when the command was
issued.
►► STMTstep ►◄
By default, if the repeated single-step operation reaches code that is within a code
section for which IDF Language extract data was not loaded, IDF stops
202 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
single-stepping. Turning off the STOPSTMT option or using the NOSTOPST option
prevents IDF from stopping at these points.
If you issue the STMTSTEP command when the PSW is pointing to code that is
within a code section for which IDF Language extract data was not loaded, IDF
attempts to issue LANGUAGE LOAD for you. This only works if the name of the
code section (CSECT) containing the code matches the file name of the extract file.
If you do not want IDF to automatically issue these LANGUAGE LOAD
commands you should set the AUTOLOAD option to OFF or the NOAUTOLD
option to ON.
If the STOPNOP option is OFF or the NOSTOPNP option was used, then IDF does
not stop on NOP and NOPR instructions that follow BAL, BALR, BAS, and BASR
instructions.
z/VM If you issue STMTSTEP from within an IDF macro, you should ensure that
it is issued through the LPSW Fastpath addressing environment, which is
the default environment established when the IDF macro is entered. Using
this interface eliminates any SVC linkages between REXX and IDF, so that
IDF can provide optimum flexibility in what the target program can itself
execute under STMTSTEP. See the usage notes under “MRUN” on page
163 for further details.
For more details see “Controlling single-stepping your program” on page 92.
Return codes
0 Operation successful
6 Command issued before IDF initialization is complete
STOKEY
Displays the storage key associated with an address.
►► STOKey ►◄
address
address
A storage location.
If an expression is present on the command line, that expression is used as the
argument. If the command line is empty, an attempt is made to determine the
address from the cursor position. Failing this, the current execution address is
obtained from the PSW.
Return codes
0 Operation successful
►► STORemap ►◄
;
▼ address
address-expression
A storage address expressions.
The portion of the Storage Allocation Map relevant to the address is displayed.
If no storage address expression is supplied, a complete Storage Allocation
Map is displayed.
Return codes
0 Operation successful
5 Arguments are invalid
STRUCTURE
Displays the contents of the components of one or more structures.
►► STRucture ►◄
window ;
▼ variable-name
window
An LSM Information window. Select by a Window Specification, or by placing
the cursor in the window. If omitted and the cursor is not in a LSM
Information window, uses or opens the first LSM Information window.
variable-name
The variable name. Each variable is:
v The major component of a structure, in which case variables within the
entire structure are visible.
v A component (member) at an intermediate level within a structure, in which
case only variables within that portion of the of the structure are visible.
204 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Use dot-qualification to uniquely identify structure components with
ambiguous names.
Simple structure components are defined by name only. You can define
components within a based structure by name only, in which case the declared
basing is used by IDF, or you can specify an explicit locating expression.
See “Variable expressions” on page 93 for a complete description of the syntax
of the expressions used as STRUCTURE variable name arguments.
The STRUCTURE display is in the form of a list of the component variables of the
structure, in order of definition.
In EBCDIC display mode, character data equal to X'FF' or below X'40' is displayed
as a period character.
In ASCII display mode, character data which does not correspond to a displayable
EBCDIC character is displayed as a period character.
Note: The display of the contents of the variables within a structure may be
incorrect if the PSW indicates that execution is in the middle of a statement. This is
because the variable may be in a transitional state, not having yet achieved its new
value. Variable contents are only certain at the start and end of a statement.
Examples
Str struct1
Str addr(x’20000’)->struct1
Str addr(12(R2))->ptr->struct1
Str ptr->ptr2->struct3
Str ptr(3)->ptr->struct1
Str struct1;struct2
Str struct1 ;ptr->struct1
Str struct1 ; struct4
►► SUBset ►◄
Return codes
0 Operation successful
6 The target program is a transient and SUBSET destroys the debugging
environment
►► SVC Y ►◄
N
Examples
SET SVC Y
SET SVC N
SWAP
Displays the screen image associated with the target program.
►► SWAp ►◄
After displaying the target program's screen image, IDF waits until any PF key is
pressed before refreshing its display.
Return codes
0 Operation successful
6 Either the SWAP option was not specified, or no screen image was
captured
206 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
SYMBOL
Defines an IDF internal (TESTRAN format) symbol.
► symbol-type ►◄
module-name
The name of the module within which the symbol occurs. If present, the name
must be followed by a period. If omitted, the symbol is assumed to be within
the qualified module.
code-section-name
The name of the code section within which the symbol occurs.
symbol-name
The name of the actual symbol.
code-section-offset
The offset of the symbol within the specified CSECT (hex).
module-offset
The offset of the symbol within the target module (hex).
symbol-length
The total length associated with the symbol (hex).
I The symbol is an internal symbol
E The symbol is externally known.
F The symbol is fully defined.
U The symbol is not fully defined. This may occur if no information is available
to define the start of the CSECT within which the symbol occurs.
symbol-type
The type of the symbol. This is a 2-digit hex value, and is one of the following:
00 Space
01 CSECT
02 DSECT
03 COMMON
04 Machine Instruction
05 CCW
06 EQU, LTORG, CNOP, ORG
10 C-con
14 X-con
18 B-con
20 F-con
24 H-con
28 E-con
2C D-con
30 A/Q-con
Examples
SET SYMBOL (ASMIDF) ASMIDF 00000000 00000000 00000060 E F 01
SET SYMBOL (VARMVSXA.VARASM) BTHING 000009C0 00000050 00000028 I F 10
►► TASKs ►◄
Return codes
0 Operation successful
6 Unable to obtain task information
TITLE
Sets the title text displayed on the top border line of the selected window.
►► TITle ►◄
window title-text
window
A window. Select by a Window Specification, or by placing the cursor in the
window.
title
The new title text for the window. If omitted, the window text reverts to the
default for the window.
The new window title text is retained while the window is open, or if the window
is minimized and later maximized. If the window is closed, and later reopened, the
window text for the new window is the default for the window.
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
208 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
5 Arguments are invalid
TOP
Displays source code, starting at lowest available address within the current code
section.
►► TOP ►◄
window
window
A Disassembly window. Select by a Window Specification or by placing the
cursor in the window. If omitted and the cursor is not in a Disassembly
window, uses the first Disassembly window.
Return codes
0 Operation successful
6 No code section definition corresponds to the current address.
TRIGGER LOAD
Initiates deferred breakpoint processing for a module.
module-name
The name of the module.
Examples
Given an initial target program FPROG, and a program BPROG which is loaded
through a method that bypasses IDF's DBREAK trapping, you can establish the
deferred breakpoints as usual with DBREAK commands. Once BPROG is in
storage, the command TRIGGER LOAD BPROG causes IDF's deferred breakpoint
processing to begin.
dbreak
. (bprog.bedrock)
.
.
trigger load bprog
Return codes
0 Operation successful
1 Missing keyword
2 Keyword truncated
5 Arguments are invalid
►► TYPe ►◄
window ;
▼ variable-name
window
An LSM Information window. Select by a Window Specification, or by placing
the cursor in the window. If omitted and the cursor is not in a LSM
Information window, uses or opens the first LSM Information window.
variable-name
A variable name.
Only the variable name is relevant in determining the variable type attributes.
Extra information such as:
v Locating expressions for based variables
v array index values
v substring ranges
is not needed, and should not be specified.
Examples
type stuff
type var1;var2
UNION
The UNION command is a synonym of the STRUCTURE command. For details,
see “STRUCTURE” on page 204.
210 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
UNTIL
Executes the target program up to, but not including, an address.
►► UNTil ►◄
address
address
The address at which IDF should stop. Supply the address as part of the
command, or by the cursor position.
No exit routine processing is performed during, or at the completion of, the UNTIL
command. As with MRUN or MSTEP, if the UNTIL command is issued within a
macro, you must use EXTRACT EVENT to determine what type of event
completed the command.
z/VM If you issue UNTIL from within an IDF macro, you should make sure that
it is issued through the LPSW Fastpath addressing environment. This is the
default environment established when the IDF macro is entered. Using this
interface eliminates any SVC linkages between REXX and IDF, so that IDF
can provide optimum flexibility in what the target program can itself
execute under UNTIL. See the usage notes under “MRUN” on page 163 for
further details.
Return codes
0 Operation successful
1 No address specified
5 Syntax or other error in expression
6 Command issued before IDF initialization is complete
UP
The UP command is a synonym of the PREVIOUS command. For details, see
“PREVIOUS” on page 177.
VALUE
Evaluates an expression and displays its value.
►► VALue ►◄
address
address
An IDF address expression.
VARIABLE
Displays the contents of one or more variables.
►► VARiable ►◄
window ;
▼ variable-name
window
An LSM Information window. Select by a Window Specification, or by placing
the cursor in the window. If omitted and the cursor is not in a LSM
Information window, uses or opens the first LSM Information window.
variable-name
A variable name.
Define simple variables by name only. You can define based variables by name
only, in which case the declared basing is used by IDF, or you can specify an
explicit locating expression.
See “Variable expressions” on page 93 for a complete description of the syntax
of the expressions used for VARIABLE variable name arguments.
If you supply no variable name, the nominated window is closed.
In EBCDIC display mode, character data equal to X'FF' or below X'40' are
displayed as a period character.
In ASCII display mode, character data which does not correspond to a displayable
EBCDIC character are displayed as a period character.
212 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Note: The display of the contents of the variables may be incorrect if the PSW
indicates that execution is in the middle of a statement. This is because the variable
may be in a transitional state, not having yet achieved its new value. Variable
contents are only certain at the start and end of a statement.
Examples
var stuff
var addr(x’20000’)->stuff
var addr(12(R2))->ptr->stuff(2)
var ptr->ptr2->stuff
var ptr(3)->ptr->stuff
var stuff(-5)
var stuff(1:10)
var stuff(1::25)
var var1;var2
var var1 ;ptr->stuff
var stuff(1:10) ; stuff(30:40)
var chrarray(15,1:10);chrarray(15,1::10)
var chrarray[15,0:9];chrarray[15,0::10]
VCHANGE
A special-purpose command used for command logging support.
►► VChange ►◄
When command logging is active, and a field within a window which is not an
LSM Information window is changed by operator overtyping, a VC entry is
generated in the command log. This reproduces the change when the command
log is played back with the RLOG command.
For more details on command logging support, see “Command record and
playback features” on page 86.
VERSION
Displays the IDF version information.
►► VERsion ►◄
Return codes
0 Operation successful
►► VS ►◄
When command logging is active, and a field within an LSM Information window
is changed by operator overtyping, a VS entry is generated in the CMDLOG file
which reproduces the change when the command log is played back with the
RLOG command.
For more details on command logging support, see “Command record and
playback features” on page 86.
VSEP
Enables and disables blank line separating variables.
►► VSEP ON ►◄
OFF
WATCH
Supplies a condition that must be true for a particular breakpoint to take effect.
►► WATch ►◄
address
; comparator instruction
▼ | command
address
The address of the breakpoint that is to be conditional.
Supply as part of the command, or from the cursor position. If supplied by
means of cursor position and a watchpoint condition is specified, the condition
must be preceded by a semicolon. If the address is supplied by means of cursor
position and the command is a query (no condition supplied) the semicolon
need not be supplied.
214 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
comparator
The condition being checked. Must be:
= EQ ¬= NE > GT < LT >= GE <= LE
If the comparator and following parameters are not supplied the WATCH
command is a query. In this case, the existing watchpoint condition for the
address is displayed, or a message indicates that no watchpoint is active at the
address.
instruction
A System/370 comparison instruction. This must be one of the following:
CR Compare register
CLR Compare logical register
C Compare
CL Compare logical
CH Compare halfword
CLM Compare logical characters under mask
CLC Compare logical characters
While the condition is false, control passes through the watchpoint and the target
program is not stopped. But when the condition is true and the target program is
at the breakpoint address, the target program is stopped for inspection.
When you issue a WATCH command that specifies a CLC instruction, the length
actually used in the comparison is shown to the right of the watchpoint condition
if you query the watchpoint.
If a watchpoint whose condition is true is placed within the execution path of the
subroutine to be skipped, execution stops at that watchpoint.
Examples
Return codes
0 Operation successful
3 Keyword not recognized
1 No address specified
5 Syntax or other error in expression
6 Specified location does not contain a valid instruction, or breakpoint table
full
WHERE
Displays the symbolic name for the given address.
►► WHEre ►◄
address
address
A storage location.
If an expression is present on the command line, that expression is used as the
argument. If the command line is empty, an attempt is made to determine the
address from the cursor position. Failing this, the current execution address is
obtained from the PSW.
216 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
The WHERE command is like the VALUE command:
v If the address corresponds to a location within a module defined to IDF, both
commands display the same symbolic name.
v If the address corresponds to an address within a module which is defined in a
system control block but not yet defined to IDF:
– the WHERE command shows this module in the symbolic name
– the VALUE command displays the hexadecimal address value
v If the address corresponds to a location which is not within any known module,
both commands display the hexadecimal address value.
Return codes
0 Operation successful
5 The expression contained an error
►► XEDexit ►◄
The name of the exit routine that is considered current is by default EXIT. It may
be reset at IDF invocation by means of the EXITEXEC option. It may also be reset
by a macro with the SET EXITEXEC command.
Be careful when executing CMS commands from within XEDIT. If you are
debugging a user-area program, and you invoke another program that runs in the
user area while in XEDIT, it destroys the debugging environment. The same care
should be taken with routines that run in the transient area.
Return codes
0 Operation successful
ZONED
Sets or queries the format in which the data for zoned decimal variables are
displayed.
►► ZONed ►◄
DECimal
*
HEX
DECIMAL
Zoned decimal variables are displayed in decimal. This is the initial value.
* Zoned decimal variables are displayed in the initial format (DECIMAL).
If the display format setting is not specified, the current display format for zoned
decimal variables are shown in a message.
Return codes
0 Operation successful
2 Keyword truncated
5 Not valid zoned decimal variable display format
218 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Part 3. Advanced topics, macros, profiles, exit routines
You do not need to have a profile macro, and if you do have one it can be as
simple or exotic as you like. One example is to get the name of the program that is
being debugged, use it coupled with the CMS NAMEFIND command to get
information about that program, and automatically set a number of breakpoints
that apply to it.
Regardless of what uses you have planned for it, the profile must be written in the
REXX language.
z/VM The profile must have a file type of ASM and can reside on any accessed
disk.
z/OS The profile must be a member of the partitioned data sets (PDSs) allocated
to the ASM DD name.
z/VSE The profile must reside in a member of a sublibrary in the active PROC
chain.
The default file name is PROFILE, but you can specify another file name with the
PROFILE option. It is invoked by IDF just before the first display is presented (for
more specific information about when the profile is executed, see “When the
PROFILE is executed” on page 222.) The default ADDRESS environment when
your profile begins execution is ASM. IDF does not examine the return code from
your profile.
To change IDF parameters, use the SET command. You can examine the current
settings with the EXTRACT command. You can issue any IDF command from
within your profile (though some may not make sense at that point) and you can
invoke IDF macros from within your profile.
Current Registers window, the Disassembly window and the Dump window,
inverts the default dump mode (symbolic or unformatted), and exits.
When you issue an IDF command in your profile, it behaves exactly as if you had
pressed that PF key.
Warning: Be careful when executing CMS commands from within your profile. If
you are debugging a user-area program, and your profile invokes another program
The following commands may only be issued before the target program and
associated symbols are loaded:
v Program-oriented:
– SET LIBE fn/$
– On CMS Only
- SET MODMAP ON
- SET NOMODMAP ON
- SET NUCEXT ON
- SET SYSTEM ON
- SET TRANS ON
– On z/OS Only
- SET SVC97 ON
- SET NOSVC97 ON
v Symbol-oriented:
– On CMS Only
- SET SELFNUCX SYMBOL
The following commands may only be issued after the target program and
associated symbols are loaded:
v Program-oriented:
– EXTRACT ADSTOPS (CMS only)
– EXTRACT BREAK
222 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
– EXTRACT ALET
– EXTRACT AREGS
– EXTRACT LOAD
– EXTRACT REGS
– EXTRACT REGSTOPS (CMS only)
– SET ADSTOPS (CMS only)
– SET ALET
– SET AREG
– SET BASE
– SET BREAK
– SET EPOFFSET
– SET FPR
– SET GPR
– SET LOC
– SET PSW
– SET PSWSTEAL (CMS only)
– SET REGSTOP (CMS only)
– SET SIZE
– SET FASTPATH ON
– ADSTOPS (CMS only)
– BREAK
– RUN
– STEP
v Symbol-oriented:
– EXTRACT SELFNUCX (CMS only)
The following command may only be issued before the PROFILE has completed:
v MODE (CMS only)
The following commands may only be issued after the PROFILE has completed:
v EXTRACT ARGUMENT
v EXTRACT CURSOR
v SET CURSOR
v SWAP
Most IDF commands can be issued within a macro. In particular, you can use the
SET and EXTRACT commands to set or extract the settings of various parameters,
and the target program's memory and registers.
An IDF macro:
v On CMS, can have any file name that you like, but the file type must be ASM.
v On z/OS, it must be a member of the PDSs allocated to the ASM DD name,
with any member name that you like.
v On z/VSE, it must be a member in a sublibrary in the active PROC chain.
v Must be written in the REXX language. It may optionally be compiled by the
REXX compiler, in which case the file type (DD name on z/OS) of the compiled
EXEC must be ASM.
/* ALLOPEN ASM */
’set break on loop’
’set break on exit’
’disasm’
’run’
exit 0
IDF propagates the return code from your macro to the caller if it is invoked by
another IDF macro.
If the top level macro exits with a nonzero return code, IDF issues a message, so if
you want to perform your own message handling you need to exit with a return
code of zero.
There are times when one of several macros is setting an IDF option, and it is
difficult to determine just where the option is being set. The MACROLOG option
helps debug this sort of macro problem. Whenever this option is in effect, all IDF
commands that are issued by either an IDF macro or a IDF exit routine are written
to the macro log. See “MACROLOG” on page 34 for the name of this log.
Warning: Be careful when executing CMS commands from within your macro. If
you are debugging a user-area program, and your macro invokes another program
that runs in the user area, it destroys your debugging environment. The same care
should be taken with routines that run in the transient area.
Rather than attempt to repeat all of the available REXX literature on this subject,
here are a few examples to show how ADDRESS can be used in a REXX exec.
226 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Initial or default ADDRESS environment
Upon the initial entry to your exec, REXX provides a default ADDRESS. This is
used for any commands until the addressing is changed. For a normal EXEC file,
the default addressing supplied by REXX is to the "operating system" so that
commands issued within the exec are by default routed to the underlying
operating system for execution.
For IDF macros, the default addressing environment is supplied by IDF when it
invokes REXX to execute the macro.
z/VM The default ADDRESS is in the form of a PSW, telling REXX that it should
use its "LPSW Fastpath" mechanism to directly enter IDF command
handling.
z/OS The default ADDRESS is ASM"
z/VSE The default ADDRESS is "ASM"
For example:
address CMS CMS-command
This directs only this command to CMS, with subsequent commands directed to
the default environment (ASM).
This directs all commands to CMS until a subsequent address command overrides
it.
Of course in an IDF macro, it is expected that most of the commands are IDF
commands. And in this case, it is probably best to just leave the default addressing
environment (as supplied at entry to your macro) alone, and make "temporary
overrides" to other names as you may require for the few (if any) host commands
issued.
There is also some interesting save and restore logic within REXX itself, when
calling internal procedures. That topic is beyond the scope of this short
introduction to ADDRESS.
z/VM
Since the default ADDRESS environment on entry to IDF macros on CMS
is in the form of a PSW, certain special precautions should be made when
switching from one ADDRESS mode to another. In particular, be aware
that the PSW format is a non-printable hexadecimal eight bytes, which can
contain a X'40' byte that might be interpreted as a blank (causing a REXX
syntax error perhaps) if misused.
Procedures numbered 2 and 3 in the “Saving and Restoring” examples
above are entirely safe for manipulating a PSW form of environment.
Procedure 1 depended on the initial environment being “ASM”, which is
not the case with IDF on CMS, so it should be avoided.
In most cases, there is no need to make a permanent change to the default
addressing. You might have just a couple of host commands that warrant a
temporary “address CMS” override. So you do not have to worry at all
about any of this save and restore complexity.
IDF on CMS still supplies a usual “ASM” subcom environment, so that
“address ASM 'WHATEVER'” is supported on TSO, z/VSE, and CMS. And
in almost all cases, it is perfectly acceptable to address IDF commands in
this way. Make sure that the “LPSW Fastpath” environment is used for an
MRUN command. See “MRUN” on page 163 for further information and
cautions.
Example macros
Here are some sample macros that illustrate what may be done with macros.
EX
This macro determines and display the target of an EXECUTE instruction. It is
meant to be invoked with a PF key, but it can also be invoked from the command
line with an address.
/*REXX --------------------------------------------------------------*/
/* */
/* EX - DISASM the instruction which is the target of an */
/* EXecute instruction and display the results in a */
/* message. */
/* */
/* If the cursor is positioned on an EXecute instruction, or */
/* the cursor is on the command line but the address of a valid */
/* EXecute instruction has been entered, or if the PSW points */
/* to a valid EXecute instruction, dis-assemble the target of */
/* EXecute instruction and display the results as a message. */
228 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
/* */
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/* Determine which instruction is involved. */
/* */
/* If EXTRACT ARGUMENT gives RC¬=0, IDF will already have issued */
/* an error message. In this case, we exit with RC=-3 to prevent */
/* IDF from overlaying that message with another that says "MACRO */
/* RC=xx" if the argument came from the command line. */
/*-------------------------------------------------------------------*/
’EXTRACT ARGUMENT’
If RC ¬= 0 Then
Exit -3 /* RC=-3 to prevent msg overlay */
/*-------------------------------------------------------------------*/
/* Now convert the hex index, base, and offset to an expression */
/*-------------------------------------------------------------------*/
reghex = ’123456789ABCDEF’
oper = "X’"offset"’"
/*-------------------------------------------------------------------*/
/* Dump the indicated memory area and exit */
/*-------------------------------------------------------------------*/
’Extract Disasm’ oper
’SET MSG’ instr
Exit
REGS
This macro toggles the Current Registers window, and if it is opened, places it at
the top of the screen.
Exit
SYSCMD
This macro issues a command to the operating system from the IDF command line.
On CMS, transient modules, nucleus extensions and EXECs run. On TSO, any
unauthorized command or REXX EXEC runs. On z/VSE, REXX/VSE commands or
REXX programs run.
/*REXX --------------------------------------------------------------*/
/* */
/* Issue the command to the system. */
/* */
/*-------------------------------------------------------------------*/
Select
End
Exit trc
230 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Chapter 13. The IDF exit routine
An exit routine (also called “exit exec”) is a special purpose IDF macro, which runs
when certain events occur.
If exit routine processing is enabled, and the currently defined exit routine exists,
then when one of the following events occurs, the exit routine is invoked to
determine whether or not to notify the operator:
v IDF is preparing to present its first screen display
v A breakpoint is reached
v The target program branches outside of its memory limits
v A condition exists which puts IDF at risk of losing control
v A program check occurs
v The target program experiences a CMS, z/OS, or z/VSE ABEND
v The target program has completed and returned control to IDF
v A single-step operation has just completed
v On CMS only:
– SVC tracing is in effect and an SVC is reached
– A monitored storage location is modified
– A monitored register is modified
Note: If the address is outside the target programs defined to IDF, the code section
(CSECT) name is omitted and the symbolic name is a second hexadecimal value.
232 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Other techniques
You can use the EXTRACT command to examine the contents of the registers and
main storage, and if necessary you can use host environment commands to
examine other parts of the programming environment that lie outside of IDF, for
example to see if a given disk file has been created.
If you need to maintain a count of the number of times the exit routine has been
entered, or other status information that must carry across its invocations, you can
use the SET GLOBAL and EXTRACT GLOBAL commands to access an 80-byte
area within IDF that is provided for this purpose.
Warning: Be careful when executing CMS commands from within your exit
routine. If you are debugging a user-area program, and your exit routine invokes
another program that runs in the user-area, it will destroy your debugging
environment. The same care should be taken with routines that run in the transient
area.
/*--------------------------------------------------------*/
Trace ?O
’MACRO PROFILE PROFILE’ /* execute usual profile */
’SET EXIT ASMIDFEX’ /* define name of exit module */
’SET CMPEXIT ON’ /* indicate compiled code exit */
’SET EXITEXEC ON’ /* activate exit routine */
Exit
The compiled-code exit routine is invoked to examine the same events as an exit
routine that is written in REXX.
On CMS, It is not required that you run IDF with PER exploitation disabled, but it
is highly recommended for applications that collect execution data because:
1. Performance with PER=Y is much slower than with PER=N
2. IDF operation with PER=Y is not as robust as with PER=N
The compiled-language exit routine can be written in the language of your choice,
so long as it is able to conform to the calling sequence used by IDF. The interface
used is designed for PL/I-like exit routines, but an assembler routine can also be
used.
The first parameter is the call-type. The exit routine is invoked on event
occurrence, and if it issues any EXTRACT commands during its processing, it is
re-entered (recursively) to receive the values normally set into REXX variables. A
call-type of 0 (zero) indicates an EVENT invocation. A call-type of 4 indicates a
VARIABLE invocation.
The exit routine, when entered, must inspect the call-type as its first order of
business. It will not be re-entered unless is issues EXTRACT commands to the IDF
command processor, but if it is re-entered the call-type value will have changed to
4, indicating a VARIABLE invocation.
The remaining parameters are either invariant, or apply to only one type of call.
234 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
DC A(CSTRING)
DC A(CSTRINGL)
...
CSTRING DC C’whatever command string’
CSTRINGL DC A(L’CSTRING)
A REXX stemmed array will consist of "stem.n", where stem.0 contains the number
of items in the stemmed variable array, and the remaining items contain the
requested information.
238 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
The name of the stemmed variable array defaults to LSM. and should normally
not be altered.
v EXTRACT ARRAY
v EXTRACT CALLERS
v EXTRACT LANGUAGE ARGS
v EXTRACT LANGUAGE CMDS
v EXTRACT LANGUAGE COMMANDS
v EXTRACT LANGUAGE OPTIONS
v EXTRACT LANGUAGE STATUS
v EXTRACT LANGUAGE VERSION
v EXTRACT MAP
v EXTRACT MSTATUS
v EXTRACT NAMES
v EXTRACT PARMS
v EXTRACT PLOCATES
v EXTRACT QUERY
v EXTRACT SCOPE
v EXTRACT SCRVAR
v EXTRACT SOURCE
v EXTRACT STRUCTURE
v EXTRACT TYPE
v EXTRACT VARIABLE
v EXTRACT VDCL
v EXTRACT VDECLARE
v EXTRACT VLOC
v EXTRACT VVALUE
The items in the rest of this section describe the options of the EXTRACT
command.
Return codes
The EXTRACT command has these return codes:
0 Operation successful
1 Missing keyword
2 Keyword truncated
3 Keyword unknown
4 Error attempting to set a REXX variable
Out of memory or EXECCOMM error
5 Arguments are invalid
6 Unable to honor EXTRACT command at this time
This return code will occur if, for example, you attempt to EXTRACT BREAK
within your PROFILE before the target program has been loaded into
memory.
7 The command cannot run in this environment
This may be because this command is supported for a specified OS only
(CMS, or TSO), or that you must be in an ESA environment.
►► EXTract ADSTops ►◄
window
A Dump window Select by a Window Specification, or by placing the cursor in
it. If omitted and the cursor is not in a Dump window, returns the ALET for
the first Dump window.
Example
EXTRACT ALET =3
AREGS
Returns the Access Registers in EBCDIC HEX representation.
►► EXTract AREGs ►◄
ARGUMENT | ARGS
Returns address argument from the command line or cursor position as
appropriate.
►► EXTract ARGument ►◄
ARGs argument
argument
An expression. If it is invalid, the EXTRACT ARGUMENT command completes
with a nonzero return code. If EXTRACT ARGUMENT completes with a
242 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
nonzero return code, an appropriate error message is placed on the screen by
IDF and the macro should exit with RC=-3, to stop IDF overlaying the error
message with another message stating the macro return code (if the macro
exits with a nonzero RC), or clearing the command line (if the macro exits with
RC=0).
If the command line is empty, IDF attempts to determine an address based on
cursor position.
If the argument was determined from the command line, variables FIELD, EXACT,
and INDIRECT will contain the same value.
EXTRACT ARGUMENT follows the rules for obtaining arguments that are
described in “Arguments and cursor positioning” on page 89.
array-element-name
An array element name.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
BREAK
Returns all the currently set breakpoints or, if an expression was specified, just the
breakpoint at that address.
►► EXTract BREak ►◄
breakpoint-address
breakpoint-address
The address of the breakpoint that is required.
244 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
CALLERS
Returns information for each generation in the program caller hierarchy, including:
v Current execution location, as:
– Memory location, in IDF symbolic format
(module.CSECT)Stmt#nnnnn+offset
– Logical location
program-block-name+offset
v Save Area Header
v Save Area register values, if applicable
*
►► EXTract CALlers ►◄
;
▼ program-caller-generation
The SAREGS command (see “SAREGS” on page 187) is used to enable or disable
the return of the Save Area header and registers in the CALLERS data. The Save
Area registers are formatted according to the ROWSTYLE option setting.
The SALIMIT command (see “SALIMIT” on page 187) controls the maximum
depth of the CALLERS data. This is intended to prevent problems when the
program call chain is damaged, or is of unexpected depth (due to runaway
recursion).
The name of the stemmed variable array defaults to LSM. and is set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) controls the maximum
stemmed array index value.
►► EXTract CMDMsg ►◄
All messages generated by IDF are returned with message prefixes, even if the
MSGID option is OFF and the message is displayed without the message id. User
messages issued with a SET MSG command do not have a message id.
COLORS
Returns the current color settings.
►► EXTract COLors ►◄
COLours
CURSOR
Returns information about the current position of the cursor.
►► EXTract CURsor ►◄
246 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
BREAK
The Break window.
DISASM
A Disassembly window.
DUMP
A Dump window.
LSMINFO
An LSM Information window.
OREGS
The Old Registers window.
REGS The Current Registers window.
SKIP The Skipped Subroutines window.
STATUS
The Target Status window.
SOURCE
Contains the source of a cursor-derived argument address:
blank No cursor-derived argument was available
DISASM
Cursor was in the Disassembly window
DUMP
Cursor was in the Dump window
PSWGPR
Cursor was in the Current Registers window or the Old Registers
window
FIELD Symbolic address as described in “Symbolic addresses” on page 248,
corresponding to the first byte of the field in which the cursor was
positioned.
EXACT
Symbolic address as described in “Symbolic addresses” on page 248,
corresponding to the exact byte of the field in which the cursor was
positioned if the cursor was in a dump field; otherwise EXACT is the same
as FIELD.
INDIRECT
Symbolic address as described in “Symbolic addresses” on page 248. If the
cursor was positioned in the disassemble display, and the cursor was
positioned at the first instruction shown, and that instruction is a branch,
the value in INDIRECT is the effective address of the branch instruction. If
the cursor was positioned in a dump display, and the cursor was in the
first field displayed, and that field is a fullword, INDIRECT will contain
the contents of the field rather than its address. Otherwise INDIRECT is
the same as FIELD.
HEXCURSR
Three, blank separated, 2-character hexadecimal value which represents the
exact position of the cursor on the screen. These values represent the
window containing the cursor, the row within the window of the cursor,
and the column within the window of the cursor.
CPDISASM
Symbolic address as described in “Symbolic addresses” on page 248,
corresponding to the address of the first byte shown in the first
Disassembly window.
CPDUMP
Symbolic address as described in “Symbolic addresses” on page 248,
corresponding to the address of the first byte shown in the first Dump
window.
NPDISASM
Symbolic address as described “Symbolic addresses” on page 248,
Symbolic addresses
Symbolic addresses consist of several tokens, and can be parsed with the following
REXX instruction (where NAME is the variable containing the symbolic address):
Parse Var name hexvalue . ’(’ csect ’)’ symbolic
After this Parse instruction, the following variables contain, for example:
NAME
0002000C (ALLOPEN) ALLOPEN+12
HEXVALUE
0002000C
CSECT
ALLOPEN
SYMBOLIC
ALLOPEN+12
If the address is outside of the target programs defined to IDF, the code section
(CSECT) name is omitted and the symbolic name is a second hexadecimal value.
If the address is outside the currently qualified module or the FULLQUAL option
is ON, then the code section name as defined above is module.csect, where module is
the name of module containing the address.
EXTRACT CURSOR follows the rules for obtaining arguments that are described in
“Arguments and cursor positioning” on page 89 except that it does not examine
the command line for an argument.
If a Dump window is opened and the location being dumped is a 64 bit address,
the variables FIELD, EXTRACT, INDIRECT, CPDUMP and NPDUMP are 16 byte
fields.
DISASM
Returns information about the specified instruction.
instruction-address
Any IDF expression. It is resolved to an address and used to find the
instruction to be disassembled.
248 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Columns
Contents
01-08 Instruction address
10-24 Hexadecimal instruction value in halfwords
26-33 Label
35-39 Operation code
41 on Operands
NINSTR
Address of the next sequential instruction, as 8-digit hexadecimal
(meaningless if INSTR is blank). The address represents the "sequential
flow" next instruction.
z/VM IDF knows that a fullword bitstring follows an SVC 201, that a
fullword error return address may follow an SVC 202, and that a
halfword code follows an SVC 203, and adjusts the returned
NINSTR address accordingly. IDF also recognizes when the target
program has stolen the SVC New PSW, and if so returns the
entry-point address of its SVC FLIH when an SVC is disassembled.
NINSTRB
Address of the non-sequential (that is, a branching) flow instruction, if any,
as 8-digit hexadecimal, or blank if NINSTR represents the only possible
next instruction. NINSTRB is set for conditional branch instructions, and
represents the next instruction if that conditional branch is taken.
NADDR
Address of the next instruction or data which follows the nominated
instruction. This is normally the same as the NINSTR address for
sequential flow. But the NINSTR may be different due to IDF's recognition
(on CMS) of special flows when an SVC is nominated.
CSECT
The name of the code section (CSECT) within which the instruction occurs
(meaningless if INSTR is blank).
If the address is outside the currently qualified module or the FULLQUAL
option is ON, then the code section name is module.csect, where module is
the name of module containing the address.
Be careful when using addresses obtained from EXTRACT DISASM in other IDF
commands. Displacements in disassembled instructions may be shown in either
explicit hex notation or implied decimal notation (depending on the HEXDISP
option). If you use a displacement that is given in implied decimal notation, but
the default input base is hex, the address will not be evaluated as expected.
The calculation of the NINSTR and NINSTRB addresses are done using the current
target program register values at the time of the EXTRACT DISASM command.
For example a BRANCH instruction might use a base register of R11 for its
branching. If the EXTRACT DISASM expression address resolves to the current
PSW location, this is no problem whatsoever, since the register values will be
correct at that point. However, if the expression represents an address other than
the current PSW instruction, the register values might not match what they are at
the point of naturally executing that instruction, and so the NINSTR and NINSTRB
address might be incorrect.
►► EXTract EVEnt ►◄
EXITEXEC
Returns the name of the currently assigned exit routine.
►► EXTract EXItexec ►◄
GLOBAL
Returns the current setting of the IDF global variable.
►► EXTract GLObal ►◄
This global variable is initially set to blanks by IDF. It may be reset by any IDF
macro through the SET GLOBAL command, and is intended for macro-to-macro
communication.
250 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
GLOBAL STEM
Reads the data in the specified Global Storage stems, and write it to the same
named REXX stemmed arrays.
stem-name
A Global Storage stem name.
GLOBAL STEMS
Returns the names of all currently defined Global Storage stems.
GSTATUS
Returns information about the storage used to contain the Global Storage data
which has been loaded with SET GLOBAL STEM commands. This includes:
v number of Global Storage stems
v Global Storage storage consumption (total, direct, pooled)
v Global Storage storage pool utilization, including the number of AREAs in the
pool which are unused
►► EXTract GSTAtus ►◄
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
ICOUNT
Returns the number of instructions executed since the last ICOUNT command.
►► EXTract ICOunt ►◄
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148)
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
252 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
LANGUAGE COMMANDS | CMDS
Returns the current command for each LSM Information window.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
LANGUAGE OPTIONS
Returns information as to the current value of the various IDF Language Support
settings.
To obtain the current value of an individual IDF setting, the preferred method is to
use the EXTRACT Query command.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
▼ extract-file-name
extract-file-name
An extract file name. Information is returned only for those compiles which
were contained within the specific extract files. If no extract file names are
specified, the default is to extract information for all currently loaded (with
LANGUAGE LOAD) language extract files.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
LANGUAGE STEM
Returns the name of the REXX stemmed variable array which is used to return
information to an IDF macro as a result of all subsequent EXTRACT LANGUAGE
commands, as well as a number of other EXTRACT commands.
LANGUAGE VERSION
Returns the IDF Language Support Version Information.
254 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
LASTMSG
Returns the last 10 messages that were issued by SET MSG commands, or as a
result of the execution of other IDF commands.
►► EXTract LASTMsg ►◄
All messages generated by IDF are returned with message prefixes, even if the
MSGID option is OFF and the message is displayed without the message id. User
messages issued with a SET MSG command do not have a message id.
All messages generated by IDF are returned, even if the MSGMODE option is OFF
and the message was not actually displayed in a Command window message
display line.
Example
The LASTMSGM values of 0 and 1 may be used directly in Boolean tests, such as:
’EXTRACT LASTMSG’
Do I = 1 to lastmsg.0
If lastmsgm.i Then
Say lastmsg.i
End
►► EXTract LOAd ►◄
LOCATION
Extracts bytes of main memory.
number-of-bytes
Number of bytes of main memory to be extracted.
start-address
An expression giving the starting address.
If the expression contains an access register then the storage that is extracted
will come from the dataspace identified by the ALET in the referenced access
register.
256 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
The EXTRACT LOCATION command allows you to retrieve storage within your
program's defined limits. For more details on your program's defined limits and
how to change them, see (CMS) “Your program's defined limits” on page 61 and
(TSO) “Your program's defined limits” on page 51.
If the TRACEALL option or the RISK option is set, you may be able to retrieve
storage beyond the program's defined limits.
Example
EXTRACT LOCATION 8 0(R1)
This example sets REXX variable MEMAREA to the contents of eight bytes pointed
to by the target program's R1.
EXTRACT LOCATION 8 0(AR2)
This example sets REXX variable MEMAREA to the contents of eight bytes pointed
to by the target program's R2 in the dataspace identified by the ALET in AR2.
LOCATION ALET
Extracts bytes of dataspace.
access-link-entry-token
An expression that specifies the ALET for the dataspace.
number-of-bytes
Number of bytes of main memory to be extracted.
start-address
An expression giving the starting address.
Example
EXTRACT LOCATION ALET 10003 4 X’1000’
EXTRACT LOCATION ALET 10004 8 0(R1)
MAP
Returns information about the location of all modules and code sections known to
IDF, as well as the name of the extract file which may be associated with each code
section.
▼ module-name
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
►► EXTract MODE ►◄
MODULES
Returns information about the modules defined to IDF.
►► EXTract MODUles ►◄
258 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
MODULES.0
Number of modules defined to IDF
MODULES.n
Name origin size symbols, where:
NAME
The name of module.
ORIGIN
The module's origin in memory, eight digit hexadecimal.
SIZE The size of the module origin in bytes, eight digit hexadecimal.
SYMBOLS
The number of symbols defined to IDF that are associated with this
module.
MSTATUS
Returns information about the storage used to contain the extract data information
which has been loaded with LANGUAGE LOAD commands. This includes:
v number of compile areas
v extract data storage consumption (total, direct, pooled)
v extract data storage pool utilization, including the number of AREAs in the pool
which are unused
►► EXTract MStatus ►◄
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
NAMES
Returns information about symbol names.
►► EXTract NAMes ►◄
;
▼ symbol-name-pattern
symbol-name-pattern
A pattern to match against all the symbol names.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
OPTIONS
Returns a list of all IDF options and their current settings.
►► EXTract OPTions ►◄
A value of 1 indicates that the option was last set ON; a value of 0 indicates that
the option is OFF. For a list of the options which are returned, see “SET OPTION”
on page 194. For information about the meaning of the options, see Chapter 4,
“Invoking IDF to debug your program,” on page 23.
►► EXTract PER ►◄
260 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
PFK
Extracts all current PFK definitions.
►► EXTract PFK ►◄
PLIST
Obtains the arguments provided at IDF invocation.
►► EXTract PLIST ►◄
PLOCATES
Returns information about variables located though a locator (pointer) variable.
locator-variable-name
A locator variable names.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
QUALIFY
Extracts the name of the module that is used with some commands and addresses
when no explicit module name is specified.
►► EXTract QUAlify ►◄
QUERY SETTING
Returns the current value of the indicated indicator or option item.
argument
The name of the indicator or option item. Information is available for:
262 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
QUERY.n
Information about the indicator or option item current value.
REGS
Extracts the GPRs, FPRs, and PSW in EBCDIC HEX representation.
►► EXTract REGs ►◄
If the option AMODE64 is on, the PSW is returned as a 32 byte field, and GPR.0 -
GPR.15 are returned as 16 byte fields.
►► EXTract REGSTops ►◄
SCOPE
Returns information about a statement scope block.
►► EXTract SCOpe ►◄
address
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
SCRVAR
Returns the contents of the LSM Information window.
►► EXTract SCRvar ►◄
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
SELFNUCX
Returns the current value of the self-load offset.
►► EXTract SELFNucx ►◄
264 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
SELFNUCX
Contents are as follows:
v If the program is not self-loading, variable SELFNUCX is blank.
v If the self-load offset was specified as a symbol name, the contents of
variable SELFNUCX consist of two tokens. The first token is the symbol,
and the second is an 8-digit hexadecimal offset.
v If the self-load offset was specified as an absolute value, the contents of
variable SELFNUCX consist of two tokens. The first token is the string
"<n/a>", and the second token is an 8-digit hexadecimal offset.
SKIPSTEP
Returns currently skipped subroutines.
►► EXTract SKIPstep ►◄
address
address
An IDF expression. Address of subroutine to return. If omitted, all skipped
subroutines are returned.
SOURCE
Returns source records.
►► EXTract SOUrce ►◄
address
address
The address. May be specified in the form of an IDF address expression. If
omitted, uses the current execution location as determined from the PSW.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
►► EXTract STORemap ►◄
;
▼ addr-expr1
addr-expr1
A storage address expression. If omitted, returns an overall Storage Allocation
Map.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
STRUCTURE
Returns information about structure or union components.
component-name
A structure or union component name.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
266 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
SVC (CMS only)
Returns the current SVC tracing state.
►► EXTract SVC ►◄
SYMBOLS
Returns information about known symbols.
►► EXTract SYMbols ►◄
module-name
module-name
A module name. Specifies which module's symbols should be returned. If
omitted, returns the symbols for the currently qualified module.
Each REXX variable containing information about a symbol known to IDF will
contain the following information:
(<module.>csect ) symbol reloc addr totlen intext full type
TASKS
Returns information about the currently executing tasks.
►► EXTract TASks ►◄
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
268 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
TYPE
Returns information about type attributes for variables.
variable-name
A variable names.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
UNION
A synonym for the command STRUCTURE. For details, see “STRUCTURE” on
page 266.
VALUE
Returns the value of an expression.
address
An IDF address expression.
If the address is outside of the programs defined to IDF, the code section (CSECT)
name is omitted and the symbolic name is a second hexadecimal value.
If the address is outside the currently qualified module or the FULLQUAL option
is ON, then the code section name as defined above is module.csect, where module is
the name of module containing the address.
Example
EXTRACT VALUE ALLOPEN+4(R2)
VARIABLE
Returns information about variables.
variable-name
A variable names.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
270 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
VDECLARE | VDCL
Returns attribute information about variables.
variable-name
A variable name.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
VERSION
Returns the IDF version information.
►► EXTract VERsion ►◄
variable-name
A variable names.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
VVALUE
Returns data value information about variables.
variable-name
A variable name.
The name of the stemmed variable array defaults to LSM. and may be set by the
LANGUAGE STEM command (see “LANGUAGE STEM” on page 148).
The EXLIMIT command (see “EXLIMIT” on page 128) is used to control the
maximum stemmed array index value.
272 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
stemname.n
Data value information for the specified variables
WINDOWS
Returns information about the screen and open windows.
►► EXTract WINdows ►◄
274 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Part 4. Appendixes
ASM
►► ASM ►◄
This option indicates that ASM is the language being extracted. Since ASM is the
default (and only) language extracted, you need never use this option.
CONDASM | NOCONDASM
NOCONDASM
►► ►◄
CONDASM
DCL | NODCL
DCL
►► ►◄
NODCL
Use DCL to extract source code for declarations, including associated block
comments, NODCL to not extract them. (Variable information is extracted
regardless.)
►► DEBUG ►◄
DEBUG is not intended for general use. It adds messages to the processing log file.
These messages hold internal diagnostic information for IDF Service problem
analysis.
ERROR
►► ERROR ►◄
►► IFM fm ►◄
Default: IFM *
fm is the file mode to search initially for all input files, for a non-standard search
path. If not found, revert to the standard search path.
INCL | NOINCL
INCL
►► ►◄
NOINCL
Use INCL to extract source code for includes, NOINCL to not extract it. (Variable
information from included files is extracted regardless.)
278 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
LOUD | QUIET
QUIET
►► ►◄
LOUD
MACDEF | NOMACDEF
NOMACDEF
►► ►◄
MACDEF
►► OFM fm ►◄
Default: OFM A1
fm specifies the file mode (FM) of the output file, if other than the default A1 is
desired.
OFN
►► OFN fn ►◄
fn specifies:
v On z/OS, the PDS member name of the output file.
v On CMS, the file name (FN) of the output file.
v On z/VSE, the librarian member name of the output member.
OFT
►► OFT ft ►◄
ft specifies:
v On z/OS, the DD name of the output file.
v On CMS, the file type (FT) of the output file.
v On z/VSE, not used.
PACK | NOPACK
PACK
►► ►◄
NOPACK
280 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Use PACK to compact redundant characters in source statement text, NOPACK to
leave it as is.
►► PFM fm ►◄
Default: PFM *
fm specifies the file mode (FM) to initially search for the input file, if other than the
standard search path is desired. If not found, revert to the standard search path.
This option overrides the IFM option.
PFT
►► PFT ft ►◄
Default: PFT SYSADATA for TSO and CMS, PFT SYSADAT for z/VSE
ft specifies:
v On CMS, the file type (FT) of the input file.
v On z/OS, the DD name of the input file.
v On z/VSE, the DLBL name of the input file.
SEQ | NOSEQ
NOSEQ
►► ►◄
SEQ
Use SEQ to retain source sequence numbers in columns 73 to 80, NOSEQ to not
write them to the extract file. If the PACK option is selected, this significantly
reduces the size of a typical extract file.
Message format
ASMmssnnnnl text
where:
ASM Is the component name for IDF and related utilities.
m Is the program identifier.
This is one of:
K ASMLKEDT (z/VSE Phase MAP Creation Utility)
L IDF Language Support
M IDF Base Debugger
X ASMLANGX (ADATA Extraction Utility)
ss Is the subsystem identifier.
This identifies the subsystem within the program which issued the
message. Its main use is to help IBM Service Personnel in tracking
potential problems.
nnnn Is the message number.
l Is the message severity level.
This is one of:
I Informational message
A Action message
Used to prompt for user input
W Warning message
E Error message
S Severe error message
T Terminating error message
284 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMLVR006E • ASMLVR043I
ASMLVR010I txt1
ASMLVR034E REXX variable not found: var1
Explanation: A command has attempted to access the
ASMLVR011I One of: txt1
specified REXX variable, but it was not present.
Explanation: The "?" keyword was specified in the
User response: None
command, to request command prompting. The list of
valid keywords in this context are shown in this
message. ASMLVR035E Unable to update REXX variable: var1
User response: Change the command specification to Explanation: A command has attempted to update the
use the appropriate keyword in place of the "?" specified REXX variable, but was unsuccessful.
keyword.
User response: Ensure sufficient virtual storage is
present
ASMLVR012I Debug mode is now txt1
Explanation: A LANGUAGE DEBUG command has ASMLVR036E Stem ".0" value not positive decimal
been successfully executed. The resulting debug options number: txt1
are shown in this message.
Explanation: A command has attempted to access the
User response: None specified REXX stemmed array variable, but the value
of the "stemname.0" control variable was not a positive
decimal number.
ASMLVR013I txt1 subsystem not available in this
version of txt2 User response: None
ASMLVR020E Unknown color, "txt1" ASMLVR037E REXX variable data length dec1
exceeds limit of dec2 bytes: var3
Explanation: The indicated keyword txt1 is not
recognized as a valid LANGUAGE COLOR keyword. Explanation: A command has attempted to access the
specified REXX variable, but the contents were too
User response: Change the command specification to
large to fit in the data buffer.
use the appropriate keyword.
User response: None
ASMLVR030E No Extract data is currently loaded
ASMLVR040I Variable separator blank line will be
Explanation: A command has been executed which
txt1
required that ASMLANGX extract data be previously
loaded with LANGUAGE LOAD. None was present, so
the command did not complete successfully. ASMLVR041I Variable location audit will be txt1
User response: Load the appropriate ASMLANGX
extract data files. ASMLVR042I txt1 variable declaration information
will be txt2
ASMLVR031E Extract file filename not LOADed
ASMLVR043I Variable information will be displayed
Explanation: An attempt was made to reference
in txt1 format
ASMLANGX extract data file filename. This file has not
yet been loaded with LANGUAGE LOAD.
User response: Load the ASMLANGX extract data file,
if required.
ASMLVR050I Structure major component data will ASMLVR080I txt1 checking is now txt2
be txt1
ASMLVR090I LSM Status/Settings txt1
ASMLVR051I LSM window detail level is now "txt1,
txt2"
ASMLVR100E No variable names match pattern: txt1
ASMLVR070E No Global Storage stems are currently ASMLVR145E Unexpected characters follow ending
defined delimiter
Explanation: A command has been executed which
required that Global Storage stems be defined ASMLVR146I Unused extract data memory blocks
previously by SET GLOBAL commands. None was txt1
present, so the command did not complete successfully.
User response: None ASMLVR147I Unused Global Storage memory
blocks txt1
ASMLVR072W Global Storage stem not found: txt1
ASMLVR148W Autowrap performed to display
Explanation: A command has attempted to access the
target string.
specified Global Storage stem, but it was not defined.
User response: Create the Global Storage stem with
the SET GLOBAL command.
286 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMLVR150I • ASMLVR223E
ASMLVR150I Display now limited to source code ASMLVR192E Invalid character "txt1" in XPATH
only entry txt2. XPATH changes ignored
ASMLVR151I Display of source code disabled ASMLVR193E Maximum number of XPATH entries
(txt1) exceeded. XPATH changes ignored
ASMLVR152I Interspersed source/disassembly now
displayed ASMLVR200E Var is not txt1: txt2
ASMLVR154I txt1 generating code will be shown ASMLVR202E Invalid txt2 in expression: txt1
ASMLVR155I Display reset to show all program ASMLVR203E Missing txt2 in expression: txt1
information
ASMLVR204E txt2 invalid as operand: txt1
ASMLVR160I LSM window will scroll by txt1 txt2
ASMLVR205E txt2 occurred while txt3 in expression:
ASMLVR161I LSM window scrolling disabled txt1
ASMLVR162E Invalid LSM window scroll amount, ASMLVR206E Expression txt2 not yet supported: txt1
"txt1"
ASMLVR210E Unknown characters within
ASMLVR170I LSM REXX stem variable name is now expression: txt1
"txt1"
ASMLVR211E Extract data is incomplete for: txt1
ASMLVR171I LSM REXX stem limit is now "dec1"
ASMLVR212E Structure declaration invalid: txt1
ASMLVR172E LSM REXX stem limit dec1 is outside
of range dec2 to dec3
ASMLVR213E Array declaration invalid: txt1
ASMLVR190I XPATh reset to default value of "txt1" ASMLVR222W Warning: Value of txt1 is txt2: txt3
ASMLVR191I New XPATh accepted. Review using ASMLVR223E Var is a constant but value not
"LAN OPTIONS" extracted: txt1
ASMLVR224W Warning: Bdy(txt1) expected for txt2: ASMLVR251W Subscript txt1 for array dimension
txt3 txt2 assumed: txt3
ASMLVR225W Warning: Optimized var txt1txt2 ASMLVR252W Extraneous array subscript txt1
ignored: txt2
ASMLVR226E Error: Optimized var txt1txt2
ASMLVR253E Subscripted variable not array or
string: txt1
ASMLVR227E Error: Register txt1 is invalid: txt2
288 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMLVR312E • ASMLVR426W
ASMLVR312E UnSigned value txt1 not be negative, ASMLVR422E Extract file format invalid: txt1
display line dec2
ASMLVR423E Extract file contains invalid records
ASMLVR313E Length entered exceeds declared (RC=dec1)
string length, display line dec1
ASMLVR424E Extract file contains NO supported
ASMLVR320E Non-decimal character entered on records
display line dec1, col dec2: txt3
ASMLVR425E Unable to locate txt1 txt2 referenced
ASMLVR321E Invalid Float syntax detected on in extract file
display line dec1, col dec2: txt3
ASMLVR426W Warning: CSECT txt1 length is X'txt2
ASMLVR322E Non-hexadecimal character entered on bytes, X'txt3' expected
display line dec1, col dec2: txt3
ASMMAI014W Significance exception (program ASMMAI019I Target program has completed and
check code X'0E') returned control
Explanation: The initial target program has completed
ASMMAI015W Floating-point divide exception execution. IDF has received control.
(program check code X'0F')
User response: None
Explanation: IDF received control as a result of the
exception which occurred during user program
execution. ASMMAI020W Program exception, code X'xxxx'
User response: Determine the cause of the exception, Explanation: IDF received control as a result of the
and perform any required corrective action. exception which occurred during user program
execution.
290 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMMAI021I • ASMMAI039E
ASMMAI040E Nucleus extension is not loaded ASMMAI048E Option not recognized or exceeds 8
characters: txt1
Explanation: IDF was invoked with the NUCEXT
option, but the target program is not currently present Explanation:
in storage as a CMS Nucleus extension.
User response:
IDF processing is terminated.
User response: Use the CMS NUCXLOAD command ASMMAI049E No module name specified
to load the target program as a CMS Nucleus
extension, then invoke IDF.
ASMMAI050E "txt1" module not found
292 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMMAI069E • ASMMAI109W
ASMMAI069E Unable to load module "txt1" via OS ASMMAI095E No ADSTOP table entries available;
LOAD clear one and try again
ASMMAI070E IDF is not supported in this ASMMAI096E ADSTOP already set at txt1
environment; RC=dec1
ASMMAI097E FFFFFFFF is not a valid ADSTOP
ASMMAI071E Terminal not connected at specified address
address for txt1; RC=dec2
ASMMAI098I Start of ADSTOP range dec1 set to txt2
ASMMAI073E Error in screen manager txt1 call;
RC=dec2, Diagnostic info: txt3
ASMMAI100I End of ADSTOP range dec1 set to txt2
ASMMAI089E No BREAK table entries available; ASMMAI109W Page translation exception (program
clear one and try again check code X'11')
Explanation: IDF received control as a result of the
ASMMAI090W BREAK already set at txt1 exception which occurred during user program
execution.
ASMMAI091W Warning: Next instruction is a User response: Determine the cause of the exception,
branch-to-here and perform any required corrective action.
The PSW and register values when the exception
occurred are available from the Current Registers
window.
ASMMAI114E Error reading recorded data; RC=dec1; ASMMAI134I Oldest item retrieved; next RETRIEVE
terminating as I/O error 99 will wrap to most recent
ASMMAI116E Address specified for PSW was not ASMMAI136E Symbol is ambiguous; CSECT
on halfword boundary qualification is required
ASMMAI117E Address specified for PSW was ASMMAI137E Expression contains unknown syntax
outside of module
ASMMAI138E SUBSET is not valid when debugging
ASMMAI118E Wait-state and Mode PSW bits may a transient
not be changed
Explanation: The SUBSET command is disabled when
the target program resides in the CMS transient
ASMMAI119E Attempt to modify IDF code; changes program area, since the SUBSET command execution
discarded from txt2 causes the target program storage to be overlaid.
User response: Exit the current IDF debug session
ASMMAI120E Non-hex character in hex field; before executing the command.
changes discarded from txt2
ASMMAI139I Returned from saved screen image
ASMMAI121W Register/PSW display locked out
pending execution of startup command
ASMMAI140E No screen image has been saved
294 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMMAI144I • ASMMAI162E
ASMMAI144I Storage pointed to by indicated field ASMMAI154W Specified data does not exist at
is now shown higher addresses
Explanation: The IDF display has been successfully
updated to show storage at the address indicated by ASMMAI155W Data not found within target
the cursor. program; repeat to continue search
User response: None
ASMMAI156E Search argument missing or contains
unknown syntax
ASMMAI145E No BREAK address specified
Explanation: The breakpoint address value is required,
ASMMAI157E Hexadecimal string must contain even
but was not specified.
number of digits
User response: Specify a breakpoint address
expression
ASMMAI158E IDF cannot infer an unambiguous
starting location for the search
ASMMAI146E Non-ASCII character in text field;
Explanation: A SEARCH command has been issued
changes discarded from txt1
without an explicit window specification, or cursor
Explanation: The ASCII option is ON, so that the text indication of the window at whose start location the
field uses an ASCII data interpretation. An attempt was search is to begin.
made to modify one or more text field characters to
Both Dump and Disassembly windows are open, but
values which are not valid ASCII characters. Any
each has a different start location. IDF is unable to infer
modifications of the text field data have been
which start address to use in this case.
discarded.
User response: Specify an explicit window
User response: Retry using valid ASCII characters, or
specification or place the cursor in the window with
modify the storage location by typeover of the
the desired search starting location.
hexadecimal portion of the DUMP data display
ASMMAI167W STEP function locked out pending ASMMAI191I PSWSTEAL cleared at txt1
execution of startup command
ASMMAI192E BREAKs cannot be set within the
ASMMAI168W Register/PSW display locked out active copy of IDF
pending execution of startup command
ASMMAI193E Replacement PSW is not valid
ASMMAI169E PFK may not be set to MACRO
without macro name
ASMMAI194I IDF interrupt save area is 16 bytes at
hex location txt2
ASMMAI172E Address missing or does not contain a
valid instruction
ASMMAI195E Wait-state bit may not be set
296 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMMAI201E • ASMMAI238E
ASMMAI201E RLOG command not allowed while ASMMAI215E Attempt to access or modify
CMDLOG option is set nonexistent or read/only storage
ASMMAI202E Command file "IDF CMDLOG" not ASMMAI216E WATCH comparator not one of: txt1
found on any disk
Explanation: IDF was invoked with the RLOG ASMMAI217E WATCH instruction missing / not one
parameter, but a log file was not found. of:txt1
User response: Create a log file before using the
RLOG parameter. ASMMAI218E WATCH instruction operands are
missing
ASMMAI203E Error attempting to read "IDF
CMDLOG"; RC=dec2 ASMMAI219I WATCH condition: txt1
ASMMAI205I RLOG terminated by normal ASMMAI222E Second operand has incorrect length
end-of-file on "IDF CMDLOG" for the specified opcode
Explanation: You issued an RLOG command, but
there were no more log records on the log file. ASMMAI223E Specified window number is invalid
User response: None.
ASMMAI224E Specified window number is not the
right type for the command
ASMMAI207I Command logging is now active
Explanation: The IDF command logging is now
ASMMAI225E No more windows can be opened
writing commands to the log file.
User response: None.
ASMMAI226E Window type invalid for OPEN
ASMMAI239E Macro name too long ASMMAI264E Target program not yet loaded;
command rejected
ASMMAI241E Module name not valid
ASMMAI265E Too late for "txt1" command
ASMMAI242E Option value must be ON or OFF or Explanation: The command cannot be requested after
cleared IDF has started.
User response: Include the command as an invocation
ASMMAI243E A Deferred BREAK for module txt1 parameter, or in the PROFILE macro.
failed to install; RC=dec2
ASMMAI266E Conflicting options specified
ASMMAI245I Deferred BREAK set at txt1
ASMMAI272I Value is txt1 *
ASMMAI246I Deferred BREAK cleared at txt1
ASMMAI275E AMODE option cannot be set off
ASMMAI247W Deferred BREAK already set for txt1
Explanation: The SET OPTION OFF command was
used to attempt to turn off any of the AMODE options
ASMMAI248I Module txt1 loaded and Deferred AMODE24, AMODE31, or AMODE64. It is not possible
BREAKs installed to turn these options off.
User response: Use the SET OPTION ON command to
ASMMAI250E Deferred BREAKs must be set by the change the AMODE to the required setting.
DBREAK command
ASMMAI500E LOSTERM for LU luid - reason code
ASMMAI252E SVC 97 used; only the address and codex
ASC bits of PSW may be modified
Explanation: LOSTERM was driven for the specified
VTAM Logical Unit name luid with the reason code
ASMMAI253E PROGCK supports only decimal code (in hexadecimal).
codes 1 through 15
User response: Determine from the reason code, why
the session with the LU was terminated and correct
ASMMAI254E Invalid number before resubmitting IDF job.
ASMMAI255E Language support window not open ASMMAI501E function error for LU luid - RTNCD
rtncdx FDB2 fdb2x
ASMMAI256E Extraneous parameters Explanation: The RPL-based function function failed
for the specified VTAM Logical Unit name luid with the
Explanation: One or more extraneous parameters was
indicated RTNCD and FDB2 fields from the RPL.
encountered during processing of the IDF invocation
parameters. User response: Determine from the reported RPL
feedback information, why the function with the LU
IDF processing is terminated.
failed and correct before resubmitting IDF job.
User response: Correct the invocation parameters
specification.
ASMMAI502E ACB error for APPLID applid -
ACBERFLG codex
ASMMAI257W Target program check (code X'txt1');
Explanation: An OPEN or CLOSE for the VTAM
intercepted by ESPIE
application ID applid failed with the indicated
ACBERFLG field from the ACB. If the ACBERFLG code
ASMMAI262W Program apparently self-modifying; is x'5A', IDF attempts OPEN for up to 10 successive
IDF BREAK instruction overlaid application IDs (of the form ASMTLnnn) before issuing
the message and hence the reported applid may be one
that is not actually defined.
User response: Determine from the reported
ACBERFLG, why the OPEN or CLOSE failed.
298 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMXMA001I • ASMXMA016I
User response: None Explanation: This message indicates that the current
compile unit contained dec2 symbols with
characteristics of type txt1
ASMXMA003I ... scanning txt1
User response: None
Explanation: This message indicates that the
information specified in txt1 is being read from the
associated file and processed. ASMXMA013I ...Total symbols: dec1
User response: None Explanation: This message indicates that the current
compile unit contained dec1 symbols.
User response: None Explanation: This message identifies the input files
which were processed by ASMLANGX
The txt1 field is normally "Input file:" or "Input files:".
300 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMXMA100S • ASMXMA136S
Explanation: The ASMLANGX extract data file txt1 User response: Ensure that the correct data set has
could not be found to allow ASMLANGX processing to been specified in the txt1 file allocation. If the correct
begin. data set was specified, the data set has been allocated
with incorrect attributes, in which case it must be
ASMLANGX processing is terminated. reallocated.
User response: Correct the file specification, or make
the file available to ASMLANGX, as appropriate. ASMXMA136S Premature txt1 End-of-File
encountered
ASMXMA131S Files not found “txt1”, and “txt2” Explanation: ASMLANGX had begun scanning the
txt1 file data, but the file ended before all expected data
Explanation: The ASMLANGX extract data file could
records had been scanned.
not be found using either the primary file identifier
txt1, or the alternative file identifier txt2 to allow ASMLANGX processing is terminated.
ASMLANGX processing to begin.
User response: Ensure that the correct data set has
ASMLANGX processing is terminated. been specified in the txt1 file allocation. If the correct
data set was specified, the file may have been truncated
Explanation:
User response:
302 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
ASMXMA168W • ASMXMA311T
ASMXMA168W txt1 attribute conflict for symbol ASMXMA232S Unable to determine location of
"txt2" (ident: dec3) program code/data
ASMXMA200W txt1. Contact IBM Support Center ASMXMA233S Unable to determine identity of
unnamed PC Section
ASMXMA201T txt1 is terminated. Contact IBM
Support Center ASMXMA235W The DSA base reg txt1 is not
defined to txt2
ASMXMA210S Extraction for txt1 is not supported
(by this version of txt2) ASMXMA240S txt1 extraction is only supported for
txt2
ASMXMA211W Extraction for your release of txt1 is
not supported (by this version of txt2) ASMXMA241S For txt1, enable the txt2 "txt3" option
ASMXMA212W The txt1 which produced txt2 could ASMXMA242S and make the txt1 file available to
not be identified ASMLANGX
Note: The following keywords are used for maintenance commands and can
therefore not be used as macro names: $WHERE, $$.
Some delays may be noticed on heavily loaded systems, but these are generally in
the nature of scheduling delays, where IDF is waiting its turn at the processor.
There is a general belief that using PER will cause a serious system-wide
performance impact. When using CP PER this belief is probably well justified,
since there is significant processing for any instruction that modifies storage,
because CP performs a partial disassembly to determine where storage was
modified. Since this processing is happening on the CP level it can seriously affect
performance on a system-wide basis.
When the PATH option is OFF, the target program runs at what amounts to full
speed between breakpoints. When the PATH option is ON, IDF causes an interrupt
following every target program instruction.
Even though the PATH option can be relatively costly in terms of processor usage,
it is extremely useful both for collecting code coverage information and for
"back-tracking" by means of the HISTORY command.
Exit routines should also be used with some caution, since a REXX exec is
executed each time a breakpoint event occurs.
General considerations
TSO/E TEST and IDF have different command syntaxes. This section does not
provide a detailed comparison of the two command sets. However, procedures are
described to perform operations equivalent to those under TSO/E TEST.
TEST ’SYS1.ISP.LINKLIB(ISPF)’ CP
ISPSTART PGM(XYZZY)
AT XYZZY.XYZZY.+0 DEFER
once in IDF,
DBREAK (XYZZY.)
This can only be done if you are using SVC 97 for breakpoints.
once in IDF,
BREAK (RXLOCFN).
v In this example IDF is not passing control to RXLOCFN but to EXEC and the
parameter string that is passed as a CPPL is for EXEC.
2. If you wanted to debug a command processor, INVOKE in this case:
v Here is what you do using TSO TEST:
TEST LOAD(INVOKE) CP
INVOKE IEBGENER
v Here is what you do using IDF:
ASMIDF INVOKE (COMMAND/INVOKE IEBGENER
v In this example IDF is passing control to INVOKE and the parameter string
that is passed as a CPPL is for INVOKE.
310 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Notices
This information was developed for products and services offered in the U.S.A.
IBM may not offer the products, services, or features discussed in this document in
other countries. Consult your local IBM representative for information on the
products and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product,
program, or service that does not infringe any IBM intellectual property right may
be used instead. However, it is the user's responsibility to evaluate and verify the
operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not give you
any license to these patents. You can send license inquiries, in writing, to:
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact:
IBM Corporation
Mail Station P300
2455 South Road
Poughkeepsie New York 12601-5400
U.S.A.
The licensed program described in this document and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement or any equivalent agreement
between us.
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law: INTERNATIONAL
BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. Some states do not allow disclaimer of express or implied warranties in
certain transactions, therefore, this statement may not apply to you.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those Web
sites. The materials at those Web sites are not part of the materials for this IBM
product and use of those Web sites is at your own risk.
If you are viewing this information softcopy, the photographs and color
illustrations may not appear.
Trademarks
IBM, the IBM logo, and ibm.com are trademarks or registered trademarks of
International Business Machines Corp., registered in many jurisdictions worldwide.
Other product and service names might be trademarks of IBM or other companies.
A current list of IBM trademarks is available on the Web at Copyright and
trademark information at http://www.ibm.com/legal/copytrade.shtml.
UNIX is a registered trademark of The Open Group in the United States and other
countries.
312 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Bibliography
High Level Assembler Documents
HLASM General Information, GC26-4943
HLASM Installation and Customization Guide, SC26-3494
HLASM Language Reference, SC26-4940
HLASM Programmer's Guide, SC26-4941
314 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Glossary
A attention interrupt
An I/O interrupt caused by a terminal or
ABEND
workstation user pressing an attention
An acronym for ABnormal END, the
key, or its equivalent.
termination of a task or job before its
completion because of an error condition attention key
that cannot be resolved by error recovery A function key on terminals or
facilities while the task or job is running. workstations that, when pressed, causes
an I/O interrupt in the processing unit.
Access Register
Specialized high speed storage location, attribute
32 bits in size. A z/Architecture processor A characteristic or trait you can specify.
has 16 ARs, A0-A15. The AR contents are
|B
used in ESA/370 (or ESA/390) mode to
specify the dataspace to be used by an batch Pertaining to a predefined series of
ESA-exploitative machine instruction. actions performed with little or no
interaction between a user and the
active block
system. Contrast with interactive.
The currently executing block that
invokes the Interactive Debug Facility or batch job
any of the blocks in the CALL chain that A job submitted for batch processing. See
leads up to this one. batch. Contrast with interactive.
Address Stop block In programming languages, a compound
See Storage Alteration Stop. statement that coincides with the scope of
at least one of the declarations contained
AdStop
within it.
See Storage Alteration Stop.
Break window
AdStops window
The IDF window which lists the currently
The IDF window which lists the currently
active breakpoints. These include those
active Storage Alteration Stops (AdStops)
breakpoints set by the BREAK, DBREAK,
and Register Alteration Stops (RegStops).
and WATCH commands.
This window is only available on CMS,
when IDF's of PER is enabled. breakpoint
A place in a program, normally specified
alias An alternative name for a field.
by a command or a condition, where
AR See Access Register. execution can be interrupted and control
given to the user or to the Interactive
argument
Debug Facility.
Data passed from one program or
procedure to another. Contrast with C
parameter.
Command window
ASMIDF The IDF window which contains the
See Interactive Debug Facility. command input area, the message display
areas, and (optionally) the display of the
assemble
PF key captions.
To translate a program written in
assembly language into a compile
machine-language program. To translate a program written in a high
level language into a machine-language
assembler
program.
A program that translates instructions
written in assembly language into compile unit
machine language. A sequence of statements that make a
316 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Further information is available in z/VSE: machine function to carry out the
System Control Statements. instructions contained within. See also
run.
double-byte character set (DBCS)
A set of characters in which each execution time
character is represented by two bytes. See run time.
Languages such as Japanese, which
execution-time environment
contain more symbols than can be
See run-time environment.
represented by 256 code points, need
double-byte character sets. Because each exit exec
character needs two bytes, the typing, The same as an exit routine.
displaying, and printing of DBCS
exit routine
characters needs hardware and programs
A customization feature which associates
that support these characters.
an IDF macro or another program with a
dump The formatted display of storage contents. particular event.
Typically formatted with a hexadecimal
expression
representation of the data on the left, and
A group of constants or variables
a character interpretation on the right.
separated by operators that yields a single
A file or data set containing storage value. An expression can be arithmetic,
contents, intended for use in offline relational, logical, or a character string.
debug. See also postmortem debug.
F
Dump window
file A named set of records stored or
The IDF windows which display the
processed as a unit.
results of an IDF DUMP command. This
storage display will take the form of a A system object containing records: for
dump, with the left side of the display example, a VM file, or an z/OS member
containing the storage contents in or partitioned data set. See data set.
hexadecimal, and the right side
Floating Point Register
containing a character interpretation.
The CPU has 16 floating-point registers.
dynamic The floating point registers are identified
In programming languages, pertaining to by the numbers 0-15 and are designated
properties that can only be established by a four-bit R field in floating point
during the execution of a program; for instructions. Each floating-point register is
example, the length of a variable-length 64 bits long and can contain either a Short
data object is dynamic. Contrast with (32-bit) or a Long (64-bit) floating-point
static. operand.
E FPR See Floating Point Register.
entry point font A set of characters or symbols of a given
The address or label of the first size, shape, and style.
instruction executed on entering a
frequency count
computer program, routine, or subroutine.
In the Interactive Debug Facility, a count
A computer program may have a number
of the number of times statements in the
of different entry points, each perhaps
currently qualified program unit have
corresponding to a different function or
been run.
purpose.
Frequency
exception
A choice located on the Compact Source
An abnormal situation in the execution of
or Compact Listing window action bar
a program which typically alters its
that allows you to monitor the frequency
normal flow. See also condition.
with which program statements are
execute carried out.
To cause a program, utility, or other
full-screen mode
An interface mode for use with a
Glossary 317
non-programmable terminal which machine-level (object-level,
displays a variety of information about disassembly-level) debug capabilities of
the program you are debugging. IDF, originally packaged as a separate
module.
G
LE/370 See IBM Language Environment for z/OS
General Purpose Register
and z/VM.
Each register contains 64 bit positions.
The general registers are identified by the library routine
numbers 0-15. A routine maintained in a program
library.
GPR See General Purpose Register.
line mode
group A set of records that are associated
An interface mode for use with a
together as a logical unit.
non-programmable terminal which uses a
H single command line to accept Interactive
Debug Facility commands.
high level language (HLL)
A programming language such as C, link-edit
PL/I, or COBOL. To create a loadable computer program
using a linkage editor.
HLL See high level language.
linkage editor
HLASM
A program that resolves cross-references
Acronym for High Level Assembler.
between separately compiled object
I modules and then assigns final addresses
to create a single relocatable load module.
Interactive Debug Facility
The IBM product informally known as listing A printout that lists the source language
IDF, an application development and statements of a program with all
maintenance facility for debugging preprocessor statements, includes, and
assembly language programs. macros expanded.
Interactive Debug Facility macro load module
A REXX EXEC which contains Interactive A program in a form suitable for loading
Debug Facility commands. into main storage for execution.
inactive block LUname
A block that is not currently executing, or Defines the VTAM logical unit name of
is not in the CALL chain leading to the the terminal used by IDF in z/VSE.
active block. See also active block, block.
LSM See Language Support Module.
initial setting
LSM Information window
A value in effect when the user's
The IDF windows which contains
Interactive Debug Facility session begins.
information generated by IDF Language
Contrast with default.
Support commands.
interactive
M
Pertaining to a program or system that
alternately accepts input and then MainFrame Interface (MFI)
responds. An interactive system is This refers to the use of a
conversational; that is, a continuous nonprogrammable terminal such as an
dialog exists between a user and the IBM 3270.
system. Contrast with batch.
Maximize
I/O Input/output. The action used to remove a window
entry from the Minimized Windows
L
Viewer, and restore it to its previous
Language Support Module position on the display.
The IDF subsystem which provides
MFI See MainFrame Interface.
Language Support extensions to the basic
318 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Minimize about to be transferred to another location
The action used to remove an IDF or a point in the program where control
window from the display and replaces it has just been given.
with an entry in the Minimized Windows
PDS See partitioned data set.
Viewer.
PER Program Event Recording
Minimized Windows Viewer
An IDF window which contains entries postmortem debug
which represent minimized IDF windows. To detect, diagnose, and eliminate errors
in programs after the program has
module
ABENDed. This is typically performed
The "package" which contains the
offline, using a dump file or data set.
executable code and data for a program.
This may be in the form of a file, or an prefix area
area of storage. The eight columns to the left of the
program source or listing containing line
multitasking
numbers. In the Interactive Debug
A mode of operation that enables the
Facility, statement breakpoints can be set
concurrent performance, or interleaved
in the prefix area.
execution, of two or more tasks.
primary entry point
N
See entry point.
name pattern
Processor Status Word
A set of criteria used to display a list of
This register describes the current
variable names.
processor execution state. Various fields
O contain the current:
v addressing mode
Old Registers window
v execution address
The IDF window which displays the PSW
v condition-code setting
and registers contents from the previous
v storage access key
point when IDF had control. By default,
v problem or supervisor state indicator
the previous General Purpose Registers
v other state indicators
(GPRs) and Floating Point Registers
(FPRs) are shown, but the previous Access procedure
Registers (ARs) or Control Registers (CRs) In a programming language, a block, with
may be shown instead. or without formal parameters, whose
execution is invoked by means of a
Options window
procedure call.
The IDF window which contains current
values of the IDF options and settings. A set of related control statements. For
example, a z/VM exec, or a z/OS CLIST.
P
profile
panel In the MFI Interactive Debug Facility, an
A group of customizable settings that
area of the screen used to display a
govern how the user's session appears
specific type of information.
and operates.
parameter
Profile
Data received by a program or procedure
A choice that allows you to change some
from another. Contrast with argument.
characteristics of the working
partitioned data set (PDS) environment, such as the pace of
A data set in direct-access storage that is statement execution in the Interactive
divided into partitions, called members, Debug Facility.
each of which can contain a program, part
program
of a program, or data.
A sequence of instructions suitable for
path point processing by a computer. Processing can
A point in the program where control is include the use of an assembler, a
Glossary 319
compiler, an interpreter, or a translator to structure element. Any of the above can
prepare the program for execution, as be pointer-qualified where applicable.
well as to execute it.
Register
program part Specialized high speed storage location or
A compile unit associated with an control facility. See General Purpose
application program. All program parts Register, Floating Point Register, Access
known to the Interactive Debug Facility Register, and Control Register.
are displayed in the MAP window.
Register Alteration Stop
program unit This is a special breakpoint available
See compile unit. when IDF on CMS has exploitation of the
virtual machine Program Event Recorder
programmable workstation (PWS)
(PER) mode enabled. IDF will receive
A workstation that has some degree of
control when any of the specified registers
processing capability and that allows you
is altered.
to change its functions (for example, a
small computer such as an IBM Personal Register Stop
System/2* (PS/2*) as a terminal device See Register Alteration Stop.
along with appropriate 3270 emulation
RegStop
software).
See Register Alteration Stop.
PSW See Processor Status Word.
run To cause a program, utility, or other
PWS See programmable workstation. machine function to execute.
Q An action that causes a program to begin
execution and continue until a run-time
qualification
exception occurs. If a run-time exception
A method used to specify to what
occurs, you can use debug windows to
procedure or load module a particular
interact with the Interactive Debug
variable name, function name, label, or
Facility.
statement id belongs. The SET QUALIFY
command changes the current implicit run time
qualification. Any instant at which a program is being
executed.
R
run-time environment
record A group of related data, words, or fields
A set of resources that are used to
treated as a unit, such as one name,
support the execution of a program.
address, and telephone number.
run unit
record format
A group of one or more object programs
The definition of how data is structured
that are run together.
in the records contained in a file. The
definition includes record name, field S
names, and field descriptions, such as
SBCS See single-byte character set.
length and data type. The record formats
used in a file are contained in the file semantic error
description. An error in the implementation of a
program's specifications. The semantics of
reference
a program refer to the meaning of a
In programming languages, a language
program. Unlike syntax errors, semantic
construct designating a declared language
errors (since they are deviations from a
object.
program's specifications) can be detected
A subset of an expression that resolves to only at run time.
an area of storage; that is, a possible
sequence number
target of an assignment statement. It can
A number that identifies the records
be any of the following: a variable, an
within a z/VM file, or a z/OS member or
array or array element, or a structure or
partitioned data set.
320 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
session subroutine
The events that take place between the A sequenced set of instructions or
time you start an application and the time statements that can be used in one or
you exit the application. more computer programs at one or more
points in a computer program.
shortcut keys
A key or combination of keys that starts suffix area
an application-defined function. The IDF A variable-sized column to the right of
user interface term for accelerator keys or the program source or listing statements,
hot keys. containing frequency counts for the first
statement or verb on each line. In the
single-byte character set (SBCS)
Interactive Debug Facility, the MFI
A character set in which each character is
optionally displays the suffix area in the
represented by a one-byte code.
Disassembly window. See also prefix area.
Skipped Subroutines window
synchronous
The IDF window which lists the currently
Pertaining to two or more processes that
active "Skipped Subroutine" breakpoints.
depend on the occurrence of specific
These are set by the SKIPSTEP command.
events. Contrast with batch, interactive.
source The statements in a file that make up a
syntactic analysis
program.
An analysis of a program done by a
In Interactive Debug Facility, the compiler to determine the structure of the
representation of a program's source program and the construction of its
statements displayed in the Disassembly source statements to determine whether it
window. is valid for a given programming
language. See also syntax error.
static In programming languages, pertaining to
properties that can be established before syntax The rules governing the structure of a
execution of a program; for example, the programming language and the
length of a fixed length variable is static. construction of a statement in a
Contrast with dynamic. programming language.
status area syntax error
An area appended to a window that Any deviation from the grammar (rules)
shows the keyboard shift state for DBCS of a given programming language
on a DBCS-enabled workstation. appearing when a compiler performs a
syntactic analysis of a source program.
step One statement in a computer routine.
See also syntactic analysis.
To cause a computer to execute one or
T
more statements.
Target Status window
storage
The IDF window which lists information
A unit into which recorded text can be
about the program modules which are
entered, in which it can be retained, and
currently defined to IDF.
from which it can be retrieved.
token A character string in a specific format that
The action of placing data into a storage
has some defined significance in a
device.
programming language.
A storage device.
triglyph
Storage Alteration Stop A group of three characters which, taken
This is a special breakpoint available together, are equivalent to a single special
when IDF on CMS has exploitation of the character.
virtual machine Program Event Recorder
type style
(PER) mode enabled. IDF will receive
A form of highlighting of characters and
control when storage within the specified
symbols within a font set. For example,
address ranges is altered.
bold, italic, strikeout, or underscore. See
also display attribute.
Glossary 321
U
utility A computer program in general support
of computer processes; for example, a
diagnostic program, a trace program, or a
sort program.
V
variable
A name used to represent a data item
whose value can be changed while the
program is running. Contrast with
constant.
W
window
A division of the display screen in which
one of several IDF commands can
concurrently display information.
windowing
Dividing a display screen into distinct
areas in which different display images
can be viewed at the same time.
workstation
One or more programmable or
nonprogrammable devices, normally
connected to a host or a network, at
which you can run applications. See also
programmable workstation.
322 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
Index
Special characters ARRAY 108
ARRAY command 107
asynchronous program-checks
trapping 107
? command 184 array element attention key 51
/ command 154 based 93, 108 Attention key 68
data attributes AUDIT command 109
obtaining 244 AUDIT option
Numerics data display setting 109
1ADSTOP option obtaining 244 AUTOLOAD option 203
at invocation 27 extraction 244 at invocation 28
information AUTOSIZE option 72
obtaining 244 at invocation 28
A array elements
data display 107
abbreviations
list of 305
array indexing 95
arrow, as base indicator 87
B
ABEND BACK command 109
ASCII
causing 104 base address of program
storage
ABEND command 104 setting 110
displayed in 75, 78
ABNEXIT 60 BASE command 110
modified in 75, 79
Access registers base for data input 87
ASCII option
initial contents 41 based
at invocation 28
addresses array element 93, 108
ASM ASMLANGX option 277
displayed by IDF 89 structure 93, 205
ASMIDFB
ADSTOP command 104 union 93, 205
z/OS batch job 46
Adstops variable 93, 95
ASMLANGX
clearing 72 basing expression
extraction file
AdStops display 109
allocation on TSO 18
availability of 62 BCX option
optimum BLKSIZE 18
ADSTOPS command 105 at invocation 29
return codes 21
AFPR command 106 BINARY command 130
ASMLANGX options
alarm BIT command 110
ASM 277
sound from macro 106 block comment
CONDASM 277
ALARM command 106 display 141
DCL 277
ALET command 106 BOTTOM command 111
DEBUG 278
ALET for a Dump window BREAK command 111
ERROR 278
setting 106 break-in event
IFM 278
allocation map CMS 60
INCL 278
storage TSO 51
LOUD 279
display 204 z/VSE 68
MACDEF 279
extraction 266 breakpoints
NOCONDASM 277
obtaining 266 clearing 73
NODCL 277
alteration examining from a macro 244
NOINCL 278
variable execute until next reached 186
NOMACDEF 279
optimized 116 exit routine 231
NOPACK 280
AMODE24 option missed 62
NOSEQ 281
at invocation 27 name 231
OFM 280
AMODE31 option RC from exit routine to accept or
OFN 280
at invocation 27 ignore 232
OFT 280
AMODE64 option set from macro 190
PACK 280
at invocation 27 setting 111
PFM 281
validity 27 types of 62
PFT 281
APROGMSG command 107 types of (z/OS) 112
QUIET 279
APROGMSG option types of (z/VM) 112
SEQ 281
setting 107 types of (z/VSE) 112
ASMLKEDT
AREGS command 107 when taken 112
JCL Requirements for s/VSE 17
arguments 87, 89 BRIEF command 114, 119
assembly
passing to CMS program 55 BRIEF option
needed option 17
passing to TSO program 45 setting 114
preparation 17
passing to z/OS batch program 46 requirements 17
passing to z/VSE program 65 asynchronous events 62
array
display scrolling 139
324 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
commands (continued) commands (continued) COMPACT command 119
LANGUAGE (continued) RESTORE 184 COMPACT option
MACROS 146 RETRIEVE 184 setting 119
OPTIONS 146 RIGHT 185 compaction
SCROLL 147 RLOG 87, 185, 213 extract file storage 163
STATUS 147 RUN 186 Global Storage data storage 135
STEM 148 RUNEXIT 186 CONDASM ASMLANGX option 277
VERSION 148 SALIMIT 187 Controlling 92
XPATH 149 SAREGS 187 CREGS command 120
LAST 149 SAVE 177 CSECT
LASTMSG 150 SEARCH 188 specifying 87
LEFT 150 SELFNUCX 189 current screen contents
LIBE 151 SET extraction 264
LOAD 152 ADSTOP 190 obtaining 264
LOCATE 154 AREG 190 cursor
LOCATION 154 BREAK 190 determining position of from
LOCATION ALET 155 COMMAND 191 macro 246
MACRO 156 EXITEXEC 191, 231, 233 setting position from macro 120
MAJOR 156 GLOBAL 193 CURSOR command 120
MAP 157 GLOBAL STEM 192 cursor position
MAXIMIZE 81, 157 ICOUNT 193 rules used by IDF 89
MINIMIZE 80, 158 OFFSET 193 customization
MODE 158 OPTION 6, 194 screen 141
MODULE BASE 160 OPTION AUTOSIZE 72
MODULE CDE 159 PSW 195
MODULE NUCEXT 159
MODULE SIZE 160
REGSTOP 196
SET MODULE 158
D
data address
MODULE TRANS 159 SET PSW 32
extraction 272
MOVE 72, 161 SIZE 196
variable
MPACK 163 SET OPTION 6
obtaining 272
MRUN 7, 163 SHOW 197
data attributes
MSG 165 SIZE command 198
array element
MSGID 165 SKIPSTEP 42, 92, 168, 200
obtaining 244
MSGMODE 166 SPACE 201
display 210
MSTATUS 167 STATUS 201
extraction 244, 266, 269, 270, 271
MSTEP 7, 167 STEP 202
structure
NAMES 168 STMTSTEP 202
obtaining 266
NEXT 169 STOKEY 203
variable
OFFSET 170 STOREMAP 204
display 210
OPEN 171 STRUCTURE 204
obtaining 269, 270, 271
OPTIONS 172 SUBSET 206
data display
ORDER 71, 172 SVC 206
array element
OREGS 173 SWAP 206
obtaining 244
PACKED 173 SYMBOL 207
extraction 270, 271, 272
PARMS 174 TASKS 208
structure 204
PAUSE 174 TITLE 208
obtaining 266
PER 174 TOP 209
union 204
PFK 9, 175 TRIGGER LOAD 209
variable 93, 212
PFKDISP 175 TYPE 210
obtaining 270, 271, 272
PLOCATES 176 UNION 204, 210
data format
PRESERVE 177 UNTIL 211
bit variables
PREVIOUS 177 UP 177
* 110
PROGCHK 178 VALUE 211
BIT 110
PROGCK 178 VARIABLE 93, 212
default 110
PSW 135 VCHANGE 213
HEX 110
PSWSTEAL 179 VERSION 213
character variables
QQUIT 182 VS 214
* 115
QUALIFY 181 VSEP 214
ASCII 115
QUIET 181 WATCH 214
CHARACTER 115
QUIETLY 181 WHERE 216
default 115
QUIT 182 XEDEXIT 217
EBCDIC 115
R0-R15 187 ZONED 217
HEX 115
RCQUIT 182 comments
PACKED 115
REFRESH 183 display
ZONED 115
REGS 183 enabling 197
fixed variables
REGS64 184 excluding 137
* 130
REGSTOPS 105 COMMENTS command 141
DECIMAL 130
Index 325
data format (continued) display ESTAE exit 51
fixed variables (continued) Access registers 107 EVALBLOK 50, 60
default 130 allocation map execute to next breakpoint 186
HEX 130 storage 204 execution
float variables array elements 107 instruction counts 41, 42
* 131 IDF Language Support reviewing previous 138
default 131 options 146 exit from IDF 182
FIXED 131 settings 146 exit from IDF with RC 182
HEX 131 location exit routine
SCIENCE 131 symbolic name 216 arguments passed at invocation 231
STANDARD 131 registers communication between 192, 193,
STD 131 Access 107 250, 251
packed decimal variables storage compiled language 29, 233
* 173 allocation map 204 conditions for execution 231
DECIMAL 173 task information 208 current
default 173 value of expression 211 naming 191
HEX 173 variable determining current 250
Zoned decimal variables data attributes 210 enabling and disabling 128
* 217 information 210 information available to 233, 241
DECIMAL 217 type attributes 210 invoking by PF key 186
default 217 display scrolling last event causing 250
HEX 217 array display 139 naming at IDF invocation 31
data location LSM Information window 139 writing 231
extraction 272 status display 139 XEDIT the current 217
variable structure display 139 EXITEXEC command 128
obtaining 272 union display 139 EXITEXEC option 231
data set conventions variable display 139 at invocation 31
z/OS 43 DMSO option EXLIMIT command 128
z/VSE 65 at invocation 30 expression 87
data value documents displaying value of 211
extraction 272 High Level Assembler 313 indirection operators 88
variable HLASM Toolkit 313 locating 93, 95, 108
obtaining 272 machine instructions 313 obtaining value of from a macro 269
DB2 z/OS 313 placing on command line from a
debugging programs in 50 z/VM 313, 314 macro 191
DBREAK command 121 z/VSE 314 expressions
DCL ASMLANGX option 277 DOWN command 169 based 205
DD conventions DROP command 142 locating 205
z/OS 43 DROP GLOBAL command 124 extended branch mnemonics 76
dead code 41 DROP MODULE command 125 external calls
DEBUG ASMLANGX option 278 DROP SYMBOLS command 125 hierarchy
DEBUG command 142 dump display 114, 187
debugging format extraction 245
CMS programs 55 changing 126 save areas 114, 187
z/OS programs 43 symbolic and unformatted EXTRACT
z/VSE programs 65 differences 78 return codes from 241
debugging support DUMP EXTRACT ADSTOPS command 241
LSM 142 automatic adjustment of 132 EXTRACT ALET command 242
declarations DUMP command 125 EXTRACT AREGS command 242
display DUMPMODE command 77, 126 EXTRACT ARGUMENT command 242
enabling 197 dynamically loaded programs EXTRACT ARRAY command 244
excluding 137 CMS 59 EXTRACT BREAK command 244
declare display 142 TSO 48 EXTRACT CALLERS command 245
DECLARES command 142 z/VSE 66 EXTRACT CMDMSG command 246
default EXTRACT COLORS command 246
dump format EXTRACT CURSOR command 246
changing at invocation 40
ENTER key function 86
E EXTRACT DISASM command 248
EXTRACT EVENT command 250
ENTER
PF key definitions 86 EXTRACT EXITEXEC command 250
default setting 86
delaying execution 174 extract file
Entry Point Names window
DETAIL command 123 association
displaying 127
DISASM command 123 querying 157
entrypoint offset of program
disassembly dropping
setting 127
display all 142
environments supported 6
enabling 197 individual 142
EPNAMES command 127
excluding 137 loading 143
EPOFFSET command 127
obtaining from macro 248 memory compaction 163
ERROR ASMLANGX option 278
326 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
extract file (continued) extraction (continued) Global Storage
memory status information 167 current screen contents 264 deleting stem 124
obtaining 167 Global Storage dynamically loaded
querying loaded files 147, 167 status information 251 deleting stem 124
search path 149 Global Storage status information memory compaction 135
EXTRACT GLOBAL command 250 obtaining 251 querying defined stems 134, 251
EXTRACT GLOBAL STEM ICOUNT 252 querying stem definitions 136
command 251 IDF Language Stem Name 254 status information 136
EXTRACT GLOBAL STEMS IDF Language Support settings 253, extraction 251
command 251 262 obtaining 136
EXTRACT GSTATUS command 251 IDF Language Support version 254 GLOBALS command 134
EXTRACT ICOUNT command 252 IDF settings 262 GOTO command 135
EXTRACT LANGUAGE ARGUMENTS LANGUAGE arguments 252 GPACK command 135
command 252 LANGUAGE commands 253 GPR command 135
EXTRACT LANGUAGE COMMANDS memory status information 259 GPR registers
command 253 obtaining 259 initial contents 40
EXTRACT LANGUAGE OPTIONS module GPRG command 136
command 253 location 257 GPRH command 136
EXTRACT LANGUAGE STATUS pointer Located variables 261 GSTATUS command 136
command 254 source records 265
EXTRACT LANGUAGE STEM statement scope 263
command 254
EXTRACT LANGUAGE VERSION
status information 254
storage
H
HEXDISP option
command 254 allocation map 266
at invocation 32
EXTRACT LASTMSG command 255 task information 268
showing displacements 249
EXTRACT LOAD command 256 variable names 259
HEXINPUT option 269
EXTRACT LOCATION ALET extraction file
at invocation 32
command 257 ASMLANGX
HIDE command 137
EXTRACT LOCATION command 256 allocation on TSO 18
high-order bits
EXTRACT MAP command 257 optimum BLKSIZE 18
changing 136
EXTRACT MODE command 258
HISTORY command 138
EXTRACT MODULES command 258
HLASM
EXTRACT MSTATUS command 259
EXTRACT NAMES command 259
F assembly
FASTPATH option 41 preparation 17
EXTRACT OPTIONS command 260
at invocation 31 program build
EXTRACT PER command 260
file mode requirements 17
EXTRACT PFK command 261
obtaining current from macro 258 HNDEXT 60, 63
EXTRACT PLIST command 261
setting 158 hostspot 41
EXTRACT PLOCATES command 261
FIND command 129
EXTRACT QUALIFY command 262
FIRST command 130
EXTRACT QUERY command 262
EXTRACT REGS command 263
FIXED command 130
flag byte (R1) 55
I
EXTRACT REGSTOPS command 263 ICOUNT command 139
FLOAT command 131
EXTRACT SCOPE command 263 IDF
float variable 131
EXTRACT SCRVAR command 264 invoking 23
Floating Point registers
EXTRACT SELFNUCX command 264 IDF Language Stem Name
initial contents 41
EXTRACT SKIPSTEP command 265 obtaining 254
FMT command 133
EXTRACT SOURCE command 265 IDF Language StemName
FOLLOW command 132
EXTRACT STOREMAP command 266 extraction 254
Following linked list 126
EXTRACT STRUCTURE command 266 IDF Language Support
FORMAT command 133
EXTRACT SVC command 267 debugging information 34
format notation, description xi
EXTRACT SYMBOLS command 267 Logical Unit name 33
FPC command 134
EXTRACT TASKS command 268 IDF Language Support settings
FPR
EXTRACT TYPE command 269 extraction 253, 262
initial contents 41
EXTRACT UNION command 269 obtaining 253
FPR command 134
EXTRACT VALUE command 269 IDF Language Support version
full-screen applications
EXTRACT VARIABLE command 270 extraction 254
debugging 52, 62, 69
EXTRACT VDECLARE command 271 obtaining 254
FULLQUAL option 89, 248, 249
EXTRACT VERSION command 271 IDF settings
at invocation 31
EXTRACT VLOC command 272 extraction 262
EXTRACT VVALUE command 272 preserving 177
EXTRACT WINDOWS command 273 restoring 184
extracting currently qualified G saving 177
module 262 getting started 9 stack 177, 184
extraction program debug 9 IFM ASMLANGX option 278
allocation map program preparation 9 IMPMACRO option
storage 266 at invocation 32
Index 327
INCL ASMLANGX option 278
indirection operators 88
L location
displaying
information LANGUAGE symbolic name 216
array element + 139 LOCATION ALET command 155
obtaining 244 COLOR 141 LOCATION command 154
structure COMMENTS 141 locator variable
obtaining 266 DEBUG 142 displaying Located variables 176
variable DECLARES 142 extracting Located variables 261
display 210 DROP 142 obtaining Located variables 261
obtaining 269, 270, 271, 272 LOAD 143 logging 185
informational message display OPTIONS 146 long name
controlling 181 SCROLL 147 how truncated to produce short
input checks STATUS 147 name 127
bounds 116 STEM 148 LOUD ASMLANGX option 279
disabling 116 VERSION 148 LPSW Fastpath 164
enabling 116 XPATH 149 LSM
negative values 116 LANGUAGE + command 139 debugging support 142
substring 116 LANGUAGE COLOR command 141 index limit 128
unsigned variables 116 LANGUAGE commands named 148
instructions extraction 253 LSM Information window
counting execution of 139 obtaining 253 scrolling 139
reviewing previous 138 LANGUAGE COMMENTS LSM Information window scrolling 147
interrupt routines 36 command 141 LSMDEBUG option
interrupts 62 LANGUAGE DCLS command 142 at invocation 34
handled by CMS 60 LANGUAGE DEBUG command 142 LUNAME option
invocation LANGUAGE DECLARES command 142 at invocation 24, 25, 26, 33, 66
user area programs 23 LANGUAGE DROP command 142
validity checking at 23 LANGUAGE LOAD command 143
LANGUAGE MACROS command 146
invocation options 27
invoking IDF 23 LANGUAGE OPTIONS command 146 M
LANGUAGE SCROLL command 147 MACDEF ASMLANGX option 279
invoking IDF on TSO
LANGUAGE STATUS command 147 machine instructions
from a CLIST 44, 47
LANGUAGE STEM command 148 documents 313
from a REXX EXEC 44, 47
language support macro
from the TSO/E READY prompt 44,
additional capabilities 91 options
47
LANGUAGE VERSION command 148 examining 260
IDF files
LANGUAGE XPATH command 149 setting within 194
ALLOC of DDs 47
LAST command 149 MACRO command 156
FREE of DDs 47
LASTMSG command 150 macro expansions
under ISPF 44, 47
LEFT command 150 display
user files
LIBE option enabling 197
ALLOC of DDs 47
at invocation 33 excluding 137
FREE of DDs 47
license inquiry 311 MACROLOG option 158, 226
invoking IDF on z/VSE
limitations at invocation 34
IDF files 65
on CMS 7 macros
INVPSW option 195
on TSO 6 IDF 128, 148
at invocation 32
on z/VSE 7 communication between 250, 251
ISA location 60
limits invocation by operator 156
ISA option
program's return codes from 156
at invocation 33
CMS 61 invocation of 225
ISPF
z/OS 51 writing 225
debugging programs in 50
z/VSE 69 macros, IDF
line address communication between 192, 193
terminal 33 restrictions
J line numbers MRUN 7
JCL Requirements for s/VSE source code MSTEP 7
ASMLKEDT 17 display 197 MAJOR command 156
LINE option 62 MAJOR option
at invocation 33 setting 156
K linked list MAP command 157
MAXIMIZE command 81, 157
key following 126
LOAD command 143, 152 memory constrained environments
storage 203
loading programs 158, 159, 160 optimum BLKSIZE 18
keywords
LOADLIB XA Exploitation 18
abbreviations for 305
specifying in PROFILE macro 151 memory status information
synonyms of 139
LOCATE command 154 extract file 167
KWDSYN command 139
locating expressions 205 extraction 259
328 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
message
format 283
MODULE BASE command 160
MODULE CDE command 159
O
numbers 283 MODULE NUCEXT command 159 obtaining
severity levels 283 MODULE SIZE command 160 allocation map
trapping programs 63 MODULE TRANS command 159 storage 266
Message MOVE command 72, 161 array element
obtaining contents from within a MPACK command 163 data attributes 244
macro 246 MRUN command 163 data display 244
obtaining current value of 246 MSG command 165 information 244
message display MSGID command 165 current screen contents 264
controlling 165, 166, 181 MSGID option Global Storage status information
messages 283 interaction with CMDMSG 246 extraction 251
ASMKLKE 284 interaction with LASTMSG 255 IDF Language Stem Name 254
ASMKLKI 284 setting 165 IDF Language Support settings 253
ASMKLKS 284 MSGMODE command 166 IDF Language Support version 254
ASMKLKT 284 MSGMODE option IDF settings 253
ASMKLKW 284 setting 166 LANGUAGE arguments 252
ASMLANGX 299 MSTATUS command 167 LANGUAGE commands 253
ASMLKEDT 284 MSTEP command 167 memory status information
ASMLVRE 284 extract file 167
ASMLVRI 284 extraction 259
module
ASMLVRS 284
ASMLVRT 284
N location 257
names pointer Located variables 261
ASMLVRW 284
variable source records 265
ASMMAIE 290
displaying list 168 statement scope 263
ASMMAII 290
extracting list 259 status information 254, 262
ASMMAIS 290
NAMES command 168 Global Storage 136
ASMMAIT 290
NEXT command 169 storage
ASMMAIW 290
NOAUTOLD option 203 allocation map 266
ASMXMAE 299
at invocation 28 structure
ASMXMAI 299
NOAUTOSZ option 72 data attributes 266
ASMXMAS 299
at invocation 28 data display 266
ASMXMAT 299
NOBCX option 76 information 266
ASMXMAW 299
at invocation 29 task information 268
IDF 290
NOCONDASM ASMLANGX option 277 variable
IDF Language Support 284
NODCL ASMLANGX option 277 data address 272
issuing from a macro 165
NODSECTS option data attributes 269, 270, 271
obtaining contents from within a
at invocation 35 data display 270, 271, 272
macro 255
NOIMPMAC option data value 272
retrieving previous 150
at invocation 32 information 269, 270, 271, 272
MINIMIZE command 80, 158
NOINCL ASMLANGX option 278 type attributes 269
Minimized Windows Viewer 157, 158
NOINVPSW option 195 obtaining IDF Language Support
missed breakpoints 62
at invocation 32 version 148
mnemonics
NOMACDEF ASMLANGX option 279 OFFSET
extended branch 76
NOMODMAP option extracting current 256
MODE command 158
at invocation 34 referring to in expressions 89
MODE option 86
NOPACK ASMLANGX option 280 setting or querying 170
at invocation 34
NOPROFIL option OFFSET command 170
changing value 258
at invocation 36 OFFSET option 170
checking value 258
NOSEQ ASMLANGX option 281 at invocation 35
MODMAP option
NOSTOPNP option 168, 202, 203 OFM ASMLANGX option 280
at invocation 34
at invocation 38 OFN ASMLANGX option 280
module
NOSTOPST option 202 OFT ASMLANGX option 280
deleting definition 125
at invocation 38 OLDBREAK option
displaying definition 83
NOSVC97 option 6, 44 at invocation 35
dynamically loaded
at invocation 25, 39 OPEN command 171
defining to IDF 159, 160
debugging, TSO 46 operating IDF 71
deleting definition 125
notation, description xi operators
extracting currently qualified 262
NUCEXT option 56 indirection 88
extracting information about 258
at invocation 35 normal operator 87
location
Nucleus Extensions optimum BLKSIZE
extraction 257
self loading, debugging 57 memory constrained
obtaining 257
Nucleus Extensions (CMS only) environments 18
querying 157
explicitly loaded, debugging 56 options
preventing IDF from loading 158
setting qualified 181 1ADSTOP
specifying 87 at invocation 27
Index 329
options (continued) options (continued) options (continued)
AMODE24 LUNAME SAREGS
at invocation 27 at invocation 33, 66 setting 187
AMODE31 macro SBORDER
at invocation 27 examining from within 260 at invocation 37
AMODE64 setting from 194 SCDACTIV
at invocation 27 MACROLOG 158, 226 at invocation 37
validity 27 at invocation 34 SELFNUCX 57
APROGMSG MAJOR at invocation 38
setting 107 setting 156 SPACE
ASCII MODE 86 setting 201
at invocation 28 at invocation 34 STOPNOP 168, 202, 203
at invocation 37 changing value 258 at invocation 38
AUDIT checking value 258 STOPSTMT 202
setting 109 MODMAP at invocation 38
AUTOLOAD 203 at invocation 34 SVC97 6, 44
at invocation 28 MSGID at invocation 39
AUTOSIZE 72 interaction with CMDMSG 246 SWAP 52, 62, 69, 206
at invocation 28 interaction with LASTMSG 255 at invocation 39
BCX setting 165 SYSTEM
at invocation 29 MSGMODE at invocation 39
BRIEF setting 166 TRACEALL 155, 195, 257
setting 114 NOAUTOLD 203 at invocation 39
CKSUBCM at invocation 28 TRANS 56
at invocation 29 NOAUTOSZ 72 at invocation 40
CMDLOG 86, 158 at invocation 28 UNFTDUMP
at invocation 29, 37 NOBCX 76 at invocation 40
CMPEXIT at invocation 29 OPTIONS command 146, 172
at invocation 29 NODSECTS ORDER command 71, 172
loading exit routing 233 at invocation 35 OREGS command 173
COLORS NOIMPMAC
at invocation 30 at invocation 32
COLOURS
at invocation 30
NOINVPSW 195
at invocation 32
P
PA1 key 60
COMMAND 45, 48, 57 NOMODMAP
PACK ASMLANGX option 280
at invocation 30 at invocation 34
PACKED command 173
COMPACT NOPROFIL
parameter
setting 119 at invocation 36
variable
described 194 NOSTOPNP 168, 202, 203
displaying list 174
displaying 81 at invocation 38
parameter list
DMSO NOSTOPST 202
passed to IDF 23
at invocation 30 at invocation 38
parameter list passed to IDF 261
EXITEXEC 231 NOSVC97 6, 44
parameters
at invocation 31 at invocation 39
passing to CMS program 55
FASTPATH 41, 42 NUCEXT 56
passing to TSO program 45
at invocation 31 at invocation 35
passing to z/OS batch program 46
FULLQUAL 89, 248, 249 OFFSET 170
passing to z/VSE program 65
at invocation 31 at invocation 35
PARMS command 174
HEXDISP OLDBREAK
PASSPGM option
at invocation 32 at invocation 35
at invocation 36
showing displacements 249 PASSPGM
PATH option 41, 60, 76
HEXINPUT at invocation 36
at invocation 31
at invocation 32 PATH 41, 76
PATHFILE option 41, 76
IDF Language Support at invocation 31
at invocation 31
display 146 PATHFILE 41, 42, 76
pattern matching a variable name 168
IMPMACRO at invocation 31
PAUSE command 174
at invocation 32 PROFILE 221
PER 27
INVPSW 195 at invocation 36
advantages and disadvantages of
at invocation 32 QWDUMP
use 61
ISA at invocation 36
disabled 58
at invocation 33 RISK 155, 195, 257
enabling 62
LIBE at invocation 36
examining setting from within a
at invocation 33 RLOG 87, 186
macro 260
LINE 62 at invocation 37
operating 73
at invocation 33 ROWSTYLE
performance impact 307
LSMDEBUG at invocation 37
PER command 174
at invocation 34
330 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
PF keys
commands invoked by 99
Q registers (continued)
not displayed 48, 58
default settings 86 QQUIT command 182 obtaining display of 173
examining settings from within a QUALIFY command 181 REGS command 183
macro 261 QUIET ASMLANGX option 279 REGS64 command 184
redefining 175 QUIET command 181 REGSTOP
redefinition of 86 QUIETLY command 181 setting from within a macro 196
settings QUIT command 182 RegStops
displayed 175 QWDUMP option availability of 62
PFK command 9, 175 at invocation 36 REGSTOPS command 105
PFKDISP command 175 requirements
PFM ASMLANGX option 281 assembly 17
PFT ASMLANGX option 281 R program build
PLOCATES command 176 R0-R15 commands 187 HLASM 17
pointer variable R1, flag byte 55 RESTORE command 184
displaying Located variables 176 railroad track format, how to read xi restoring
extracting Located variables 261 RCQUIT command 182 IDF settings 184
obtaining Located variables 261 Read Buffer command 52 RETRIEVE command 184
preparation READ BUFFER command 62, 69 return codes
assembly 17 REFRESH command 183 ASMLANGX 21
PRESERVE command 177 registers EXTRACT 241
preserving Access passing at exit from IDF 182
IDF settings 177 change contents from a REXX
PREVIOUS command 177 macro 190 commands available to 225
PROFILE macro display 107 debugging CMS programs invoked
invocation option overrides setting in initial contents 41 by 60
macro 44 modifying 74 debugging TSO programs invoked
loading module and symbols 153 obtaining contents from a by 50
loading target program with macro 242 default ADDRESS 225
LIBE 151 obtaining display of 74 functions
loading target program with AR debugging 7
LOAD 152 referring to in expressions 88 functions, debugging 6
passing options as invocation Control macros 128, 148
parameters 23, 26 modifying 74 variables 128, 148
setting MODE 258 obtaining display of 74, 120 RIGHT command 185
setting PSWSTEAL breakpoints 180 Floating Point RISK option 155, 195, 257
writing 221 initial contents 41 at invocation 36
PROFILE option 221 FPC RLOG command 87, 185, 213
at invocation 36 changing contents from a RLOG option 87, 186
PROGCHK command 178 macro 134 ROWSTYLE option
PROGCK command 178 FPR at invocation 37
program build changing contents from a RUN command 186
requirements macro 134 RUNEXIT command 186
HLASM 17 initial contents 41
program checks modifying 74
passing to CMS 36
passing to z/OS 36
obtaining contents from a S
macro 263 SALIMIT command 187
passing to z/VSE 36 obtaining display of 74, 173, 183 SAREGS command 187
program debug GPR SAREGS option
getting started 9 changing contents from a setting 187
program preparation macro 135 SAVE command 177
getting started 9 initial contents 40 saving
programmed symbol sets modifying 74 IDF settings 177
used by target program 62, 69 monitoring 72 SBORDER option
programmed symbol sets used by target obtaining contents from a at invocation 37
program 52 macro 263 SCDACTIV option
PSW obtaining display of 74, 183 at invocation 37
changing from within a macro 195 referring to in expressions 88 screen
modifying 74 GPRG customization 141
obtaining contents from a macro 263 changing contents from a scroll
obtaining display of 74 macro 136 backward a window 177
stealing 63 GPRH forward a window 169
PSW command 135 changing contents from a SCROLL command 147
PSWSTEAL command 179, 244 macro 136 scrolling
monitoring 104 array display 139
determining registers from a LSM Information window 139
macro 263 status display 139
Index 331
scrolling (continued) source code (continued) structure (continued)
structure display 139 locating specific 129 display (continued)
union display 139 search intermediate components 123
variable display 139 forward 129, 154 levels visible 123, 156
search ISPF editor style 129 major component 156
limits of 188 reverse 129, 154 scrolling 147
memory for a string 188 XEDIT style 154 display scrolling 139
SEARCH command 188 source records extraction 266
self-load offset extraction 265 information
setting 189 obtaining 265 obtaining 266
SELFNUCX command 189 SPACE command 201 STRUCTURE command 204
SELFNUCX offset SPACE option STXIT code
controlling start offset with setting 201 on z/VSE 68
SELFNUCX 189 stack STXIT OC 68
obtaining from macro 264 IDF settings 177, 184 SUBSET
setting 189 stacked items xii access to 56
SELFNUCX option 45, 57 statement numbers SUBSET command 206
at invocation 38 source code SUBSET, CMS
SEQ ASMLANGX option 281 display 197 access to 56
SET ADSTOP command 190 statement scope substrings 95
SET AREG command 190 extraction 263 subtasks
SET BREAK command 190 obtaining 263 on z/VSE 67
SET COMMAND command 191 status SVC
SET EXITEXEC command 191, 231 display obtaining trace status from
issuing before CMPEXIT option 233 scrolling 147 macro 267
SET GLOBAL command 193 display scrolling 139 SVC command 206
SET GLOBAL STEM command 192 STATUS command 147, 201 SVC trapping
SET ICOUNT command 193 status information enabling and disabling from
SET MODULE command 158 extraction 254 macro 206
SET OFFSET command 193 Global Storage 136 SVC97 option 6, 44
SET OPTION command 194 obtaining 254, 262 at invocation 39
SET PSW command 195 STEM command 148 SWAP command 206
SET REGSTOP command 196 STEP command 202 SWAP option 52, 62, 69, 206
SET SIZE command 196 STMTSTEP command 202 at invocation 39
setting file mode 158 STOKEY command 203 SYMBOL command 207
setting qualified module 181 STOPNOP option 168, 202, 203 symbolic dump 78
settings at invocation 38 symbols
IDF Language Support STOPSTMT option 202 dropping 125
display 146 at invocation 38 user-defined 207
short name storage SYMBOLS 267
how derived 127 allocation map synonyms 139
SHOW command 197 display 204 syntax notation, description xi
simulating a program check 178 extraction 266 SYSTEM option
SIZE command 198 obtaining 266 at invocation 39
size of program displaying
setting 196 in disassembly format 75, 123
skipped subroutines
examining from a macro 265
in dump format 77, 125
examining from within a macro 256,
T
task information
setting and clearing 200 257
display 208
SKIPSTEP command 42, 92, 168, 200 key 203
extraction 268
SKIPSTEPS modifying
obtaining 268
how to clear 82 from a macro 154, 155
TASKS command 208
source code from a window 5, 75, 79
terminal
display storage areas
device address 33
BOTH source and DISASM 137, monitoring 104
TITLE command 208
197 STOREMAP command 204
title text of window 208
comments 137, 197 string
TOP command 209
declarations 137, 197 locate 154
TRACEALL option 155, 195, 257
DISASM only 137, 197 searching for 188
at invocation 39
enabling 197 structure
TRANS option 56
excluding 137 based 93, 205
at invocation 40
macro expansions 137, 197 data attributes
Transient Area
positioning 111, 130, 149, 209 obtaining 266
programs, debugging 56
source line numbers 197 data display 204
TRIGGER LOAD command 209
source only 137, 197 obtaining 266
TSO
source statement numbers 197 display
IKJSCAN 45
locate string in 154 detail 123, 156
programs, debugging 46
332 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
TSO TEST variable (continued) windows (continued)
CP option 45 optimized moving 161
TSOEXEC 44, 47 alteration 116 moving to top of screen 172
type attributes parameter Old Registers window 82, 173
display 210 displaying list 174 opening 171
extraction 269 pointer Options window 81
variable displaying Located variables 176 refreshing contents 183
display 210 extracting Located variables 261 scrolling left 150
obtaining 269 obtaining Located variables 261 scrolling right 185
TYPE command 210 type attributes selecting 85
display 210 sizing 198
obtaining 269 Skipped Subroutines window 82
U VARIABLE 93
VARIABLE command 212
opening and closing 200
summary of types 71
unformatted dump 78
variable data Target Status 201
UNFTDUMP option
format Target Status window 83
at invocation 40
bit variables 110 Window Specification 85
union
character variables 115 writing macros 225
based 93, 205
class 133
data display 204
default 133
display
detail 123
displaying 133
fixed variables 130
X
intermediate components 123 XA Exploitation
float variables 131
levels visible 123 memory constrained
individual 133
display scrolling 139 environments 18
inherited 133
Union XEDEXIT command 217
packed decimal variables 173
display XPATH command 149
Zoned decimal variables 217
detail 156
Variables
levels visible 156
REXX
major component 156
UNION command 210
set by EXTRACT command 237 Z
VCHANGE command 213 z/OS
UNTIL command 211
VERSION command 148, 213 data set conventions 43
UP command 177
version of IDF DD conventions 43
obtaining from macro 271 optional data set file allocations 43
versions supported 6 subtasking, applications that use 52
V VS command 214 z/OS documents 313
VALUE command 211 VSEP command 214 z/OS programs
variable debugging 43
based 93, 95 z/VM documents 313, 314
data address
obtaining 272
W z/VSE
data set conventions 65
WATCH command 214
data attributes programs
watchpoints 214
display 210 debugging 65
WHERE command 216
obtaining 269, 270, 271 z/VSE documents 314
windows
data display 93, 212 z/VSE programs
Additional Floating-Point Registers
obtaining 270, 271, 272 debugging 65
window 72
data location ZONED command 217
opening and closing 106
obtaining 272
AdStops window 72
data value
opening and closing 104, 105
obtaining 272
as target of command 85
display
Break window 73
declarations 114, 119, 201
opening and closing 111, 121
minimal 119
closing 117
scrolling 139, 147
controlling title text 208
single line 119
Current Registers window 74, 183
display scrolling 139
Disassembly window 75, 123
extraction 269, 270, 271, 272
Dump mode 77
information
Dump window 125
obtaining 269, 270, 271, 272
display previous data 109
locator
Entry Point Names window 79
displaying Located variables 176
examples 83
extracting Located variables 261
LSM information 204
obtaining Located variables 261
LSM Information window 80, 107,
names
212
displaying list 168
maximizing 157
extracting list 259
Minimized Windows Viewer 80
minimizing on the screen 158
Index 333
334 HLASM V1R6 Toolkit Feature Interactive Debug Facility User's Guide
IBM®
GC26-8709-09