【发布时间】:2015-02-11 10:19:46
【问题描述】:
我想在 DWARF 中对变量的有效范围进行编码。我该怎么做? 我在 DWARF 3 pdf 的第 178 页规范中看到 DW_AT_high_pc 和 low_pc 不适用于带有 TAG_variable 标记的 DIE。我应该在哪里根据规范对其进行编码?
【问题讨论】:
标签: compiler-construction gdb dwarf
我想在 DWARF 中对变量的有效范围进行编码。我该怎么做? 我在 DWARF 3 pdf 的第 178 页规范中看到 DW_AT_high_pc 和 low_pc 不适用于带有 TAG_variable 标记的 DIE。我应该在哪里根据规范对其进行编码?
【问题讨论】:
标签: compiler-construction gdb dwarf
你可以做两件事。
一个是您可以发出一个块并让变量出现在块中。当块结束时,变量将超出范围。如果您不进行复杂的优化,这是最简单的方法。
另一种方法是使用 DWARF 位置列表来表示变量的生存范围。请参阅 DWARF 4 标准的第 2.6.2 节(“位置列表”)(它们也在 DWARF 3 中,不过我没有在这里查找)。
【讨论】: