[发明专利]一种基于xtensa处理器的栈回溯方法及装置在审
申请号: | 201910681672.6 | 申请日: | 2019-07-26 |
公开(公告)号: | CN110489258A | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 邓京涛 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 37105 济南诚智商标专利事务所有限公司 | 代理人: | 王申雨<国际申请>=<国际公布>=<进入 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序异常 函数调用栈 处理器 工程师 处理器函数 窗口寄存器 调用关系 反向恢复 回溯装置 快速定位 手动触发 异常信息 异常中断 寄存器 倒序 滑差 减小 调用 回溯 算法 帮助 保存 恢复 | ||
本发明公开了一种基于xtensa处理器的栈回溯方法,包括以下步骤:异常中断或手动触发时保存ar寄存器值和dram信息;采用滑差间隔为N个的ar窗口寄存器倒序恢复现场;采用xtensa处理器函数调用算法,反向恢复栈调用关系。本发明还提供了一种基于xtensa处理器的栈回溯装置。本发明能够实时地在程序异常后,获得程序异常前的函数调用栈信息及异常信息。能够帮助工程师在产品异常情况下,快速定位程序异常原因,能够快速的得到异常情况下的函数调用栈,能够帮助工程师快速、准确的定位bug原因,极大的提高了解决bug的效率,将损失减小到最小。
技术领域
本发明涉及嵌入式系统技术领域,尤其是一种基于xtensa处理器的栈回溯方法及装置。
背景技术
产品在实际运行过程中,会存在程序出现异常的可能性。但是往往会缺少一种手段能够获得异常情况下程序的调用栈信息,以及异常原因,使程序bug的定位变的异常艰难。不同处理器的调用栈获取方式和处理器本身的函数调用方式息息相关,基于arm的处理器栈回溯是相对简单的,调用信息是在栈上的,是可寻址的,是空间上的回溯。根据xtensa处理器特性,在程序出现异常后,程序会跳转到异常中断执行,在异常中断中保存所有的ar寄存器,并将128K的DRAM信息保存到DDR。除了在异常情况下(比如除零异常、内存访问异常、指令异常等)进行保存外,还支持在其他情况下的手动触发保存,这需要不仅能获得64个ar寄存器值,还需要保证不能破坏现场(所有ar寄存器值),然而xtensa处理器每次只有16个寄存器可见,并且无法通过寻址的方式找到其他寄存器,必须通过移动窗口,回退到之前的函数调用点的窗口下,需要时间+空间的回溯。要想保存这16个寄存器,必然在保存过程中需要使用其中的2~3个寄存器,这样就破坏了现场。当我们回退到某个窗口下时,就不得不破坏ar寄存器现场去保存调用关系。
发明内容
本发明的目的是提供一种基于xtensa处理器的栈回溯方法及装置,能够快速的得到异常情况下的函数调用栈,能够帮助工程师快速、准确的定位bug原因,极大的提高了解决bug的效率,将损失减小到最小。
为实现上述目的,本发明采用下述技术方案:
本发明第一方面提供了一种基于xtensa处理器的栈回溯方法,包括以下步骤:
异常中断或手动触发时保存ar寄存器值和dram信息;
采用滑差间隔为N个的ar窗口寄存器倒序恢复现场;
采用xtensa处理器函数调用算法,反向恢复栈调用关系。
结合第一方面,在第一方面第一种可能的实现方式中,所述异常包括:内存访问异常、除零异常、非对齐异常、非法指令异常。
结合第一方面,在第一方面第二种可能的实现方式中,所述采用滑差间隔为N个的ar窗口寄存器倒序恢复现场,具体包括:
采用滑差间隔为四个的ar窗口寄存器倒序恢复ar物理寄存器值至DARM;
将DRAM信息保存到DDR。
结合第一方面,在第一方面第三种可能的实现方式中,所述采用滑差间隔为四个的ar窗口寄存器倒序恢复ar物理寄存器值至DARM,具体包括:
使用当前现场的ar4~ar7窗口寄存器保存当前现场的ar0~ar3窗口寄存器值,再向前滑四个寄存器,直到保存到最起始的ar寄存器值为止,所述最起始的ar寄存器为异常中断现场下的ar物理寄存器或手动触发时中断处理函数所在现场下的ar物理寄存器;
保存完成后,向后滑差四个寄存器后,使用之前保存寄存器值来恢复ar0~ar3物理寄存器,直到恢复到最近的ar寄存器值,所述最近的ar寄存器为当前现场的ar0-ar3窗口寄存器对应的ar物理寄存器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910681672.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种生产管理方法及系统
- 下一篇:一种内存故障检测方法及设备