[发明专利]程序断点处理方法及装置有效
申请号: | 201210222834.8 | 申请日: | 2012-06-30 |
公开(公告)号: | CN102831054A | 公开(公告)日: | 2012-12-19 |
发明(设计)人: | 楼超权;戴华飞 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 刘芳 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 程序 断点 处理 方法 装置 | ||
技术领域
本发明实施例涉及软件调试技术,尤其涉及一种程序断点处理方法及装置,属于计算机领域。
背景技术
断点功能是程序开发中一个常用调试功能,也是调试器的核心功能。断点功能可以暂停程序,查看程序运行时的上下文。
目前,软件断点主要通过两次异常来实现。具体地,首先将断点处指令改为断点指令,断点命中中断到调试器时,调试器接管异常并暂停程序。当用户结束分析恢复被调试程序继续执行时,需要进行第一次异常处理,即先将断点处的断点指令还原为原来的指令,打开硬件单步,异常返回到断点处,通过硬件单步功能将断点处的原来的指令执行完成,然后再进行第二次异常处理,重新将断点处的指令设置为断点指令,并关闭硬件单步,然后二次异常返回到断点处,继续执行下一指令。
在实现本发明实施例的过程中,发明人发现现有技术中在对程序进行调试过程中,存在两次异常处理和两次指令替换,处理流程复杂,效率低下。
发明内容
本发明实施例提供一种程序断点处理方法及装置,用以简化程序断点处理流程。
本发明实施例一方面提供了一种程序断点处理方法,包括:在执行程序上设置断点,并将所述断点处的指令修改为断点指令;触发所述断点指令进行异常处理,并将所述异常处理的返回地址修改为目标代码的地址;所述目标代码为与所述断点处的指令功能相同的等价代码;异常处理结束后,跳转执行所述目标代码。
本发明实施例另一方面提供了一种程序断点处理装置,包括:指令修改模块,用于在执行程序上设置断点,并将所述断点处的指令修改为断点指令;异常处理模块,用于触发所述断点指令,对所述断点指令进行异常处理,并将所述异常处理的返回地址修改为目标代码的地址;所述目标代码为与所述断点处的指令功能相同的等价代码;跳转执行模块,用于在所述异常处理模块对所述断点指令异常处理结束后,跳转执行所述目标代码。
本发明实施例提供的程序断点处理方法及装置,通过将异常处理的返回地址修改为与断点处原指令功能相同的目标代码,针对同一程序仅做一次异常处理即可完成断点检测,而且还可以根据实际需求将当前执行的程序直接跳转到另一目标程序,处理流程简单,减少处理延时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一实施例提供的程序断点处理方法流程示意图;
图2为本发明一实施例提供的程序断点处理方法的生成等价代码示意图;
图3为本发明一实施例提供的程序断点处理方法的设置断点指令示意图;
图4为本发明一实施例提供的程序断点处理方法的断点触发示意图;
图5为本发明另一实施例提供的程序断点处理方法流程示意图;
图6为本发明一实施例提供的程序断点处理装置的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明一实施例提供的程序断点处理方法流程示意图。如图1所示,本发明实施例提供的程序断点处理方法包括:
步骤101:在执行程序上设置断点,并将断点处的指令修改为断点指令;
步骤102:触发断点指令进行异常处理,并将异常处理的返回地址修改为目标代码的地址;所述目标代码为断点处的指令的等价代码,其功能相当于断点处原来的指令;
步骤103:异常处理结束后,跳转执行目标代码。
具体地,在步骤101中,将断点处的指令修改为断点指令,执行该断点指令时将触发一个断点异常;该断点指令可以为导致程序异常中断的指令,例如可以为非法指令,该非法指令可以使程序运行到该指令过程时,出现错误、故障等不正常条件而引发中断,该断点指令还可以为陷阱指令,例如INT3指令。对于断点指令为何种类型在此不作特别限制。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210222834.8/2.html,转载请声明来源钻瓜专利网。