[发明专利]一种记录内核异常栈及调试信息的方法及系统有效
| 申请号: | 201510555761.8 | 申请日: | 2015-09-01 |
| 公开(公告)号: | CN105159819B | 公开(公告)日: | 2018-03-13 |
| 发明(设计)人: | 高福亮 | 申请(专利权)人: | 汉柏科技有限公司 |
| 主分类号: | G06F11/34 | 分类号: | G06F11/34 |
| 代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 李相雨 |
| 地址: | 300384 天津市滨海新*** | 国省代码: | 天津;12 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 记录 内核 异常 调试 信息 方法 系统 | ||
技术领域
本发明涉及计算机技术领域,尤其涉及一种记录内核异常栈及调试信息的方法及系统。
背景技术
现有的网络设备(如防火墙、交换机等)一般都搭载有watchdog功能,即在系统异常或发生重大错误情况下自动重启设备,而在linux内核出现异常时一般会将异常栈信息打印到串口或终端显示器。
但是,现有技术方法的缺点是内核异常栈信息只有打印到串口或显示器功能,没有记录功能,没有显示内核发生异常的时间,设备重启后异常栈就丢失了。而且,如果设备没有连接串口或显示器在发生异常后就自动重启了,如此打印的内核异常栈信息也就随之消失了,进而导致有时测试和研发人员甚至不知道设备发生过异常,而有些设备没有自动重启功能则一直停在内核异常发生时,测试和研发人员发现时也无法从异常栈信息中获取是何时发生的异常。由于内核异常栈信息是解决内核debug必不可少的且至关重要的信息,有时还需要把内核异常栈或调试信息发给后端研发人员定位。
因此,如何实现自动记录内核异常栈和调试信息,以便于文件导出及查看以往发生的内核异常信息,实现内核异常问题的定位,成为目前急需解决的问题之一。
发明内容
针对现有技术方案存在的问题和不足,本发明提供了一种记录内核异常栈及调试信息的方法及系统,实现了内核异常栈和调试信息的自动记录,以便于内核异常问题的定位。
根据本发明的一个方面,提供了一种记录内核异常栈及调试信息的方法,该方法包括:
创建两个全局变量和一个全局变量数组,其中,第一全局变量用于保存文件句柄,第二全局变量用于保存内核异常标识位,全局变量数组用于缓存内核异常信息;
当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并将该文件的文件句柄记录到第一全局变量中;
设置所述内核异常标识位;
当调用printk函数时,若检测到所述内核异常标识位处于置位状态,则将所述当前内核异常栈信息缓存到所述全局变量数组中;
根据所述文件句柄,将所述全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。
其中,所述方法还包括:
当调用printk函数时,若检测到所述内核异常标识位处于非置位状态,则将当前需要打印的内容打印到串口或显示器。
其中,所述在存储介质中打开用于记录内核异常栈信息的文件之后,还包括:
获取当前系统时间,将所述当前系统时间作为内核异常发生时间记录在所述文件中。
其中,所述当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,具体包括:
当内核发生异常时,触发内核异常处理函数,在内核异常处理函数中打开用于记录内核异常栈信息的文件,该文件所在路径为存储介质;
其中,所述内核异常处理函数为oops内核异常处理函数。
其中,所述oops内核异常处理函数通过调用文件打开函数在存储介质中打开用于记录内核异常栈信息的文件,并生成文件句柄;
保存返回的文件句柄。
根据本发明的另一个方面,提供了一种记录内核异常栈及调试信息的系统,该系统包括:
变量创建模块,用于创建两个全局变量和一个全局变量数组,其中,第一全局变量用于保存文件句柄,第二全局变量用于保存内核异常标识位,全局变量数组用于缓存内核异常信息;
文件打开模块,用于当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并将该文件的文件句柄记录到第一全局变量中;
标识设置模块,用于设置所述内核异常标识位;
信息缓存模块,用于当调用printk函数时,若检测到所述内核异常标识位处于置位状态,则将所述当前内核异常栈信息缓存到所述全局变量数组中;
信息写入模块,用于根据所述文件句柄,将所述全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。
其中,所述系统还包括:
打印模块,用于当调用printk函数时,若检测到所述内核异常标识位处于非置位状态,则将当前需要打印的内容打印到串口或显示器。
其中,所述系统还包括:
时间获取模块,用于在存储介质中打开用于记录内核异常栈信息的文件之后,获取当前系统时间,将所述当前系统时间作为内核异常发生时间记录在所述文件中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于汉柏科技有限公司,未经汉柏科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510555761.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:自动化测试装置及方法
- 下一篇:纳米粒子射流微量润滑磨削雾滴粒径的测量装置





