[发明专利]确定函数调用关系的方法、装置及系统有效

专利信息
申请号: 200910261275.X 申请日: 2009-12-24
公开(公告)号: CN102109975A 公开(公告)日: 2011-06-29
发明(设计)人: 李宁 申请(专利权)人: 华为技术有限公司
主分类号: G06F9/30 分类号: G06F9/30;G06F9/34
代理公司: 北京凯特来知识产权代理有限公司 11260 代理人: 郑立明;焦丽
地址: 518129 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 确定 函数 调用 关系 方法 装置 系统
【权利要求书】:

1.一种确定函数调用关系的方法,其特征在于,包括:

从函数的当前代码段指令地址处开始向高地址方向搜索指令,获得所述函数的第一堆栈指针SP偏移值;

从所述代码段指令地址处开始向低地址方向搜索指令,获得所述函数的第二SP偏移值,以及获得保存函数返回地址的地址相对函数的栈帧的偏移值;

根据所述第一SP偏移值及第二SP偏移值获得所述函数的SP偏移值,当所述SP偏移值符合预设要求时,所述函数的堆栈指针指向所述函数的栈帧,根据所述函数的栈帧及所述保存函数返回地址的地址相对函数的栈帧的偏移值,得到所述函数的返回地址。

2.根据权利要求1所述的确定函数调用关系的方法,其特征在于,所述当前代码段指令地址包括函数异常时或调试函数时对应的代码段指令地址。

3.根据权利要求1所述的确定函数调用关系的方法,其特征在于,从函数的当前代码段指令地址处开始向高地址方向搜索指令,获得所述函数的第一SP偏移值,包括:

从函数的当前代码段指令地址PC处开始向高地址PC+n方向搜索指令,所述n值递增;

获得各栈调整指令中SP偏移值的累加和作为第一SP偏移值,所述第一SP偏移值为正值或负值。

4.根据权利要求1所述的确定函数调用关系的方法,其特征在于,从所述代码段指令地址处开始向低地址方向搜索指令,获得所述函数的第二SP偏移值,以及获得保存函数返回地址的地址相对函数的栈帧的偏移值,包括:

从函数的当前代码段指令地址PC处开始向低地址PC-m方向搜索指令,所述m值递减;

获得栈调整指令中SP偏移值作为第二SP偏移值,所述第二SP偏移值为正值或负值;

获得保存函数返回地址指令中偏移值,所述偏移值为保存函数返回地址的地址相对函数的栈帧的偏移。

5.根据权利要求1所述的确定函数调用关系的方法,其特征在于,所述SP偏移值的预设要求,包括:

SP向低地址方向增长时,所述SP偏移值的预设要求为所述SP偏移值为负值,所述函数的堆栈指针指向所述函数的栈帧;或者,

SP向高地址方向增长时,所述SP偏移值的预设要求为所述SP偏移值为正值,所述函数的堆栈指针指向所述函数的栈帧。

6.根据权利要求5所述的确定函数调用关系的方法,其特征在于,根据所述第一SP偏移值及第二SP偏移值获得所述函数的SP偏移值,当所述SP偏移值符合预设要求时,所述函数的堆栈指针指向所述函数的栈帧,包括:

获得函数异常时或调试函数时所述函数的堆栈指针;

将所述第一SP偏移值及第二SP偏移值累加获得所述函数的SP偏移值;

确定所述SP偏移值符合预设要求,所述函数的堆栈指针指向所述函数的栈帧。

7.根据权利要求6所述的确定函数调用关系的方法,其特征在于,所述方法还包括,根据所述第一SP偏移值及第二SP偏移值获得所述函数的SP偏移值,确定所述SP偏移值不符合预设要求:

根据所述第二SP偏移值调整所述函数的堆栈指针;

确定所述SP偏移值符合预设要求时,所述调整后的函数堆栈指针指向所述函数的栈帧。

8.一种确定函数调用关系的装置,其特征在于,包括:

前向搜索单元,用于从函数的当前代码段指令地址处开始向高地址方向搜索指令,获得所述函数的第一SP偏移值;

后向搜索单元,用于从所述代码段指令地址处开始向低地址方向搜索指令,获得所述函数的第二SP偏移值,以及获得保存函数返回地址的地址相对函数的栈帧的偏移值;

确定单元,用于根据所述第一SP偏移值及第二SP偏移值获得所述函数的SP偏移值,当所述SP偏移值符合预设要求时,所述函数的堆栈指针指向所述函数的栈帧,根据所述函数的栈帧及所述保存函数返回地址的地址相对函数的栈帧的偏移值,得到所述函数的返回地址。

9.根据权利要求8所述的确定函数调用关系的装置,其特征在于,所述前向搜索单元,包括:

第一搜索单元,用于从函数的当前代码段指令地址PC处开始向高地址PC+n方向搜索指令,所述n值递增;

第一获取单元,用于获得各栈调整指令中SP偏移值的累加和作为第一SP偏移值,所述第一SP偏移值为正值或负值。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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