[发明专利]一种堆栈回溯的方法及装置有效

专利信息
申请号: 201710398429.4 申请日: 2017-05-31
公开(公告)号: CN108984328B 公开(公告)日: 2021-08-17
发明(设计)人: 杨洲;唐玉科 申请(专利权)人: 中兴通讯股份有限公司
主分类号: G06F11/07 分类号: G06F11/07;G06F11/36
代理公司: 深圳市力道知识产权代理事务所(普通合伙) 44507 代理人: 张传义
地址: 518057 广东省深*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 堆栈 回溯 方法 装置
【权利要求书】:

1.一种堆栈回溯的方法,包括:

获取当前FP-4位置处的内存值;

根据所述内存值确定当前函数使用的栈帧结构类型,其中,所述栈帧结构类型包括:ARM的第一栈帧结构,ARM的第二栈帧结构,ARM的第三栈帧结构;

根据所述栈帧结构类型,获取返回地址和父函数帧指针FP;

其中,所述当前FP-4为当前函数FP的值往低地址方向移动4个字节处的内存地址。

2.根据权利要求1所述的方法,其特征在于,所述根据所述内存值确定当前函数使用的栈帧结构类型,包括:

在所述内存值在程序代码段范围内时,确定当前函数使用第一栈帧结构;

在所述内存值在当前线程堆栈范围内时,确定当前函数使用第二栈帧结构;

在所述内存值既不在程序代码段范围内、也不在当前线程堆栈范围内时,确定当前函数使用第三栈帧结构。

3.根据权利要求1或2所述的方法,其特征在于,根据所述栈帧结构类型,获取返回地址和父函数帧指针FP,包括:

在所述栈帧结构类型为第一栈帧结构的情况下,从FP-4对应的内存处读取返回地址,从FP-12对应的内存处读取父函数的FP;

对于第二栈帧结构,从FP对应的内存处读取返回地址,从FP-4对应的内存处读取父函数的FP;

对于第三栈帧结构,获取当前函数堆栈大小SIZE,从FP+SIZE处读取父函数的FP,从FP+SIZE+4处读取返回地址。

4.根据权利要求3所述的方法,其特征在于,所述获取本函数堆栈大小SIZE,包括:

从当前PC往低地址方向进行指令分析,查找扩展堆栈的指令;

在查找到扩展堆栈的指令的情况下,本函数堆栈大小SIZE为所述指令中的立即数;

如果没有查找到扩展堆栈的指令,则本函数堆栈大小SIZE为0。

5.一种堆栈回溯的装置,包括:

获取模块,用于获取当前FP-4位置处的内存值;

确定模块,用于根据当前FP-4位置处的内存值,确定当前函数使用的栈帧结构类型,其中,所述栈帧结构类型包括:ARM的第一栈帧结构,ARM的第二栈帧结构,ARM的第三栈帧结构;

返回模块,用于根据所述栈帧结构类型,获取返回地址和父函数帧指针FP;

其中,所述当前FP-4为当前函数FP的值往低地址方向移动4个字节处的内存地址。

6.根据权利要求5所述的装置,其特征在于,

所述确定模块,具体用于:在所述内存值在程序代码段范围内时,确定当前函数使用第一栈帧结构;在所述内存值在当前线程堆栈范围内时,确定当前函数使用第二栈帧结构;在所述内存值既不在程序代码段范围内、也不在当前线程堆栈范围内时,确定当前函数使用第三栈帧结构。

7.根据权利要求5或6所述的装置,其特征在于,

所述返回模块,具体用于:对于第一栈帧结构,从FP-4对应的内存处读取返回地址,从FP-12对应的内存处读取父函数的FP;对于第二栈帧结构,从FP对应的内存处读取返回地址,从FP-4对应的内存处读取父函数的FP;对于第三栈帧结构,先计算当前函数堆栈大小SIZE,再从FP+SIZE处读取父函数的FP,从FP+SIZE+4处读取返回地址。

8.一种堆栈回溯的装置,其特征在于,包括:

存储有堆栈回溯程序的存储器;

处理器,配置为执行所述堆栈回溯程序以执行下述操作:获取当前FP-4位置处的内存值;根据当前FP-4位置处的内存值,确定当前函数使用的栈帧结构类型,其中,所述栈帧结构类型包括:ARM的第一栈帧结构,ARM的第二栈帧结构,ARM的第三栈帧结构;根据所述栈帧结构类型获取返回地址和父函数帧指针FP;其中,所述当前FP-4为当前函数FP的值往低地址方向移动4个字节处的内存地址。

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有堆栈回溯程序,所述堆栈回溯程序被处理器执行时实现如权利要求1至4中任一项所述堆栈回溯方法的步骤。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201710398429.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top