2017-10-18 126 views
0

我有一個ELF文件,我可以使用readelf就可以提取符號和部分信息。 我碰到一個問題,因爲我需要知道哪些變量是數組以及它們具有多長。我只得到原始尺寸。我發現有人說你可能會在調試部分使用--debug-dump找到這個信息(它肯定包含很多信息,但是我找不到我想要的數組大小)。來自ELF文件的數組長度

如果有幫助,我對嵌入式目標有修改後的GCC。

回答

1

你的目標使用什麼樣的調試信息?如果是DWARF,則數組變量將具有標記爲DW_TAG_array_type的關聯類型,並且該屬性應具有DW_AT_upper_bound屬性,該屬性比數組大小(對於C數組)小1。或者,如果您的調試信息只提供數組元素類型,則可以使用ELF對象大小並將其除以數組元素的大小。

+0

有沒有機會解析這些信息的.NET庫? – CodeMonkey

+1

它看起來並不是這樣,因爲Windows使用PE/COFF,這並不令人感到意外。我查看了[Mono](https://github.com/mono/mono),它使用C代碼來處理ELF文件。 –