一种内存监视的方法与流程

文档序号:16417194发布日期:2018-12-28 18:50阅读:142来源:国知局
一种内存监视的方法与流程

本发明涉及计算机内存技术领域,具体来讲涉及一种内存监视的方法。



背景技术:

在计算机应用领域中,要监视某段内存是否被改写,一般采用专业的内存监控软件来实现。但其检测被破坏后,需要内存释放或是分配资源时才能发现错误,导致不能及时上报错误,不具有实时性,这样会极大的影响程序的除错进度。因此,目前需要解决的问题是如何实时地监控内存是否被改写,且不破坏当前运行的系统。

目前内存监视技术中,通常采用硬件断点和软件断点的方式来实现内存的实时监控。硬件断点处理速度快,但可监视地址范围小,且跟处理器是否支持数据断点有关。

软件断点可以增加断点数量即可监视地址范围,通常采用的是内存页保护机制来实现。但是目前采用的内存页保护机制,通常是通过将零散的监视地址加入到某个物理调试页中,在对调试页中数据读写时触发缺页异常,过程比较复杂,因此采用此种方法实际操作性不强。



技术实现要素:

针对现有技术中存在的缺陷,本发明的目的在于提供一种内存监视的方法,监控某段内存是否被改写,可监视地址范围较大,过程简单,实际操作性强。

为达到以上目的,本发明采取一种内存监视的方法,包括步骤:S1.记录待监视的地址信息和监视地址所在页信息,将监视地址所在页的属性设置为只读;S2.若CPU触发缺页异常,将引起缺页异常的地址所在页属性设置为可读写,若在处理过程中发现引起缺页异常的地址为监视地址,则获取并记录调用栈相关信息,并插入陷阱指令;S3.CPU执行到陷阱指令,触发陷阱异常处理,将监视地址所在页的属性恢复为只读,且清除陷阱指令。

在上述技术方案的基础上,步骤S1中,设置一个监视地址信息表,监视地址信息表用于存放所有在监视地址范围内的监视地址信息。

在上述技术方案的基础上,步骤S1中,设置一个页地址信息表,页地址信息表用于存放所有监视地址所在页信息。

在上述技术方案的基础上,步骤S2中,当待监视地址的程序对只读属性的内存页地址进行写操作时,则CPU触发缺页异常。

在上述技术方案的基础上,待监视地址的程序对只读属性的内存页地址进行写操作的指令为当前指令,插入陷阱指令具体动作为,将当前指令的下一条指令根据应用的CPU平台修改为对应的陷阱指令。

在上述技术方案的基础上,若CPU在处理过程中检测引起缺页异常的地址不是监视地址,直接将当前指令的下一条指令根据应用的CPU平台修改为对应的陷阱指令。

在上述技术方案的基础上,所述修改为对应的陷阱指令时,记录陷阱指令的指令地址以及被修改的指令信息。

在上述技术方案的基础上,步骤S3中,清除陷阱指令,即,通过记录的陷阱相关信息,将陷阱指令还原为被修改的指令。

本发明的有益效果在于:记录待监视的地址信息和监视地址所在页信息,使得除监视地址之外,其他内存数据的访问不会触发异常,不会影响系统;当对只读内存页读写时,则触发缺页异常处理,能实时的记录下内存改写时的调用栈信息,有效提高某段内存监视的实时性。本发明的适用性广,适用于大多数嵌入式系统。

附图说明

图1为本发明实施例内存监视的方法的流程图;

图2为图1中步骤S2的详细流程图。

具体实施方式

以下结合附图及实施例对本发明作进一步详细说明。

如图1所示,本发明内存监视的方法,具体包括如下步骤:

S1.设置一个监视地址信息表和一个页地址信息表,分别记录待监视的地址(即监视地址)信息和监视地址所在页信息,其中,在监视地址范围内,监视地址信息表用于存放所有的监视地址信息,页地址信息表用于存放所有监视地址所在页信息。并且,将监视地址所在页的属性设置为只读。

S2.若CPU触发缺页异常,将引起缺页异常的地址所在页属性设置为可读写,若在处理过程中发现引起缺页异常的地址为监视地址,则获取并记录调用栈相关信息,并插入陷阱指令。

如图2所示,具体的步骤如下:

S201.当待监视地址的程序对只读属性的内存页地址进行写操作时,CPU触发缺页异常。

S202.将引起缺页异常的地址所在页属性设置为可读写。

S203.检查引起缺页异常的地址是否为待检测地址,即,是否在监视地址信息表中查找到对应的引起缺页异常的地址,若是,进入S204;若否,进入S205。

S204.分析当前寄存器信息,获取调用栈信息并记录,进入S205。

S205.将当前指令的下一条指令,根据应用的CPU平台修改为对应的陷阱指令。其中,当前指令为:待监视地址的程序对只读属性的内存页地址进行写操作的指令。并且,需要记录陷阱指令的指令地址以及被修改的指令信息。

S3.当CPU执行到陷阱指令时,触发陷阱异常处理,将监视地址所在页的属性恢复为只读。并且清除陷阱指令,即,通过记录的陷阱相关信息,将陷阱指令还原为被修改的指令。

上述步骤S1至S3为插入断点的过程,当需要删除断点时,将监视地址从监视地址信息表中删除,并将所在页的页地址信息中对应的属性设置为可读写。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1