This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/RM57L843:如何在RM57L843上实现堆栈帧反向跟踪?

Guru**** 2551110 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/581926/compiler-rm57l843-how-to-achieve-stack-frame-backtracking-on-the-rm57l843

部件号:

工具/软件:TI C/C++编译器

此问题已发布到MCU论坛。 我不是SW的专家,对如何在CCS/compiler中使用CPU寄存器也不了解。 请帮助我们回答此问题。 谢谢

RM57L843:如何在RM57L843上实现堆栈帧反向跟踪

如何在 RM57L843上实现堆栈帧回退,其他 ARM架构MCU有FP堆栈帧指针,我已经阅读了cortex-R5数据手册

没有找到 关于此的注册。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我不知道有什么文档专门讨论如何以某种方式遍历堆栈帧。  大部分基本信息在 ARM编译器手册中标题为Function Structure和Calling Conventions的章节中。  但它可能缺少一些细节。

    谢谢,此致,

    -George

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 如果可能,在CCS中运行程序并使用CCS堆栈视图。
    2. 否则,您将需要解析DWARF调试信息以获取有关每个函数的帧的信息。  此信息的解释在DWARF标准中指定。
    3. 如果没有DWARF调试信息,则需要对每个函数的汇编代码进行逆向工程,以确定它在堆栈中保存注册表项的位置以及堆栈帧的大小。

    您能告诉我们为什么需要堆栈回溯吗?  这是对一次碰撞的事后分析吗?