Assembly 编译器资源管理器中的调试信息
编译器资源管理器中的“调试部分”是什么Assembly 编译器资源管理器中的调试信息,assembly,x86,compiler-construction,compiler-explorer,Assembly,X86,Compiler Construction,Compiler Explorer,编译器资源管理器中的“调试部分”是什么 .Letext0: .section .debug_info,"",@progbits .Ldebug_info0: .long 0x5d .value 0x4 .long .Ldebug_abbrev0 .byte 0x8 .uleb128 0x1 .long .LASF0 .
.Letext0:
.section .debug_info,"",@progbits
.Ldebug_info0:
.long 0x5d
.value 0x4
.long .Ldebug_abbrev0
.byte 0x8
.uleb128 0x1
.long .LASF0
.byte 0xc
.long .LASF1
.long .LASF2
.quad .Ltext0
.quad .Letext0-.Ltext0
.long .Ldebug_line0
.uleb128 0x2
这是编译器资源管理器内部要使用的东西,还是它具体显示了什么?我知道我可以通过过滤掉指令和未使用的标签来解决这个问题,但是这一部分是什么
下面是一个例子:。这是调试器的数据。@Jester你能详细说明一下吗?可能是输出中的几行代码,以及调试器如何使用这些代码。dwarf格式相当复杂。随着
.loc
和.cfi
填充,这些数据使调试器能够将源代码行映射到指令、了解变量类型、执行堆栈遍历等。谷歌“dwarf debug info”。例如。这是一种元数据,它可以让调试器知道每个源代码行(编译器资源管理器用于颜色高亮显示)包含哪些asm指令,以及每个C变量的值在任何时间点的位置,我认为它可以通过info vars
或print my_var
的寄存器跟踪值。