0
我正在寫一個工具將變量添加到a2l文件,輸入是elf文件。 爲了搜索哪個編譯單元(CU)具有變量,我必須遍歷所有的CU(直到滿足變量)。 由於SW非常大,找到一個變量需要時間。 我想知道是否有更快的方法來知道變量定義了哪個CU?在一個elf文件中,如何找到變量定義的編譯單元?
我正在寫一個工具將變量添加到a2l文件,輸入是elf文件。 爲了搜索哪個編譯單元(CU)具有變量,我必須遍歷所有的CU(直到滿足變量)。 由於SW非常大,找到一個變量需要時間。 我想知道是否有更快的方法來知道變量定義了哪個CU?在一個elf文件中,如何找到變量定義的編譯單元?
dwarf標準包括可選部,.debug_pubnames
,其提供名稱到偏移翻譯全球對象和功能。
另一種方法是使用符號表。如果它有一個變量的條目,那麼你可以使用它的地址與可選.debug_aranges
部分,否則,每DW_TAG_compile_unit
讀一遍,尋找具有封閉地址範圍的地址。