Gp2*_*mv3 4 c stack-overflow gcc arm
我正在尝试使用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
Run Code Online (Sandbox Code Playgroud)
我正在使用gcc-arm-none-eabi-5_4-2016q3,但问题也出现在gcc-arm-none-eabi-5_3-2016q1.
您对这个问题有想法吗?或者另一种控制堆栈使用的解决方案?
经过大量测试我找到了解决方案:-fstack-usage似乎与-flto.
禁用-flto允许生成 .su 文件。
我真的不知道原因,因为我通过一一启用/禁用标志来弄清楚。此外,通过删除-flto,链接器会失败,但会计算堆栈使用情况。
| 归档时间: |
|
| 查看次数: |
1811 次 |
| 最近记录: |