HLASM Toolkit Feature Interactive Debug Facility User's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Arguments and cursor positioning

HLASM Toolkit Feature Interactive Debug Facility User's Guide
GC26-8709-07

A number of IDF commands accept arguments. For example, the BREAK command accepts an argument, which is the address at which a breakpoint is to be set. This section describes the method used by IDF to determine what argument was provided.

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.

The following examples show how this works in practice:

  • When a register contains the address of an area you want to dump or disassemble, place the cursor in the register and press the DUMP or DISASM PF key.
  • If a Disassembly window is open, you can place the cursor in the first input field where the instruction's hexadecimal value is shown, and press the BREAK key to set a breakpoint on that instruction.
  • If you have dumped a control block that contains a "link" word, place the cursor in the link word and press the DUMP key. This makes the link word the first one shown. If you press DUMP again, IDF "follows" the link and displays the next control block.
z/VM
  • If you have dumped a storage area that is being altered unintentionally, you can place the cursor in the Dump window and issue the ADSTOPS command to set the start of an address modification range, then move the cursor to the end of the area and issue the ADSTOPS command again to set the end of the range shown.

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.

Here is how IDF determines the argument:
  1. If the command does not accept an argument, no argument is sought.
  2. If an expression is entered on the command line, that expression is evaluated as the supplied argument.
  3. If the cursor is on the command line, but no expression is entered there, IDF considers that no argument is supplied.
  4. If the cursor is in an unprotected field that is not the command line, IDF attempts to use that cursor position as an indication of the argument that the operator needs, as follows:
    1. If the cursor is in a floating-point register, or any field shown on the Break window, IDF considers that no argument is supplied.
    2. If the cursor is in a general-purpose register, IDF considers the low-order 24 bits, or the low-order 31 bits if in AMODE31, or 64-bits if in AMODE64, of the contents of that register is the supplied argument. If the access registers are displayed, then the DUMP and OPEN DUMP commands use the ALET contained in the access register in addition to the address contained in the associated general-purpose register. This applies to the registers displayed in both the Current Registers window and the Old Registers window.
    3. If the cursor is in the PSW, IDF considers the address part of the PSW is the supplied argument. This applies to the PSW displayed in both the Current Registers window and the Old Registers window.
    4. If the cursor is in a disassembled instruction, the following rules apply:
      1. All commands except DISASM and OPEN DISASM use the address of the halfword the cursor is in.
      2. The DISASM and OPEN DISASM commands use the address of the halfword the cursor is in, unless the field the cursor is in is both the first field disassembled and a branch instruction, when the commands use the effective address of the branch instruction.
    5. If the cursor is in the protected portion of a disassemble line, the starting address of the instruction disassembled is used.
    6. If the cursor is in a dump field, the following rules apply:
      1. All commands except DUMP and OPEN DUMP use the address of the beginning of the hexadecimal field the cursor is in, or the exact address of the character the cursor is on if it is in the character portion of the display.
      2. The DUMP and OPEN DUMP commands use the address of the beginning of the hexadecimal field the cursor is in, unless the field is both a fullword field and the first field in the dump display, in which case the commands use the low-order 24 bits, the low-order 31 bits if in AMODE31, or the first two words if in AMODE64, of the contents of the field.
    7. If the cursor is in the protected portion of a dump line, the starting address of the dump line is used.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014