Removing hooks

One option for increasing the performance of your program is to compile with a minimum of hooks or with no hooks.

Independent studies show that performance degradation is negligible because of hook-overhead for PL/I programs. Also, in the event you need to request an attention interrupt, z/OS Debugger is not able to regain control without compiled-in hooks. In such a case you can request an interrupt three times. After the third time, z/OS Debugger is able to stop program execution and prompt you to enter QUIT or GO. If you enter QUIT, your z/OS Debugger session ends. If you enter GO, control is returned to your application.

Programs compiled with certain suboptions of the TEST compiler option have hooks inserted at compile time. However, if the Dynamic Debug facility is activated (which is the default, unless altered by the DYNDEBUG EQAOPTS command) and the programs are compiled with certain compilers, the compiled-in hooks are replaced with runtime hooks. This replacement is done to improve the performance of z/OS Debugger. Certain path hook functions are limited when you use the Dynamic Debug facility. To enable these functions, enter the SET DYNDEBUG OFF command, which deactivates the Dynamic Debug facility. See IBM z/OS Debugger Reference and Messages for a description of these commands.

It is a good idea to examine the benefits of maintaining hooks in light of the performance overhead for that particular program.