[发明专利]一种多断点的软件调试装置和方法有效
| 申请号: | 201410010606.3 | 申请日: | 2014-01-09 |
| 公开(公告)号: | CN104778116B | 公开(公告)日: | 2018-09-18 |
| 发明(设计)人: | 郝宇;安康;王志忠 | 申请(专利权)人: | 深圳市中兴微电子技术有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/30 |
| 代理公司: | 北京派特恩知识产权代理有限公司 11270 | 代理人: | 张颖玲;张振伟 |
| 地址: | 518085 广*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 断点 软件 调试 装置 方法 | ||
本发明公开了一种多断点的软件调试装置和方法,该软件调试装置包括:驱动器、微处理器、指令存储器和微码集成开发环境(IDE);上述软件调试装置通过在软件程序中设置断点,获取断点信息,将断点处的指令替换成断点指令,在执行到断点指令时,上报中断、冻结流水线,根据IDE下发的命令将所述断点指令换回真实指令,解冻流水线,对断点处的真实指令进行取指,在断点指令执行的间隙将断点处的真实指令再次替换成断点指令的方法来实现多断点的软件调试。
技术领域
本发明涉及软件调试技术,尤其涉及一种多断点的软件调试装置和方法。
背景技术
微处理器调试技术广泛地应用于软件故障定位、软件代码分析以及逆向工程领域,对微处理器的设计和使用有至关重要的作用。
对微处理器的软件进行调试一般包括以下两个方面的内容:在软件程序中设置断点,使程序执行到所设置的断点位置时产生中断并停止执行;用户可以对程序执行单步操作或使之摆脱中断状态继续往下执行。
从上述内容可以看出,断点技术是微处理器的软件调试中不可或缺并有决定性作用的技术。当前的断点技术主要分为两种:
第一种,硬件断点的方案。这种技术采用若干个断点寄存器来存储断点位置的指针,在微处理器执行指令时,根据配置不断将所执行指令的指针与断点寄存器中的断点指针进行对比,当发生匹配时,产生中断并冻结微处理器的流水线跳入特定程序段进行处理。这种硬件断点的显而易见的缺点就是,由于断点寄存器的数量限制,硬件断点只能实现数量有限的几个断点,在调试过程中会有很多的限制。
第二种,软件多断点方案。这技术当前使用非常广泛,一般做法是将微处理器执行的指令存储器中的断点位置的指令替换成断点指令,并将断点处的真实指令备份到另一个存储器中,当微处理器执行到断点位置时,处理器流水线解析断点位置处的指令,获知该断点位置处的指令为断点指令后产生中断,并冻结流水线跳入指定程序段进行处理,在产生中断后使用高级语言来解析该断点处的真实指令,利用PC++来使程序跳入断点后一条指令开始执行。上述软件多断点调试技术需要对断点位置的真实指令进行备份,在替换回真实指令时需要高级语言来解析断点处的真实指令,如此,实现该方案需要消耗大量额外的存储空间来存储备份断点处的真实指令,还需要替换流水线中指令,实现困难。
发明内容
为解决现有存在的问题,本发明实施例主要提供一种多断点的软件调试装置和方法,简单易行的实现了多断点的软件调试,同时节省了单板上的存储资源。
本发明的技术方案是这样实现的:
本发明提供了一种多断点的软件调试装置,该软件调试装置包括:驱动器、微处理器、指令存储器和微码集成开发环境IDE;其中,
所述驱动器,用于获取软件程序中的断点信息,将所述断点信息发送给指令存储器,并根据指令存储器中的断点信息将断点处的真实指令替换成断点指令,在上报中断给IDE后,根据IDE下发的命令将所述断点指令换回真实指令,触发微处理器解冻流水线,并在断点指令执行的间隙将断点处的真实指令再次替换成断点指令;
所述微处理器,用于当执行到断点指令时,通过驱动器上报中断给IDE,冻结流水线,并根据驱动器的触发解冻流水线,对断点处的真实指令进行取指;
所述指令存储器,用于存储断点指令和断点信息;
所述IDE,用于为用户提供下发命令的交互界面。
上述方案中,所述断点信息包括断点位置地址;所述断点指令为原地跳转指令;所述断点指令执行的间隙为断点指令在原地执行跳转的任意两次的间隙。
上述方案中,所述驱动器,还用于将来自所述IDE的命令解析成具体的寄存器或存储器读写信号通过总线发送给所述微处理器和/或指令存储器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市中兴微电子技术有限公司,未经深圳市中兴微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410010606.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种Java卡空闲块管理方法
- 下一篇:分析应用响应性能的方法、装置和终端





