[发明专利]一种基于xtensa处理器的栈回溯方法及装置在审
申请号: | 201910681672.6 | 申请日: | 2019-07-26 |
公开(公告)号: | CN110489258A | 公开(公告)日: | 2019-11-22 |
发明(设计)人: | 邓京涛 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 37105 济南诚智商标专利事务所有限公司 | 代理人: | 王申雨<国际申请>=<国际公布>=<进入 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序异常 函数调用栈 处理器 工程师 处理器函数 窗口寄存器 调用关系 反向恢复 回溯装置 快速定位 手动触发 异常信息 异常中断 寄存器 倒序 滑差 减小 调用 回溯 算法 帮助 保存 恢复 | ||
1.一种基于xtensa处理器的栈回溯方法,其特征是,包括以下步骤:
异常中断或手动触发时保存ar寄存器值和dram信息;
采用滑差间隔为N个的ar窗口寄存器倒序恢复现场;
采用xtensa处理器函数调用算法,反向恢复栈调用关系。
2.如权利要求1所述的基于xtensa处理器的栈回溯方法,其特征是,所述异常包括:内存访问异常、除零异常、非对齐异常、非法指令异常。
3.如权利要求1所述的基于xtensa处理器的栈回溯方法,其特征是,所述采用滑差间隔为N个的ar窗口寄存器倒序恢复现场,具体包括:
采用滑差间隔为四个的ar窗口寄存器倒序恢复ar物理寄存器值至DARM;
将DRAM信息保存到DDR。
4.如权利要求3所述的基于xtensa处理器的栈回溯方法,其特征是,所述采用滑差间隔为四个的ar窗口寄存器倒序恢复ar物理寄存器值至DARM,具体包括:
使用当前现场的ar4~ar7窗口寄存器保存当前现场的ar0~ar3窗口寄存器值,再向前滑四个寄存器,直到保存到最起始的ar寄存器值为止,所述最起始的ar寄存器为异常中断现场下的ar物理寄存器或手动触发时中断处理函数所在现场下的ar物理寄存器;
保存完成后,向后滑差四个寄存器后,使用之前保存寄存器值来恢复ar0~ar3物理寄存器,直到恢复到最近的ar寄存器值,所述最近的ar寄存器为当前现场的ar0-ar3窗口寄存器对应的ar物理寄存器。
5.如权利要求4所述的基于xtensa处理器的栈回溯方法,其特征是,所述采用滑差间隔为四个的ar窗口寄存器倒序恢复ar物理寄存器值至DARM,具体包括:
通过设置寄存器windowbase和windowstart的数值完成窗口寄存器的移动。
6.如权利要求5所述的基于xtensa处理器的栈回溯方法,其特征是,所述采用xtensa处理器函数调用算法,反向恢复栈调用关系,具体包括:
从当前函数使用的ar1物理寄存器中获取栈地址,通过栈地址恢复上一级函数的ar0-ar7物理寄存器,上一级函数的a0代表是该函数的返回地址,计算出上一级函数调用地址=a0-3。
7.一种基于xtensa处理器的栈回溯装置,其特征是,包括:
异常保存模块,异常中断或手动触发时保存ar寄存器值和dram信息;
现场滑差恢复模块,采用滑差间隔为N个的ar窗口寄存器倒序恢复现场;
调用关系恢复模块,采用xtensa处理器函数调用算法,反向恢复栈调用关系。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910681672.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种生产管理方法及系统
- 下一篇:一种内存故障检测方法及设备