[发明专利]跟踪程序函数执行的方法、装置和计算机设备在审
申请号: | 201910738961.5 | 申请日: | 2019-08-09 |
公开(公告)号: | CN112347483A | 公开(公告)日: | 2021-02-09 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 中科寒武纪科技股份有限公司 |
主分类号: | G06F21/57 | 分类号: | G06F21/57 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 100000 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 跟踪 程序 函数 执行 方法 装置 计算机 设备 | ||
1.一种跟踪程序函数执行的方法,其特征在于,所述方法包括:
在调用目标函数时,跳转至全局偏移量表中与所述目标函数对应的目标项;
若所述目标项中包括所述目标函数的目标地址,根据所述目标地址调用所述目标函数;
将所述全局偏移量表中的预设地址项修改为第一跟踪函数的第一地址;
跳转至所述全局偏移量表中的所述预设地址项,根据所述预设地址项中的所述第一地址调用所述第一跟踪函数,根据所述第一跟踪函数跟踪所述目标函数的调用。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述目标项中包括预设指令,执行所述预设指令,所述预设指令用于将所述全局偏移量表中与目标函数对应的项序号压入栈中;
跳转至所述全局偏移量表中的所述预设地址项,其中,所述预设地址项中包括预设函数的预设地址;
根据所述预设地址调用所述预设函数,根据所述预设函数获取所述目标函数的目标地址,并将所述目标地址添加至所述全局偏移量表中的所述目标项,并跳转至所述目标项,根据所述目标地址调用所述目标函数;将所述全局偏移量表中的所述预设地址项修改为第一跟踪函数的第一地址;
跳转至所述全局偏移量表中的所述预设地址项,根据所述预设地址项中的第一地址调用所述第一跟踪函数,根据所述第一跟踪函数跟踪所述目标函数的调用。
3.根据权利要求2所述的方法,其特征在于,所述预设函数为_dl_runtime_resolve函数,所述_dl_runtime_resolve函数用于获取所述目标函数的目标地址;所述第一跟踪函数用于记录进入所述目标函数的进入时间。
4.根据权利要求2或3所述的方法,其特征在于,在所述执行所述预设指令之后,所述方法还包括:
将所述全局偏移量表中的链表地址项压入栈中,所述链表地址项中为已经加载的函数库的链表地址,所述函数库包括所述目标函数,所述链表地址项用于标识所述全局偏移量表对应的模块,所述模块封装所述函数库中共用所述全局偏移量表的所有函数的所有操作。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:
在所述目标函数调用完毕后,将所述全局偏移量表中的所述预设地址项修改为第二跟踪函数的第二地址;
在所述目标函数退出时,跳转至所述全局偏移量表中的所述预设地址项,根据所述预设地址项中的第二地址调用所述第二跟踪函数,根据所述第二跟踪函数对目标函数的返回进行跟踪。
6.根据权利要求5所述的方法,其特征在于,所述第二跟踪函数用于记录所述目标函数的退出时间。
7.一种跟踪程序函数执行的装置,其特征在于,所述装置包括跳转单元、调用单元和修改单元,其中,
所述跳转单元,用于在调用目标函数时,跳转至全局偏移量表中与所述目标函数对应的目标项;
所述调用单元,用于在所述目标项中包括所述目标函数的目标地址时,根据所述目标地址调用所述目标函数;
所述修改单元,用于将所述全局偏移量表中的所述预设地址项修改为第一跟踪函数的第一地址;
所述跳转单元,还用于跳转至所述全局偏移量表中的所述预设地址项,根据所述预设地址项中的所述第一地址调用所述第一跟踪函数,根据所述第一跟踪函数跟踪所述目标函数的调用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中科寒武纪科技股份有限公司,未经中科寒武纪科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910738961.5/1.html,转载请声明来源钻瓜专利网。