[发明专利]一种代码处理方法及装置有效
申请号: | 201810259009.2 | 申请日: | 2018-03-27 |
公开(公告)号: | CN108664250B | 公开(公告)日: | 2022-02-01 |
发明(设计)人: | 王恒 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41 |
代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 莎日娜 |
地址: | 100080 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 代码 处理 方法 装置 | ||
1.一种代码处理方法,其特征在于,所述方法包括:
获取编译后的错误机器代码的存储地址;
根据所述存储地址和对应关系确定所述错误机器代码所属的函数,所述对应关系包括函数名称和存储地址范围组成的 对应表项;
根据所述存储地址和所述存储地址在存储地址范围中的偏移量确定所述错误机器代码在所述函数中的位置;
获取所述函数的编译前的源代码;
在所述源代码的所述位置处查找所述错误机器代码对应的编译前的源代码。
2.根据权利要求1所述的方法,其特征在于,所述获取编译后的错误机器代码的存储地址,包括:
获取所述错误机器代码的堆栈信息,所述堆栈信息是在所述错误机器代码运行出错时生成的,所述堆栈信息中至少包括所述错误机器代码的存储地址;
从所述堆栈信息中提取出所述存储地址,并作为所述错误机器代码的存储地址。
3.根据权利要求1所述的方法,其特征在于,所述根据所述存储地址和对应关系确定所述错误机器代码所属的函数,所述对应关系包括函数名称和存储地址范围组成的 对应表项,包括:
在所述对应关系中查找所述存储地址所在的存储地址范围;
在所述对应关系中查找与所述存储地址范围相对应的函数名称;
将所述函数名称所对应的函数确定为所述错误机器代码所属的函数。
4.根据权利要求3所述的方法,其特征在于,所述根据所述存储地址和所述存储地址在存储地址范围中的偏移量确定所述错误机器代码在所述函数中的位置,包括:
获取所述存储地址在所述存储地址范围中的偏移量,并作为所述错误机器代码在所述函数中的位置。
5.根据权利要求1所述的方法,其特征在于,所述获取所述函数的编译前的源代码,包括:
获取所述函数的中间代码,所述中间代码是事先在编译所述函数的编译前的源代码的过程中生成的;
将所述中间代码反编译,得到所述函数的编译前的源代码。
6.一种代码处理装置,其特征在于,所述装置包括:
第一获取模块,用于获取编译后的错误机器代码的存储地址;
第一确定模块,用于根据所述存储地址和对应关系确定所述错误机器代码所属的函数,所述对应关系包括函数名称和存储地址范围组成的 对应表项;
第二确定模块,用于根据所述存储地址和所述存储地址在存储地址范围中的偏移量确定所述错误机器代码在所述函数中的位置;
第二获取模块,用于获取所述函数的编译前的源代码;
查找模块,用于在所述源代码的所述位置处查找所述错误机器代码对应的编译前的源代码。
7.根据权利要求6所述的装置,其特征在于,所述第一获取模块包括:
第一获取单元,用于获取所述错误机器代码的堆栈信息,所述堆栈信息是在所述错误机器代码运行出错时生成的,所述堆栈信息中至少包括所述错误机器代码的存储地址;
提取单元,用于从所述堆栈信息中提取出所述存储地址,并作为所述错误机器代码的存储地址。
8.根据权利要求6所述的装置,其特征在于,所述第一确定模块包括:
第一查找单元,用于在所述对应关系中查找所述存储地址所在的存储地址范围;
第二查找单元,用于在所述对应关系中查找与所述存储地址范围相对应的函数名称;
第一确定单元,用于将所述函数名称所对应的函数确定为所述错误机器代码所属的函数。
9.根据权利要求8所述的装置,其特征在于,所述第二确定模块具体用于:获取所述存储地址在所述存储地址范围中的偏移量,并作为所述错误机器代码在所述函数中的位置。
10.根据权利要求6所述的装置,其特征在于,所述第二获取模块包括:
第四获取单元,用于获取所述函数的中间代码,所述中间代码是事先在编译所述函数的编译前的源代码的过程中生成的;
第二反编译单元,用于将所述中间代码反编译,得到所述函数的编译前的源代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810259009.2/1.html,转载请声明来源钻瓜专利网。