Other Parts Discussed in Thread: C2000-CGT
器件型号: C2000-CGT
C28x .debug_frame 在 CFA+0 处对 RA 进行编码、这违反 DWARF 规范§6.4.1。
CFA 必须标识调用方帧基址、而不是 RA 位置。 这会破坏链接展开:
标准: CFA = CALLER_SP、RA = CFA+OFFSET
C28x: CFA = R20-N、 RA = CFA+0→CALLER_SP 错误
下一帧查找使用不正确的 SP、将堆栈重建中断到 1 级以上。
RA@CFA+0 是否有意为 C28x 行为?
当 RA 为 CFA+0 时、解压器应如何计算真正的调用方 SP?
我们能否获得这一 DWARF 实施的正式文件?
这可以防止在外部调试器中进行可靠的多帧回溯。 标准 DWARF 工具完全失败。
我目前使用我们现有的经改编的 DWARF 读取工具、但我们只能获取部分调用栈。
使用 C2000_CGT_22_6_2