我有大量用C语言编写的方法分布在多个文件中,并且所有这些方法都创建了局部变量(主要是结构实例)。 在Windows上使用ARM EABI GCC编译器编译后,我尝试使用objdump检查.o对象文件。
arm-none-eabi-objdump.exe -f -p -h -x -d -s -t test.o > test.txt
我的问题是: 如何计算/检索方法使用的峰值堆栈内存?
没有一个方法使用malloc分配任何动态分配的内存。所以,我希望这会更容易。
我需要这个,因为我需要比较每种方法在使用各种优化选项编译时使用的内存量。这是为了检查是否已执行任何本地内存优化。 我也理解,对于一些局部变量,编译器可能使用寄存器。但是,我只需知道方法所需的最大堆栈内存,或者是否有计算方法。