来自 ELF 文件的数组长度

Array length from ELF file

我有一个 ELF 文件,我可以使用 readelf 提取符号和部分信息。 我 运行 遇到了一个问题,因为我需要知道哪些变量是数组以及它们的长度。我只得到原始尺寸。我发现有人说您可能会在调试部分使用 --debug-dump 找到此信息(这确实包含很多信息,但我找不到我正在寻找的数组大小)。

如果有帮助,我有一个针对嵌入式目标的修改后的 GCC。

你的目标使用什么样的调试信息?如果它是 DWARF,数组变量将有一个带有标签 DW_TAG_array_type 的关联类型,并且应该有一个 DW_AT_upper_bound 属性,它比数组大小(对于 C 数组)小一。

或者,如果您的调试信息仅提供数组元素类型,您可以使用 ELF 对象大小除以数组元素的大小。