如何从二进制文件中查找静态分配的大小?

Posted

技术标签:

【中文标题】如何从二进制文件中查找静态分配的大小?【英文标题】:How to find size of static allocations from binary? 【发布时间】:2009-05-26 19:38:16 【问题描述】:

是否可以从二进制文件中确定专用于静态和全局变量的内存总量?我正在寻找一个 Linux 实用程序,它可以读取一个 elf 文件并计算出为变量预分配了多少内存。

【问题讨论】:

【参考方案1】:

size 实用程序将在“数据”下报告。

> size ./my_program

【讨论】:

【参考方案2】:

是的。使用...

objdump -h progfile

这将列出“标题”。找到.data 标题并检查大小列。

【讨论】:

【参考方案3】:

您可以使用nm 命令(或@sharth 建议的objdump)。使用 nm 更“便携”,因为它也可以在非 Linux Unix 系统上使用;它的可移植性并不高,因为输出格式没有完全标准化(虽然它是由 POSIX 定义的,但输出格式有几种常见的变体)。

【讨论】:

以上是关于如何从二进制文件中查找静态分配的大小?的主要内容,如果未能解决你的问题,请参考以下文章

从二进制文件读/写包含数组的结构体

从二进制获取图像尺寸和图像大小

PHP如何将从二进制文件中读取的字节转换为数字

如何从二进制文件中获取应用程序的版本号?

在python中如何从二进制文件中读取信息

如何从二进制文件中删除 HomeKit API