在 Armclang armlink 中,使用 --callgraph 信息执行 armling 时给出未知字节的函数的堆栈大小信息。 此外,--info=stack 并没有在其输出中给出这些函数。
所以,问题是:在什么情况下我们会得到 armling --callgraph 的未知字节?请注意,所有代码均不受任何编译时宏的保护。我得到了一些功能,但没有得到一些功能,我很困惑。
有关
--callgraph
选项的 Armlink 文档指出:
如果存在循环,或者链接器检测到调用链中没有堆栈大小信息的函数,则将 + Unknown 添加到堆栈使用情况中。
循环/递归调用对于堆栈使用估计来说是相当明显的障碍,因为链接器无法确定嵌套级别。
缺少堆栈大小是更复杂的情况,如果您对汇编函数有问题,则需要提供特殊指令来标记堆栈帧。
您可以在文档中查看详细信息:link