How the Dynamic Debug facility can help you get maximum performance without hooks

In the following situations, you can compile or create a program without hooks. Then, you can use the Dynamic Debug facility to insert hooks at runtime whenever you set a breakpoint or enter the STEP command:

  • Assembler, disassembly, and LangX COBOL programs do not contain hooks.
  • Enterprise COBOL for z/OS® Version 5 always generates programs without hooks.
  • If you use Enterprise COBOL for z/OS, Version 4, you can compile your programs without hooks by using the TEST(NOHOOK) compiler option.
  • If you use one of the following compilers, you can compile your programs without hooks by using the TEST(NONE) compiler option:
    • 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
  • If you use the Enterprise PL/I for z/OS, Version 3.4 or later, compiler, you can compile your programs without hooks by using the TEST(NOHOOK) compiler option.

The Dynamic Debug facility can also help improve the performance of z/OS Debugger while debugging programs compiled with any of the following compilers:

  • any COBOL compiler supported by z/OS Debugger
  • any PL/I compiler supported by z/OS Debugger
  • any C/C++ compiler supported by z/OS Debugger

When you compile with one the following compilers and have the compiler insert hooks, you can enhance the program's performance while you debug it by using the Dynamic Debug facility:

  • any COBOL compiler supported by z/OS Debugger
  • any PL/I compiler supported by z/OS Debugger
  • any C/C++ compiler supported by z/OS Debugger

When you start z/OS Debugger, the Dynamic Debug facility is activated unless you change the default by using the DYNDEBUG EQAOPTS command. If the DYNDEBUG EQAOPTS command was used to change the default to DYNDEBUG OFF, you can activate it by using the SET DYNDEBUG ON z/OS Debugger command. Note that the SET DYNDEBUG ON z/OS Debugger command must be issued before you enter the STEP or GO command. If the Dynamic Debug facility is not active, z/OS Debugger uses the hooks inserted by the compiler, instead of the hooks inserted by the Dynamic Debug facility.