About Common Debug Architecture

Common Debug Architecture (CDA) was introduced in z/OS® V1R5 to provide a consistent format for debug information on z/OS. As such, it provides an opportunity to work towards a common debug information format across the various languages and operating systems that are supported on the IBM® zSeries eServer™ platform. The product is implemented in the z/OS CDA libraries component of the z/OS Run-Time Library Extensions element of z/OS (V1R5 and higher).

CDA-compliant applications can store DWARF debugging information in an ELF object file. However, the DWARF debugging information can be stored in any container. For example, in the case of the C/C++ compiler, the debug information is stored in a separate ELF object file, rather than the object file. In the case of the COBOL compiler, the debug information is stored in a GOFF object file, as well as the program object. In either approach, memory usage is minimized by avoiding the loading of debug information when the executable module is loaded into memory.

The DWARF industry-standard debugging information format

The DWARF 4 debugging format is an industry-standard format developed by the UNIX International Programming Languages Special Interest Group (SIG). It is designed to meet the symbolic, source-level debugging needs of different languages in a unified fashion by supplying language-independent debugging information. The debugging information format is open-ended, allowing for the addition of debugging information that accommodates new languages or debugger capabilities.

DWARF was developed by the UNIX International Programming Languages Special Interest Group (SIG).

The use of DWARF has two distinct advantages:
  • It provides a stable and maintainable debug information format for all languages.
  • It facilitates porting program analysis and debug applications to z/OS from other DWARF-compliant platforms.

Executable and Linking Format (ELF) application binary interfaces (ABIs)

Using a separate ELF object file to store debugging information enables the program analysis application to load specific information only as it is needed. With the z/OSXL C/C++ compiler, use the DEBUG option to create the separate ELF object file, which has a *.dbg extension.

Note: In this information, those ELF object files may be referred to as an ELF object file, an ELF object, or an ELF file. Such a file stores only DWARF debugging information.

GOFF program objects

Using a GOFF program object file enables the program analysis application to load specific information only as it is needed. With the Enterprise COBOL compiler, use the TEST option to create DWARF debugging information in the GOFF object file. The debugging information is stored in a NOLOAD class, and will not be loaded into memory when the program object is loaded into memory.