.equ CV_SIGNATURE_C13, 4 .equ DEBUG_S_STRINGTABLE, 0xf3 .equ DEBUG_S_FILECHKSMS, 0xf4 .equ DEBUG_S_INLINEELINES, 0xf6 .equ CHKSUM_TYPE_MD5, 1 .equ NUM_MD5_BYTES, 16 .equ T_VOID, 0x0003 .equ T_UINT4, 0x0075 .equ LF_ARGLIST, 0x1201 .equ LF_PROCEDURE, 0x1008 .equ LF_FUNC_ID, 0x1601 .equ LF_STRING_ID, 0x1605 .equ CV_INLINEE_SOURCE_LINE_SIGNATURE, 0 .section ".debug$T", "rn" .long CV_SIGNATURE_C13 /* Type 1000, string "world" */ .string1: .short .arglist1 - .string1 - 2 .short LF_STRING_ID .long 0 /* sub-string */ .asciz "world" .byte 0xf2 /* padding */ .byte 0xf1 /* padding */ /* Type 1001, arglist (uint32_t) */ .arglist1: .short .proctype1 - .arglist1 - 2 .short LF_ARGLIST .long 1 /* no. entries */ .long T_UINT4 /* Type 1002, procedure (return type T_VOID, arglist 1001) */ .proctype1: .short .funcid1 - .proctype1 - 2 .short LF_PROCEDURE .long T_VOID .byte 0 /* calling convention */ .byte 0 /* attributes */ .short 1 /* no. parameters */ .long 0x1001 /* Type 1003, func ID for proc1 */ .funcid1: .short .funcid2 - .funcid1 - 2 .short LF_FUNC_ID .long 0 /* parent scope */ .long 0x1002 /* type */ .asciz "proc1" .byte 0xf2 /* padding */ .byte 0xf1 /* padding */ /* Type 1004, func ID for proc2 */ .funcid2: .short .types_end - .funcid2 - 2 .short LF_FUNC_ID .long 0 /* parent scope */ .long 0x1002 /* type */ .asciz "proc2" .byte 0xf2 /* padding */ .byte 0xf1 /* padding */ .types_end: .section ".debug$S", "rn" .long CV_SIGNATURE_C13 /* *** STRINGTABLE 00000000 00000001 foo.c 00000007 bar.c */ .long DEBUG_S_STRINGTABLE .long .strings_end - .strings_start .strings_start: .asciz "" .src1: .asciz "foo.c" .src2: .asciz "bar.c" .strings_end: .balign 4 /* *** FILECHKSUMS FileId St.Offset Cb Type ChksumBytes 0 00000001 10 MD5 67452301EFCDAB8998BADCFE10234567 18 00000007 10 MD5 98BADCFE1023456767452301EFCDAB89 */ .long DEBUG_S_FILECHKSMS .long .chksms_end - .chksms_start .chksms_start: .file1: .long .src1 - .strings_start .byte NUM_MD5_BYTES .byte CHKSUM_TYPE_MD5 .long 0x01234567 .long 0x89abcdef .long 0xfedcba98 .long 0x67452310 .short 0 /* padding */ .file2: .long .src2 - .strings_start .byte NUM_MD5_BYTES .byte CHKSUM_TYPE_MD5 .long 0xfedcba98 .long 0x67452310 .long 0x01234567 .long 0x89abcdef .short 0 /* padding */ .chksms_end: .balign 4 /* *** INLINEE LINES InlineeId FileId StaringLine 1003 0 42 1004 18 28 */ .long DEBUG_S_INLINEELINES .long .lines_end - .lines_start .lines_start: .long CV_INLINEE_SOURCE_LINE_SIGNATURE .long 0x1003 .long .file1 - .chksms_start .long 42 .long 0x1004 .long .file2 - .chksms_start .long 28 .lines_end: