程序集:如何生成.section .debug_info?

时间:2018-12-06 18:42:49

标签: debugging assembly x86-64 debug-symbols

此问题的更精确版本:Creating debug symbols for gdb manually。 我为我的语言生成了asm代码,并且想要监视变量。 AFAIK,允许这样做的是在

之后定义的
.section        .debug_info,"",@progbits

问题:如何为DWARF生成.section .debug_info(因为我的系统是Linux;但实际上我对任何可行的方法都很好)? 某处是否有本节的文档?

让我们具体说说这个程序:

int sum(int a, int b) { 
    return a+b;
}

生成的asm可以在此处看到(x86-64 gcc 7.3):https://godbolt.org/z/ooTuuO 我认为,这是我需要的一部分:

.Ldebug_info0:
        .long   0x6f
        .value  0x4
        .long   .Ldebug_abbrev0
        .byte   0x8
        .uleb128 0x1
        .long   .LASF0
        .byte   0x4
        .long   .LASF1
        .long   .LASF2
        .quad   .Ltext0
        .quad   .Letext0-.Ltext0
        .long   .Ldebug_line0
        .uleb128 0x2
        .string "sum"
        .byte   0x1
        .byte   0x1
        .long   .LASF3
        .long   0x6b
        .quad   .LFB0
        .quad   .LFE0-.LFB0
        .uleb128 0x1
        .byte   0x9c
        .long   0x6b
        .uleb128 0x3
        .string "a"
        .byte   0x1
        .byte   0x1
        .long   0x6b
        .uleb128 0x2
        .byte   0x91
        .sleb128 -20
        .uleb128 0x3
        .string "b"
        .byte   0x1
        .byte   0x1
        .long   0x6b
        .uleb128 0x2
        .byte   0x91
        .sleb128 -24
        .byte   0
        .uleb128 0x4
        .byte   0x4
        .byte   0x5
        .string "int"
        .byte   0

我可以看到变量名,但是除此之外我什么都不懂。我尝试查看的内容:

换句话说,我找不到此部分的文档。你知道我在哪里可以找到它吗?

0 个答案:

没有答案