在elf文件中,如何找到定义变量的编译单元?

时间:2017-08-16 11:18:20

标签: elf dwarf

我正在编写一个工具来向a2l文件添加变量,输入是elf文件。 为了搜索哪个编译单元(CU)具有变量,我必须搜索所有CU(直到满足变量)。 由于SW很大,找到一个变量需要时间。 我想知道是否有更快的方法来知道变量定义了哪个CU?

1 个答案:

答案 0 :(得分:0)

DWARF标准包含可选部分.debug_pubnames,为全局对象和函数提供名称到偏移的翻译。

另一种方法是使用符号表。如果它有一个变量条目,那么您可以将其地址与可选 .debug_aranges部分一起使用,或者如果不这样做,请每隔DW_TAG_compile_unit查找一个带有封闭地址的地址范围。