[发明专利]内存越界访问的定位方法及装置无效
申请号: | 200910119747.8 | 申请日: | 2009-03-24 |
公开(公告)号: | CN101520754A | 公开(公告)日: | 2009-09-02 |
发明(设计)人: | 石江涛 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | G06F12/14 | 分类号: | G06F12/14 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙 洪;霍育栋 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 越界 访问 定位 方法 装置 | ||
1、一种内存越界访问的定位方法,在程序某任务中的函数访问某一块合法内存时发生越界后,按以下步骤实现定位:
重新分配内存,在所述合法内存的前面和/或后面为所述合法内存多分出包含至少一个完整内存页的区域,并设置多分出的所述内存页的属性为禁止所述访问;
重新编译后,启动所述程序;
当所述任务中的所述函数非法访问多分出的所述内存页时,进行数据访问异常处理,查看当前的程序运行信息,定位到进行非法访问的所述任务和/或所述函数。
2、根据权利要求1所述的定位方法,其特征在于:
所述访问为读,所述内存页的属性设置为不可读或不可读不可写;或者
所述访问为写,所述内存页的属性设置为不可写或不可读不可写。
3、根据权利要求1或2所述的定位方法,其特征在于:
进行所述数据访问异常处理时,将非法访问多分出的所述内存页的任务挂起在访问语句上,通过查看当前运行的任务的状态,将被挂起的任务确定为要定位的所述任务,再查看所述任务当前的函数调用信息,定位到访问多分出的所述内存页的所述函数。
4、根据权利要求3所述的定位方法,其特征在于:
定位到所述任务和函数后,将所述任务和函数的信息显示给用户或者将所述任务和函数的信息记录在指定的内存中供用户查看。
5、根据权利要求3所述的定位方法,其特征在于:
进行所述数据访问异常处理时,在定位到进行非法访问的所述任务后,还通过在任务栈或任务寄存器中查看所述任务的当前运行指令指针,定位到所述任务中进行非法访问的访问语句。
6、根据权利要求1所述的定位方法,其特征在于:所述定位方法应用于嵌入式系统。
7、一种可对内存越界访问进行定位的装置,其特征在于,包括:
初始化模块,用于在程序某任务中的函数访问某一块合法内存时发生越界访问后,根据重新分配了内存并重新编译后的程序,在初始化时,在所述合法内存的前面和/或后面为所述合法内存多分出包含至少一个完整内存页的区域,并设置多分出的所述内存页的属性为禁止所述访问;
数据访问异常检测模块,用于在所述任务中的所述函数非法访问多分出的所述内存页时,调用数据访问异常处理模块;
数据访问异常处理模块,用于进行数据访问异常处理,查看当前的程序运行信息,定位到进行非法访问的所述任务和/或所述函数。
8、根据权利要求7所述的装置,其特征在于:
所述数据访问异常处理模块进行所述数据访问异常处理时,将非法访问多分出的所述内存页的任务挂起在访问语句上,通过查看当前运行的任务的状态,将被挂起的任务确定为要定位的所述任务,再查看所述任务当前的函数调用信息,定位到访问多分出的所述内存页的所述函数。
9、根据权利要求8所述的装置,其特征在于:
所述数据访问异常处理模块定位到所述任务和函数后,还将所述任务和函数的信息显示给用户或者将所述任务和函数的信息记录在指定的内存中供用户查看。
10、根据权利要求8或9所述的装置,其特征在于:
所述数据访问异常处理模块在定位到进行非法访问的所述任务后,还通过在任务栈或任务寄存器中查看所述任务的当前运行指令指针,定位到所述任务中进行非法访问的访问语句。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910119747.8/1.html,转载请声明来源钻瓜专利网。