[发明专利]一种内存监控方法及装置有效
申请号: | 201180002063.5 | 申请日: | 2011-09-20 |
公开(公告)号: | CN102388368A | 公开(公告)日: | 2012-03-21 |
发明(设计)人: | 李俊;郑海珍;张超;秦海军 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F11/00 | 分类号: | G06F11/00;G06F11/34 |
代理公司: | 北京凯特来知识产权代理有限公司 11260 | 代理人: | 郑立明;陈亮 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 监控 方法 装置 | ||
技术领域
本发明涉及计算机应用领域,更具体的说,涉及一种内存监控方法及装置。
背景技术
在计算机应用领域中,要监控某一段内存是否被访问,通常是使用一些专业的内存监控软件来实现的,但是当监测被破坏后,该内存监控软件不能及时上报错误,只能在内存释放或内存分配资源的时候,才会发现错误,因此该方案不具有监控时效性,使得程序的除错难度大幅增加;此外,现有的内存监控软件对于自行开发的操作系统不能完全兼容,也使得侦错效果相当有限。如何能够实时的监控到内存是否被读写,而不破坏当前运行的系统,进而缩短开发周期,是目前要解决的一个重要问题。
目前,调试寄存器可提供4个地址寄存器供监控内存地址的读写,具有处理速度快,能够对内存实时监控的特点。数据断点的探测就是利用该机制实现的,但该技术的实现要依赖于硬件机制,因此使用范围非常有限;同时监控的地址个数有限,造成了开发人员的调试瓶颈。
现有方案中部分CPU支持硬件断点,如X86架构下,共有8个调试寄存器DR0-DR7,用于保存断点的内存地址或I/O端口地址。当前的数据断点技术是利用调试寄存器实现的,把需要监视的地址放入DR0-DR3寄存器中,给调试控制寄存器DR7相应的置位,使DR0-DR3中存放的监视地址生效。
当程序读写某个设置的断点的变量时,会触发调试异常,内核就通过接管调试异常,进行相关的判断操作和其它处理操作,然后再进行断点信息记录和输出,整个过程不影响程序的正常运行,并能成功记录断点信息。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
现有方案依赖于硬件调试资源,由于部分CPU构架没有调试寄存器,因此不支持硬件断点,兼容性差,同时由于调试寄存器的个数有限,也限制了数据断点探测数量的使用范围。
发明内容
本发明的实施例提供了一种内存监控方法及装置,能够降低现有方案中数据断点技术的局限性。
本发明的技术方案包括:
本发明一方面提供了一种内存监控方法,包括:
将需要监控的内存地址放入调试页中;
在CPU对所述调试页中内存地址读写时,则触发缺页异常指令;
在确定所述缺页异常指令是由访问被监控的内存地址造成时,采用预定调试流程对所述缺页异常指令进行处理。
本发明另一方面提供了一种内存监控装置,包括:
集成模块,用于将需要监控的数据放入调试页中;
监控模块,用于在CPU对所述调试页中数据读写时,则触发缺页异常指令;
执行模块,用于在确定所述缺页异常指令是由访问被监控的内存地址造成时,采用预定调试流程对所述缺页异常指令进行处理。
由上述本发明的实施例提供的技术方案可以看出,通过将需要监控的内存地址放入调试页中,使得除监控内存地址之外,其他内存数据的访问不会触发异常,不会对系统性能造成过大的影响;在CPU对所述调试页中数据读写时,则触发缺页异常指令;在确定所述缺页异常指令是由访问被监控的内存地址造成时,采用预定调试流程对所述缺页异常指令进行处理,可以有效的提升系统的调试和维护效率。
附图说明
图1为本发明实施例所述内存监控方法的流程图;
图2为本发明实施例一的流程图;
图3为本发明实施例所述内存监控装置的结构示意图。
具体实施方式
本发明实施例提出的一种内存监控方法及装置,是一种基于缺页异常的断点探测方案,能够增加断点使用数量和范围,避免了现有方案对数据断点的个数及监控长度带来的局限性。此外本发明利用页的保护机制来实现多数据断点,具有通用性。
本发明通过将需要监控的内存地址放入调试页中,使得除了监控内存之外,其余内存访问并不会触发异常,从而不至于对系统性能造成过大的影响;在CPU对所述调试页中内存地址读写时,则触发缺页异常指令;在确定所述缺页异常指令是由访问被监控的内存地址造成时,采用预定调试流程对所述缺页异常指令进行处理。通过这种方式可以对物理内存中的状态进行监控,同时抓取写入者和读取者的相关数据,提高了随机的内存错误定位的处理速度,有效提升了系统的调试和维护的效率。
为了便于对本发明实施例中相关术语的理解,下面对涉及到的术语的含义进行简要说明:
数据断点:所谓数据断点是指CPU在访问一个内存地址时能够暂停该指令执行,转而执行一个中断程序,完成现场状态抓取的过程。
分页:现代CPU提供的内存管理功能,它将全部物理内存分割为一个个物理页,这些物理页具有一些控制属性,这种技术称为分页。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201180002063.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:自行车变速操作装置
- 下一篇:一种电力机车蓄电池充电装置及充电方法