SET DYNDEBUG command

Controls the activation or deactivation of the Dynamic Debug facility.

The Dynamic Debug facility must be activated in order to debug the following types of programs:

  • COBOL programs compiled with the Enterprise COBOL for z/OS® Version 4 compiler (and earlier) compiled with the NONE or NOHOOK suboptions of the TEST compiler option.
  • COBOL programs compiled with the Enterprise COBOL for z/OS Version 5 compiler compiled with the TEST compiler option.
  • PL/I programs compiled with Enterprise PL/I for z/OS, Version 3 Release 4 or later, and the NOHOOK suboption of the TEST compiler option
  • assembler programs
  • disassembled programs (using the disassembly view)
  • LangX COBOL programs1
  • programs that run without the Language Environment run time1

You can use the Dynamic Debug facility to improve the performance of programs with compiled-in hooks (compiled with COBOL, C/C++, and PL/I compilers) while you debug them.

The initial setting of DYNDEBUG can be controlled by the EQAOPTS DYNDEBUG command. If no EQAOPTS DYNDEBUG command is used, the initial setting in ON.

Read syntax diagramSkip visual syntax diagram SET DYNDEBUG ONOFF ;
ON
Activates the Dynamic Debug facility.
OFF
Deactivates the Dynamic Debug facility.

Usage notes

  • After a dynamic debug hook is inserted, either explicitly or implicitly, into any program during a debug session, you cannot change the setting of DYNDEBUG.
  • You can use this command in remote debug mode.
  • This command does not support 64-bit programs.
  • You can debug COBOL programs compiled with the NOHOOK suboption of the TEST compiler option of Enterprise COBOL for z/OS, Version 4, with the Dynamic Debug facility.
  • To debug COBOL programs compiled with the TEST(NONE) compiler option and use the Dynamic Debug facility, you must compile with one of the following compilers:
    • Enterprise COBOL for z/OS and OS/390®, Version 3
    • COBOL for OS/390 & VM, Version 2 Release 2
    • COBOL for OS/390 & VM, Version 2 Release 1, with APAR PQ40298
  • The Dynamic Debug facility does not support attention interrupts for assembler, disassembly, or LangX COBOL programs or for programs compiled using the following suboptions of the compilers:
    • NOHOOK suboption of the TEST compiler option for the following compilers:
      • Enterprise COBOL for z/OS, Version 4
      • Enterprise PL/I for z/OS, Version 3.4 or later
    • NONE suboption of the TEST compiler option for the following compilers:
      • Enterprise COBOL for z/OS and OS/390, Version 3
      • COBOL for OS/390 & VM, Version 2
  • When the following compilers are used with the suboption of the TEST compiler option that adds compiled-in hooks, the Dynamic Debug facility can be used to add hooks at run time, which z/OS Debugger uses instead of the compiled-in hooks. This can improve the performance of the program while running under the control of z/OS Debugger.
    • Any COBOL compiler supported by z/OS Debugger
    • Any C/C++ compiler supported by z/OS Debugger
    • Any PL/I compiler supported by z/OS Debugger
  • Refer to your system administrator to determine if the Dynamic Debug facility is installed on your system.
  • The same program compiled with different TEST options may halt execution at different locations or the same scenarios. For instance, if you compile a program with TEST(ALL,...) and step through the first three lines, execution is halted on line four. However, if you compile the same program with TEST(NONE,SYM,...) and step through the first three lines, execution is halted on line five. The difference is due to optimization techniques used by the compiler.
A small arrowhead indicates where a z/OS Debugger would stop if the same program were compiled in two different ways.
Program compiled with TEST(ALL) Program compiled with TEST(NONE)
000001 MOVE... 000001 MOVE...
000002 ADD... 000002 ADD...
►000003 LABEL: ... 000003 LABEL: ...
000004 MOVE... ►000004 MOVE...

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

1 In non-CICS® environments, SVC screening must be enabled to debug LangX COBOL programs, programs that run without the Language Environment® runtime, or programs that are loaded by using the MVS LOAD and LINK macros. See IBM® z/OS Debugger Customization Guide for instructions on how to manage SVC screening.