| .equ CV_SIGNATURE_C13, 4 |
| .equ DEBUG_S_SYMBOLS, 0xf1 |
| |
| .equ T_VOID, 0x0003 |
| .equ T_UINT4, 0x0075 |
| |
| .equ LF_MODIFIER, 0x1001 |
| .equ LF_PROCEDURE, 0x1008 |
| .equ LF_ARGLIST, 0x1201 |
| .equ LF_FUNC_ID, 0x1601 |
| .equ LF_BUILDINFO, 0x1603 |
| .equ LF_STRING_ID, 0x1605 |
| |
| .equ S_END, 0x0006 |
| .equ S_FRAMEPROC, 0x1012 |
| .equ S_OBJNAME, 0x1101 |
| .equ S_THUNK32, 0x1102 |
| .equ S_BLOCK32, 0x1103 |
| .equ S_LABEL32, 0x1105 |
| .equ S_REGISTER, 0x1106 |
| .equ S_BPREL32, 0x110b |
| .equ S_GPROC32, 0x1110 |
| .equ S_REGREL32, 0x1111 |
| .equ S_UNAMESPACE, 0x1124 |
| .equ S_FRAMECOOKIE, 0x113a |
| .equ S_COMPILE3, 0x113c |
| .equ S_LOCAL, 0x113e |
| .equ S_DEFRANGE_REGISTER, 0x1141 |
| .equ S_DEFRANGE_FRAMEPOINTER_REL, 0x1142 |
| .equ S_DEFRANGE_SUBFIELD_REGISTER, 0x1143 |
| .equ S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE, 0x1144 |
| .equ S_DEFRANGE_REGISTER_REL, 0x1145 |
| .equ S_BUILDINFO, 0x114c |
| .equ S_INLINESITE, 0x114d |
| .equ S_INLINESITE_END, 0x114e |
| .equ S_HEAPALLOCSITE, 0x115e |
| |
| .equ CV_AMD64_RAX, 328 |
| .equ CV_CFL_AMD64, 0xd0 |
| |
| .section ".debug$S", "rn" |
| |
| .long CV_SIGNATURE_C13 |
| |
| .long DEBUG_S_SYMBOLS |
| .long .syms_end - .syms_start |
| |
| .syms_start: |
| |
| .objname1: |
| .short .compile1 - .objname1 - 2 |
| .short S_OBJNAME |
| .long 0 /* signature */ |
| .asciz "syms3.o" |
| |
| .compile1: |
| .short .unamespace1 - .compile1 - 2 |
| .short S_COMPILE3 |
| .long 0 /* flags */ |
| .short CV_CFL_AMD64 /* target processor */ |
| .short 0 /* frontend major */ |
| .short 0 /* frontend minor */ |
| .short 0 /* frontend build */ |
| .short 0 /* frontend qfe */ |
| .short 0 /* backend major */ |
| .short 0 /* backend minor */ |
| .short 0 /* backend build */ |
| .short 0 /* backend qfe */ |
| .asciz "GNU AS" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .unamespace1: |
| .short .sbuildinfo1 - .unamespace1 - 2 |
| .short S_UNAMESPACE |
| .asciz "std" |
| |
| .sbuildinfo1: |
| .short .gproc1 - .sbuildinfo1 - 2 |
| .short S_BUILDINFO |
| .long 0x1007 /* type */ |
| |
| .gproc1: |
| .short .frameproc1 - .gproc1 - 2 |
| .short S_GPROC32 |
| .long 0 /* parent */ |
| .long 0 /* end */ |
| .long 0 /* next symbol */ |
| .long .proc1_end - proc1 /* length */ |
| .long 0 /* debug start offset */ |
| .long 0 /* debug end offset */ |
| .long 0x1001 /* type */ |
| .secrel32 proc1 |
| .secidx proc1 |
| .byte 0 /* flags */ |
| .asciz "proc1" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .frameproc1: |
| .short .framecookie1 - .frameproc1 - 2 |
| .short S_FRAMEPROC |
| .long 0 /* frame size */ |
| .long 0 /* frame padding */ |
| .long 0 /* padding offset */ |
| .long 0 /* size of callee-save registers */ |
| .long 0 /* offset of exception handler */ |
| .short 0 /* section of exception handler */ |
| .long 0 /* flags */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .framecookie1: |
| .short .bprel1 - .framecookie1 - 2 |
| .short S_FRAMECOOKIE |
| .long 8 /* frame-relative offset */ |
| .short CV_AMD64_RAX /* register */ |
| .long 0 /* cookie type (CV_COOKIETYPE_COPY) */ |
| .byte 0 /* flags */ |
| .byte 0xf1 /* padding */ |
| |
| .bprel1: |
| .short .reg1 - .bprel1 - 2 |
| .short S_BPREL32 |
| .long 4 /* BP-relative offset */ |
| .long 0x1008 /* type */ |
| .asciz "foo" |
| |
| .reg1: |
| .short .regrel1 - .reg1 - 2 |
| .short S_REGISTER |
| .long 0x1008 /* type */ |
| .short CV_AMD64_RAX |
| .asciz "bar" |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .regrel1: |
| .short .local1 - .regrel1 - 2 |
| .short S_REGREL32 |
| .long 4 /* offset */ |
| .long 0x1008 /* type */ |
| .short CV_AMD64_RAX |
| .asciz "baz" |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .local1: |
| .short .defrange1 - .local1 - 2 |
| .short S_LOCAL |
| .long 0x1008 /* type */ |
| .short 0 /* flags */ |
| .asciz "local1" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .defrange1: |
| .short .local2 - .defrange1 - 2 |
| .short S_DEFRANGE_REGISTER_REL |
| .short CV_AMD64_RAX |
| .short 0 /* offset parent */ |
| .long 0 /* offset register */ |
| .secrel32 .block1 /* offset */ |
| .secidx .block1 /* section */ |
| .short .block1_end - .block1 /* length */ |
| .short .gap1 - .block1 /* gap 1 offset */ |
| .short .gap1_end - .gap1 /* gap 1 length */ |
| |
| .local2: |
| .short .defrange2 - .local2 - 2 |
| .short S_LOCAL |
| .long 0x1008 /* type */ |
| .short 0 /* flags */ |
| .asciz "local2" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .defrange2: |
| .short .local3 - .defrange2 - 2 |
| .short S_DEFRANGE_FRAMEPOINTER_REL |
| .long 4 /* frame pointer offset */ |
| .secrel32 .block1 /* offset */ |
| .secidx .block1 /* section */ |
| .short .block1_end - .block1 /* length */ |
| .short .gap1 - .block1 /* gap 1 offset */ |
| .short .gap1_end - .gap1 /* gap 1 length */ |
| |
| .local3: |
| .short .defrange3 - .local3 - 2 |
| .short S_LOCAL |
| .long 0x1008 /* type */ |
| .short 0 /* flags */ |
| .asciz "local3" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .defrange3: |
| .short .local4 - .defrange3 - 2 |
| .short S_DEFRANGE_SUBFIELD_REGISTER |
| .short CV_AMD64_RAX |
| .short 0 /* attributes */ |
| .long 4 /* offset in parent variable */ |
| .secrel32 .block1 /* offset */ |
| .secidx .block1 /* section */ |
| .short .block1_end - .block1 /* length */ |
| .short .gap1 - .block1 /* gap 1 offset */ |
| .short .gap1_end - .gap1 /* gap 1 length */ |
| |
| .local4: |
| .short .defrange4 - .local4 - 2 |
| .short S_LOCAL |
| .long 0x1008 /* type */ |
| .short 0 /* flags */ |
| .asciz "local4" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .defrange4: |
| .short .local5 - .defrange4 - 2 |
| .short S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE |
| .long 4 /* frame pointer offset */ |
| |
| .local5: |
| .short .defrange5 - .local5 - 2 |
| .short S_LOCAL |
| .long 0x1008 /* type */ |
| .short 0 /* flags */ |
| .asciz "local5" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .defrange5: |
| .short .inlinesite1 - .defrange5 - 2 |
| .short S_DEFRANGE_REGISTER |
| .short CV_AMD64_RAX |
| .short 0 /* attributes */ |
| .secrel32 .block1 /* offset */ |
| .secidx .block1 /* section */ |
| .short .block1_end - .block1 /* length */ |
| .short .gap1 - .block1 /* gap 1 offset */ |
| .short .gap1_end - .gap1 /* gap 1 length */ |
| |
| .inlinesite1: |
| .short .inlinesite1end - .inlinesite1 - 2 |
| .short S_INLINESITE |
| .long 0 /* parent */ |
| .long 0 /* end */ |
| .long 0x1009 /* inlinee (inline_func) */ |
| |
| .inlinesite1end: |
| .short .sblock1 - .inlinesite1end - 2 |
| .short S_INLINESITE_END |
| |
| .sblock1: |
| .short .label1 - .sblock1 - 2 |
| .short S_BLOCK32 |
| .long 0 /* parent (filled in by linker) */ |
| .long 0 /* end (filled in by linker) */ |
| .long .block1_end - .block1 /* length */ |
| .secrel32 .block1 |
| .secidx .block1 |
| .byte 0 /* name */ |
| .byte 0xf1 /* padding */ |
| |
| .label1: |
| .short .sblock1_end - .label1 - 2 |
| .short S_LABEL32 |
| .secrel32 label |
| .secidx label |
| .byte 0 /* flags */ |
| .asciz "label" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| .sblock1_end: |
| .short .thunk1 - .sblock1_end - 2 |
| .short S_END |
| |
| .thunk1: |
| .short .thunk1_end - .thunk1 - 2 |
| .short S_THUNK32 |
| .long 0 /* parent */ |
| .long 0 /* end */ |
| .long 0 /* next */ |
| .secrel32 thunk |
| .secidx thunk |
| .short .thunk_end - thunk |
| .byte 0 /* THUNK_ORDINAL value */ |
| .asciz "thunk" |
| .byte 0xf1 /* padding */ |
| |
| .thunk1_end: |
| .short .heapallocsite1 - .thunk1_end - 2 |
| .short S_END |
| |
| .heapallocsite1: |
| .short .gproc1_end - .heapallocsite1 - 2 |
| .short S_HEAPALLOCSITE |
| .secrel32 .gap1_end |
| .secidx .gap1_end |
| .short .block1_end - .gap1_end |
| .long 0x1008 /* type */ |
| |
| .gproc1_end: |
| .short .syms_end - .gproc1_end - 2 |
| .short S_END |
| |
| .syms_end: |
| |
| .section ".debug$T", "rn" |
| |
| .long CV_SIGNATURE_C13 |
| |
| /* Type 1000, arglist (uint32_t) */ |
| .arglist1: |
| .short .proctype1 - .arglist1 - 2 |
| .short LF_ARGLIST |
| .long 1 /* no. entries */ |
| .long T_UINT4 |
| |
| /* Type 1001, procedure (return type T_VOID, arglist 1000) */ |
| .proctype1: |
| .short .string1 - .proctype1 - 2 |
| .short LF_PROCEDURE |
| .long T_VOID |
| .byte 0 /* calling convention */ |
| .byte 0 /* attributes */ |
| .short 1 /* no. parameters */ |
| .long 0x1000 |
| |
| /* Type 1002, string "/tmp" (build directory) */ |
| .string1: |
| .short .string2 - .string1 - 2 |
| .short LF_STRING_ID |
| .long 0 /* sub-string */ |
| .asciz "/tmp" |
| .byte 0xf3 /* padding */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| /* Type 1003, string "gcc" (compiler) */ |
| .string2: |
| .short .string3 - .string2 - 2 |
| .short LF_STRING_ID |
| .long 0 /* sub-string */ |
| .asciz "gcc" |
| |
| /* Type 1004, string "tmp.c" (source file) */ |
| .string3: |
| .short .string4 - .string3 - 2 |
| .short LF_STRING_ID |
| .long 0 /* sub-string */ |
| .asciz "tmp.c" |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| /* Type 1005, string "tmp.pdb" (PDB file) */ |
| .string4: |
| .short .string5 - .string4 - 2 |
| .short LF_STRING_ID |
| .long 0 /* sub-string */ |
| .asciz "tmp.pdb" |
| |
| /* Type 1006, string "-gcodeview" (command arguments) */ |
| .string5: |
| .short .buildinfo1 - .string5 - 2 |
| .short LF_STRING_ID |
| .long 0 /* sub-string */ |
| .asciz "-gcodeview" |
| .byte 0xf1 /* padding */ |
| |
| /* Type 1007, build info */ |
| .buildinfo1: |
| .short .mod1 - .buildinfo1 - 2 |
| .short LF_BUILDINFO |
| .short 5 /* count */ |
| .long 0x1002 /* build directory */ |
| .long 0x1003 /* compiler */ |
| .long 0x1004 /* source file */ |
| .long 0x1005 /* PDB file */ |
| .long 0x1006 /* command arguments */ |
| .byte 0xf2 /* padding */ |
| .byte 0xf1 /* padding */ |
| |
| /* Type 1008, const uint32_t */ |
| .mod1: |
| .short .funcid1 - .mod1 - 2 |
| .short LF_MODIFIER |
| .long T_UINT4 |
| .short 1 /* const */ |
| .p2align 2 |
| |
| /* Type 1009, func ID for inline_func */ |
| .funcid1: |
| .short .types_end - .funcid1 - 2 |
| .short LF_FUNC_ID |
| .long 0 /* parent scope */ |
| .long 0x1001 /* type */ |
| .asciz "inline_func" |
| |
| .types_end: |
| |
| .text |
| |
| .global proc1 |
| proc1: |
| .byte 0 |
| .block1: |
| .byte 0 |
| label: |
| .byte 0 |
| .gap1: |
| .byte 0 |
| .gap1_end: |
| .byte 0 |
| .block1_end: |
| .byte 0 |
| .proc1_end: |
| |
| thunk: |
| .byte 0 |
| .thunk_end: |