Debug data block

When you specify the -g or DEBUG option, a new debug data block is added for each CSECT in the Metal C generated assembly file. The debug data block can be used to check whether the debug side file matches the object file. When a debug session starts, the debugger checks whether the debug data block for the first CSECT exists. If it exists, the debugger retrieves the information from the debug data block.

The debug data block contains the following information:
Debug data block signature
An 8-byte field that is set to 0x'00C300C300D50200'. The last two bytes of the signature is 0x'0200', in which the first byte 0x'02' is the block signature for the debug data block, while the second byte 0x'00' represents the current version of the debug data block.
Size of the debug data block
A 4-byte field that represents the size of the debug data block.
Reserved bytes
A 4-byte field that is reserved for future usage.
MD5 signature
A 16-byte field that is derived from the time stamp.
Source file name
A string with 2-byte prefix length, containing the source file name.
Debug side file name
A string with 2-byte prefix length, containing the debug side file name.

Example

The following example shows a sample debug data block followed by a CSECT end label.
Figure 1. Debug data block generated
@@DDB@@  DC XL8'00C300C300D50200'     
         DC A(@@DBGE@@-@@DBGB@@)      
         DC XL4'00000000'             
@@DSIG@@ DC X16'194ab396eb68ebd68d476285b476abda'     
         DC AL2(23)                                  
         DC C'/home/temp/a.c'
@@DSFN@@ DC AL2(25)                                 
         DC C'/home/temp/a.dbg'
@@DDBE@@ EQU *                                       
@@END@@  EQU *                                   
Labels for @@DDBE@@ and @@END@@ do not have to be the same.