发明名称 一种热点模块指令跟踪的方法及设备
摘要 本发明公开了一种热点模块指令跟踪的方法及设备,属于软件分析技术领域。本发明提供的方法首先标记用户感兴趣的页,当线程访问热点模块将触发PAGE_GUARD异常,触发调试器进行处理;然后调试器设置所有线程单步调试,并把该页页号加入恢复链表,触发PAGE_GUARD异常的页会自动丢失PAGE_GUARD属性,最后在当前执行线程中分析执行指令所在地址是否位于感兴趣的页进行相应操作。该发明使用PAGE_GUARD属性标识热点模块和有限单步调试来跟踪模块指令执行,实现了热点模块指令跟踪的完备性,避免了单纯断点跟踪的非完备性问题和复杂性问题,也避免了单纯指令跟踪的效率低下问题。
申请公布号 CN105095079A 申请公布日期 2015.11.25
申请号 CN201510444041.4 申请日期 2015.07.27
申请人 电子科技大学 发明人 张小松;王东;许云清;牛伟纳;陈瑞东;朱迦南;白金;俞工淳
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 电子科技大学专利中心 51203 代理人 李明光
主权项 一种热点模块指令追踪的方法,主要包括以下步骤:步骤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.按照上述方法,即可实现进程在调试过程中热点模块是否被访问及访问频率的实时跟踪。
地址 611731 四川省成都市高新区(西区)西源大道2006号