Understanding what debug tables do and where to save them

The debug tables contain descriptions of variables, their attributes, and their location in storage. z/OS® Debugger uses these descriptions when it references variables and the statement table used to set breakpoints or identify the current statement. The debug tables can be stored in the program object of the program or in a separate debug file. You can save debug tables in a separate debug file if you compile or assemble your programs with one of the supported compilers or assemble as listed in Choosing compiler options for debugging.

You can save debug tables either in a separate debug file or in the program object, according to your development practices.
  • Saving symbol tables in a separate debug file can reduce the size of the program object for your program.
  • Including debug tables in your program object eliminates the need for having a separate file for debugging.

For C and C++ programs, debug tables can be saved in a separate debug file (.dbg file) by specifying the FORMAT(DWARF) suboption of the DEBUG compiler option. z/OS Debugger supports the DEBUG compiler option shipped with z/OS C/C++ Version 1.6 or later.

Programs compiled with the Enterprise COBOL for z/OS Version 5 compiler, Version 6 Release 1 compiler or Version 6 Release 2 and above compiler with the TEST(NOSEPARATE) compiler option have all of their debug information (including the symbol table) stored in a NOLOAD segment of the program object. This segment is only loaded into memory when you are debugging the program object.