[发明专利]一种异常现场的内存压缩和保存方法有效
申请号: | 201810975828.7 | 申请日: | 2018-08-24 |
公开(公告)号: | CN109271206B | 公开(公告)日: | 2022-01-21 |
发明(设计)人: | 曾涛;鲍海翔;王艳;谷晓博 | 申请(专利权)人: | 晶晨半导体(上海)股份有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401;G06F9/50 |
代理公司: | 上海申新律师事务所 31272 | 代理人: | 俞涤炯 |
地址: | 201203 上海市浦东新区张江*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 异常 现场 内存 压缩 保存 方法 | ||
本发明公开了一种异常现场的内存压缩和保存方法,包括如下步骤:步骤S1,提供一系统,当所述系统发生重新启动时,在系统引导过程中判断重新启动的原因是否符合预设条件,如不符合则正常重新启动并退出;步骤S2,压缩系统内存中的数据并保存至所述系统内存中一预设位置;步骤S3,在初始化系统过程中将保存在所述预设位置的所述数据转存至一非易失性存储器中,本发明无需预留特定内存,能够将异常信息数据进行完整压缩并原址存放在系统内存中,节约了存储空间。
技术领域
本发明涉及计算机技术领域,尤其涉及一种异常现场的内存压缩和保存方法。
背景技术
当计算机应用程序在运行中遇到异常,比如内存访问越界、内存破坏等问题时,平台的系统内核通常会打印异常现场的调用栈以及CPU的寄存器信息,以给问题定位提供必要帮助。但是受限于设备运行速度、性能、存储空间等诸多因素,异常现场的打印内容往往很有限,导致平台无法准确定位问题数据的来源,也就无法精准分析异常情况发生的原因。
针对上述问题,现有技术中,系统内核通常都会提供异常现场转存机制,能够在发生异常的时候将内存的一些日志信息、内存状态、内核关键数据结构、堆栈指针等内容存储到指定路径或者预留在内存中。但由于现有的异常现场转存机制通常需要预留一定量的内存空间,这部分内存在内核正常运行时对内核不可见,也就减少了设备的可用内存空间。有些异常现场转存机制则通过提供当前地址的空间镜像来存储异常信息数据,这将导致产生的存储文件过大,会占用较大的存储空间。并且,现有的异常现场转存机制不能在除一些崩溃信号以外的异常状态下被触发,妨碍了对系统的一些突发异常情况的分析。
发明内容
鉴于上述存在的技术问题,本发明的目的在于提供一种异常现场的内存压缩和保存方法,该异常现场的内存压缩和保存方法通过记忆转储方法实现,以解决上述技术问题。
本发明解决其技术问题采取的技术方案在于,提供一种异常现场的内存压缩和保存方法,包括如下步骤:
步骤S1,提供一系统,当所述系统发生重新启动时,在系统引导过程中判断重新启动的原因是否符合预设条件,如不符合则正常重新启动并退出;
步骤S2,压缩系统内存中的数据并保存至所述系统内存中一预设位置;
步骤S3,在初始化系统过程中将保存在所述预设位置的所述数据转存至一非易失性存储器中。
作为本发明的一种优选方案,所述预设条件为根据系统监控装置发出的重启指令进行重新启动,或者因为内核卡死进行重新启动。
作为本发明的一种优选方案,所述步骤S2结束后,所述步骤S3开始之前,进行内核引导,并将所述预设地址作为启动环境的一部分。
作为本发明的一种优选方案,所述内核引导成功后,初始化内存镜像程序,并创建对应所述数据的文件系统节点。
作为本发明的一种优选方案,所述步骤S4中转存所述数据之前,检测所述文件系统节点是否与所述数据的存储位置对应,如对应则通过所述内存镜像程序转存所述数据至所述非易失性存储器。
作为本发明的一种优选方案,所述系统监控装置为硬件看门狗。
作为本发明的一种优选方案,所述系统为Linux系统。
作为本发明的一种优选方案,所述系统内存为DDR存储器。
作为本发明的一种优选方案,所述步骤S2中,压缩所述数据的方法为原址压缩。
作为本发明的一种优选方案,通过一引导加载程序启动所述系统,在所述引导加载程序的第二阶段判断重新启动的原因是否符合预设条件。
与现有技术相比,本发明具有如下特性:
1、无需预留特定内存,减少了对存储空间的占用。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于晶晨半导体(上海)股份有限公司,未经晶晨半导体(上海)股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810975828.7/2.html,转载请声明来源钻瓜专利网。