一种内存溢出的调试方法、智能终端及存储介质技术

技术编号:24409334 阅读:77 留言:0更新日期:2020-06-06 08:29
本发明专利技术公开了一种内存溢出的调试方法、智能终端及存储介质,通过配置内存管理单元中的内存块的读写属性,将内存划分成读写与只读交替的内存块;获取受保护的(只读)内存块,当检测到对受保护的(只读)内存块进行写操作时,则表示内存溢出;当内存溢出到受保护的内存块,则捕获内存溢出的异常。内存管理单元配置为只读属性的内存块被非法写操作时,系统会立即发现这个异常操作并调用异常处理函数记录函数的调用栈来定位内存溢出的位置,将内存划分为非保护和保护相间的若干内存块,系统将非保护的(读写)内存块分配出去使用,当写操作访问到保护的(只读)内存时,说明有内存溢出的操作,系统捕获到这个异常,大大增加了捕获异常的概率。

A debugging method of memory overflow, intelligent terminal and storage medium

【技术实现步骤摘要】
一种内存溢出的调试方法、智能终端及存储介质
本专利技术涉及操作系统
,尤其涉及一种内存溢出的调试方法、智能终端及存储介质。
技术介绍
内存溢出是指由于程序的错误导致使用的内存超出了程序申请内存的范围。发生了内存溢出会使程序的运行变的不可预期,如果内存溢出将很重要的数据覆盖了,系统可能会发出异常并重启,如果覆盖的数据不是太重要,系统可能会运行很长时间都还觉察不到问题。正是因为内存溢出让程序行为变的不可预期,这类问题很难排查。内存溢出是一个需要很大工作量去调测的复杂问题,引起内存溢出的写操作会让系统运行的行为变的不可预期,时常,在系统发生功能异常时离内存溢出操作有很长的时间了。现在定位问题常用的办法是根据系统日志记录的异常信息来定位,但由于异常的功能点和发生内存溢出的点有时根本没联系,增加了定位问题的难度。因此,现有技术还有待于改进和发展。
技术实现思路
本专利技术的主要目的在于提供一种内存溢出的调试方法、智能终端及存储介质,旨在解决现有技术中的上述缺陷。为实现上述目的,本专利技术提供一种内存溢出的本文档来自技高网...

【技术保护点】
1.一种内存溢出的调试方法,其特征在于,所述内存溢出的调试方法包括:/n在内存管理单元中将内存划分成读写与只读交替的若干内存块;/n将不受保护的内存块分配出去使用,当检测到对受保护的内存块进行写操作时,则表示内存有溢出的操作,系统捕获内存溢出的异常;/n系统捕获到异常并在异常处理函数中记录函数的栈信息。/n

【技术特征摘要】
1.一种内存溢出的调试方法,其特征在于,所述内存溢出的调试方法包括:
在内存管理单元中将内存划分成读写与只读交替的若干内存块;
将不受保护的内存块分配出去使用,当检测到对受保护的内存块进行写操作时,则表示内存有溢出的操作,系统捕获内存溢出的异常;
系统捕获到异常并在异常处理函数中记录函数的栈信息。


2.根据权利要求1所述的内存溢出的调试方法,其特征在于,每个内存块配置相应的属性及中断信号用于监控只读内存被写的错误操作。


3.根据权利要求1所述的内存溢出的调试方法,其特征在于,将不受保护的内存块分配出去使用,当检测到对受保护的内存块进行写操作时,则表示内存有溢出的操作,具体包括:
每一块可申请的内存块均为1K字节对齐,应用程序常用的内存块小于1K;
最小内存管理单元保护的内存块为1K字节,所述内存管理单元请求需要将每个内存块都进行1K字节对齐;
在不受保护的1内存块后额外增加1K内存块,额外的1K的内存块为受保护的,表示只读不可写,当对受保护的块进行写操...

【专利技术属性】
技术研发人员:谭冰孟庆晓
申请(专利权)人:深圳震有科技股份有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1