gpt4 book ai didi

c - ARM-gcc 堆栈使用文件为空

转载 作者:太空宇宙 更新时间:2023-11-03 23:20:53 24 4
gpt4 key购买 nike

我正在尝试使用 arm-gcc 工具链分析我的嵌入式程序的堆栈使用情况。该程序是单线程的,因此我通常可以使用 -fstack-usage gcc 的参数分析堆栈。

通常此选项会生成 .su 文件以及编译单元。这些描述了每个函数的堆栈使用情况。但是,就我而言,这些文件是空的。

这是 .su 文件内容的示例(来自 https://mcuoneclipse.com/2015/08/21/gnu-static-stack-usage-analysis/ ):

main.c:36:6:bar    48    static
main.c:41:5:foo 88 static
main.c:47:5:main 8 static

我正在使用 gcc-arm-none-eabi-5_4-2016q3 但是 gcc-arm-none-eabi-5_3-2016q1 也存在这个问题.

你知道这个问题吗?或者另一种控制堆栈使用的解决方案?

最佳答案

经过大量测试,我找到了解决方案:-fstack-usage 似乎与-flto 不兼容。

禁用 -flto 允许生成 .su 文件。

我真的不知道原因,因为我是通过一个一个地启用/禁用标志来弄清楚的。此外,通过删除 -flto,链接器会失败,但会计算堆栈使用情况。

关于c - ARM-gcc 堆栈使用文件为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40081847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com