AT ENTRY command

Defines a breakpoint at the specified entry point in the specified block.

Read syntax diagramSkip visual syntax diagramATevery_clauseENTRYblock_spec(,block_spec)*WHENconditioncommand;
*
Sets a breakpoint at every ENTRY of any block.
command
A valid z/OS® Debugger command. If you are using remote debug mode, you can specify only commands that are supported in remote debug mode.
condition
A valid z/OS Debugger conditional expression.
Usage notes
  • For VS COBOL II programs, z/OS Debugger supports only the AT ENTRY * command.
  • To specify an AT ENTRY breakpoint for a program that is not currently known to z/OS Debugger, you must do one of the following:
    • If the name of the program is the same as the block_spec, you do not need to qualify the block_spec with the name of the program.
    • If the name of the program is not the same as the block_spec, you need to qualify the block_spec with a program name. When z/OS Debugger detects a program name that matches the one you specified, it sets the breakpoint.
  • An ENTRY breakpoint set for a compile unit that becomes nonactive (one that is not in the current enclave), is suspended until the compile unit becomes active. An ENTRY breakpoint set for a compile unit that is deleted from storage is suspended until the compile unit is reloaded. A suspended breakpoint cannot be triggered until it is reactivated.
  • For a CICS® application on z/OS Debugger, this breakpoint is cleared at the end of the last process in the application. For a non-CICS application on z/OS Debugger, it is cleared at the end of a process.
  • ENTRY breakpoints for blocks in a fetched or loaded program are converted to deferred breakpoints when that program is released.
  • The AT ENTRY command cannot be used while you replay recorded statements by using the PLAYBACK commands.
  • You cannot use the AT ENTRY command to stop at the entry to a Language Environment® MAIN routine for an enclave other than the first enclave if you do not have debug data available for the containing compile unit.
  • You can restrict the circumstances under which the AT ENTRY break point is raised by specifying a WHEN condition. If a WHEN condition is specified, z/OS Debugger stops at the AT ENTRY break point if the specified entry point matches the current entry point and the WHEN condition is true.
  • The following conditional operators can be used in a condition:
    =
    Compare the two operands for equality.
    ¬=
    Compare the two operands for inequality.
    <
    Determines whether the left operand is less than the right operand.
    >
    Determines whether the left operand is greater than the right operand.
    <=
    Determines whether the left operand is less than or equal to the right operand.
    >=
    Determines whether the left operand is greater than or equal to the right operand.
    &
    Logical "and" operation.
    |
    Logical "or" operation.
  • If you use the AT ENTRY command with a WHEN condition, every time z/OS Debugger reaches the entry, it evaluates the condition. If the condition evaluates to true, z/OS Debugger stops and runs the command associated with the breakpoint.
  • When z/OS Debugger evaluates the condition and the condition is invalid, z/OS Debugger does one of the following actions:
    • If SET WARNING is set to ON, z/OS Debugger stops and displays a message that it could not evaluate the condition. You need to enter a command to indicate what action you want z/OS Debugger to take.
    • If SET WARNING is set to OFF, z/OS Debugger does not stop nor display a message that it could not evaluate the condition. z/OS Debugger continues running the program.
  • A deferred AT ENTRY command creates an implicit NAMES INCLUDE for the target of the deferred AT ENTRY.
  • You cannot use the AT ENTRY command to stop at the entry of a nested block in a C or C++ program. A nested block is a group of statements delimited by { and }. The compiler assigns a name to these blocks using the following pattern: %BLOCKn, where n is a sequentially-assigned number.

Examples

  • At the entry of program subrx, initialize variable ix and continue program execution. The current programming language setting is COBOL.
    AT ENTRY subrx PERFORM
      SET ix TO 5;
      GO;
    END-PERFORM;
  • At the entry of program myprog with parameter myparm, to stop at the entry point to myprog only when myparm equals 100, enter the following command:
    AT ENTRY myprog WHEN myparm=100;

Refer to the following topics for more information related to the material discussed in this topic.