1

我有大量用 C 语言编写的方法,分布在多个文件中,所有方法都创建局部变量(主要是结构实例)。在 Windows 上使用 ARM EABI GCC 编译器编译这些文件后,我尝试使用 objdump 检查 .o 目标文件。

arm-none-eabi-objdump.exe -f -p -h -x -d -s -t test.o > test.txt

我的问题是: 如何计算/检索方法使用的峰值堆栈内存?

这些方法都没有使用 malloc 分配任何动态分配的内存。所以,我希望这会更容易。

我需要这个,因为我需要比较每种方法在使用各种优化选项编译时使用的内存量。这是为了检查是否已执行任何本地内存优化。我也明白,对于一些局部变量,编译器可能会使用寄存器。但是,我只需要知道方法所需的最大堆栈内存是多少,或者是否有办法计算它。

4

0 回答 0