[发明专利]一种热点模块指令跟踪的方法及设备有效
申请号: | 201510444041.4 | 申请日: | 2015-07-27 |
公开(公告)号: | CN105095079B | 公开(公告)日: | 2018-01-12 |
发明(设计)人: | 张小松;王东;许云清;牛伟纳;陈瑞东;朱迦南;白金;俞工淳 | 申请(专利权)人: | 电子科技大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 电子科技大学专利中心51203 | 代理人: | 李明光 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种热点模块指令跟踪的方法及设备,属于软件分析技术领域。本发明提供的方法首先标记用户感兴趣的页,当线程访问热点模块将触发PAGE_GUARD异常,触发调试器进行处理;然后调试器设置所有线程单步调试,并把该页页号加入恢复链表,触发PAGE_GUARD异常的页会自动丢失PAGE_GUARD属性,最后在当前执行线程中分析执行指令所在地址是否位于感兴趣的页进行相应操作。该发明使用PAGE_GUARD属性标识热点模块和有限单步调试来跟踪模块指令执行,实现了热点模块指令跟踪的完备性,避免了单纯断点跟踪的非完备性问题和复杂性问题,也避免了单纯指令跟踪的效率低下问题。 | ||
搜索关键词: | 一种 热点 模块 指令 跟踪 方法 设备 | ||
【主权项】:
一种热点模块指令追踪的方法,主要包括以下步骤:步骤1.标识感兴趣的页:用户根据需要标记感兴趣的文件为热点模块,将热点模块所在代码页记为感兴趣的页并设置为PAGE_GUARD属性,标识并记录这些代码页的PAGE_GUARD属性,执行步骤2;步骤2.被调试进程在运行时触发异常,其中,由于感兴趣的页已经被设置PAGE_GUARD属性,若被调试进程的某一线程访问到标识为感兴趣的内存页,则会触发异常;主程序接收到触发的异常后,对被调试进程进行挂起处理,执行步骤3;步骤3.处理PAGE_GUARD异常:异常处理进程接受到被调试进程发送的异常事件后对异常进行判定及处理,处理后将被调试进程唤起,执行步骤4;步骤4.一旦发现步骤3中线程所触发的异常为PAGE_GUARD异常,则被调试进程唤起后,把该线程所访问的包含有该内存页PAGE_GUARD属性及其位置的信息写入一个链表中,此时该内存页的PAGE_GUARD属性丢失,并将被调试进程的所有线程设置为单步调试即一步一步的执行指令,执行步骤5;步骤5.当单步执行下个线程的指令后将触发单步异常,单步执行进程进行异常处理,当前线程的单步标示位丢失,该线程不再单步;判断该线程下条指令所访问内存页位置是否处于所设定感兴趣的页,如果处于感兴趣的页,并且感兴趣的页具有PAGE_GUARD属性则重新执行步骤4,若感兴趣的页没有PAGE_GUARD属性就使该线程继续单步;如果线程未访问感兴趣的页,则该线程不再单步,并针对此前已丢失PAGE_GUARD属性的内存页根据步骤4所述链表重设其PAGE_GUARD属性并重新执行步骤2;步骤6.按照上述方法,即可实现进程在调试过程中热点模块是否被访问及访问频率的实时跟踪。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510444041.4/,转载请声明来源钻瓜专利网。