gpt4 book ai didi

dwarf - DW_AT_location 的用途和意义

转载 作者:行者123 更新时间:2023-12-05 03:15:52 26 4
gpt4 key购买 nike

我想知道使用属性 DW_AT_location 进行调试。它是 dwarf 指定用于调试的属性之一,但无法真正理解它到底代表什么。以及当我们编译代码时应该什么时候发出这个属性。

最佳答案

来自 DWARF 3 规范 (http://dwarfstd.org/doc/Dwarf3.pdf):

2.16 Data Locations Any debugging information entry describing a data object, which includes variables, parameters, common blocks and the like, may have a DW_AT_location attribute, whose value is a location description (see Section 2.6).

DW_AT_location 属性的值是一个位置表达式。位置表达式相当复杂,我建议您阅读上面引用的 DWARF 规范以了解更多信息。总之,位置表达式可以是带有变量位置的简单地址,也可以是必须由调试器在运行时计算以确定变量位置的小程序。以下是来自 DWARF 规范的一些示例位置表达式:

理想情况下,您的编译器应该为变量生成一个位置列表,描述它在程序中所有位置的位置。通过寄存器跟踪变量的位置并非易事,这就是为什么一些编译器在生成调试信息时禁用优化,例如将变量移入寄存器。

关于dwarf - DW_AT_location 的用途和意义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9719266/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com