我有一个ELF
文件,我可以使用readelf
提取符号和部分信息就好了。
我遇到了一个问题,因为我需要知道哪些变量是数组,以及它们有多长。我只得到原始大小。我发现有人说你可能会在调试部分使用--debug-dump
找到这些信息(这肯定包含很多信息,但我找不到我正在寻找的数组大小)。
如果有帮助,我会为嵌入式目标修改GCC。
答案 0 :(得分:1)
目标使用哪种调试信息?如果是DWARF,则数组变量将具有标记为DW_TAG_array_type
的关联类型,并且该属性应具有DW_AT_upper_bound
属性,该属性比数组大小少一个(对于C数组)。
或者,如果您的调试信息类型仅提供数组元素类型,则可以使用ELF对象大小并将其除以数组元素的大小。