本申请实施例涉及内核异常处理领域,公开了一种内核异常处理方法及系统。内核异常处理系统包括电子设备、网络控制台和远端主机;所述电子设备与所述网络控制台和所述远端主机通信连接,且所述网络控制台与所述远端主机通信连接。本申请中,当电子设备的操作系统发生内核崩溃时,电子设备将内核崩溃的上下文信息发送至远端主机,且启动网络控制台;远端主机接收上下文信息后,与网络控制台进行交互,从而获得对应的崩溃日志,进行精确分析内核崩溃原因,不需要大容量存储Vmcore文件,节省存储Vmcore文件的需求。Vmcore文件的需求。Vmcore文件的需求。
【技术实现步骤摘要】
内核异常处理方法及系统
[0001]本申请实施例涉及内核处理
,尤其涉及一种内核异常处理方法及系统。
技术介绍
[0002]目前,电子设备,例如计算机中,安装有Linux操作系统,也可以是其他类型的操作系统,以Linux操作系统为例,操作系统发生内核崩溃,是指Linux操作系统的内核崩溃,当然,也可以是其他类型的操作系统及内核。内核崩溃又称为内核异常,是指内核碰到了不能恢复的错误,比如指令访存地址错误、指令内容本身错误等。当内核异常发生时,系统一般需要重启才能恢复。
[0003]目前,现有的内核崩溃的原因分析,通常对内核的内存转储机制Kdump产生的内存转储文件Vmcore进行分析,但是,该方式对内存要求较高。
技术实现思路
[0004]本申请实施例的目的是提供一种内核异常处理方法及系统,在内核异常发生时切换到内核态下网络控制台,网络控制台与远端主机交互,分析内核崩溃原因,不需要大容量存储Vmcore文件,节省存储Vmcore文件的需求。
[0005]为解决上述技术问题,本申请实施例采用以下技术方案:
[0006]第一方面,本申请实施例中提供给了一种内核异常处理方法,应用于内核异常处理系统,所述系统包括电子设备、网络控制台和远端主机;所述电子设备与所述网络控制台和所述远端主机通信连接,且所述网络控制台与所述远端主机通信连接;所述方法包括:
[0007]在所述电子设备的操作系统发生内核崩溃时,所述电子设备将所述内核崩溃的上下文信息发送至所述远端主机,且所述电子设备启动所述网络控制台;
[0008]所述远端主机在接收到所述上下文信息后,生成调试命令,且将所述调试命令发送至所述网络控制台;
[0009]所述网络控制台接收所述远端主机发送的调试命令,且根据所述调试命令将所述内核崩溃对应的崩溃日志发送至所述远端主机;
[0010]所述远端主机接收到所述崩溃日志后,分析内核崩溃原因。
[0011]在一些实施例中,所述方法还包括:
[0012]所述电子设备判断当前指令异常是否为用户态指令异常;
[0013]如果所述当前指令异常不是所述用户态指令异常,则电子设备确定所述当前指令异常为内核态指令异常;
[0014]电子设备调用中断函数,以关闭发生内核态异常的中断。
[0015]在一些实施例中,所述电子设备利用轮询机制,将所述内核崩溃的上下文信息发送至所述远端主机;所述远端主机利用所述轮询机制,接收所述上下文信息;且所述网络控制台利用轮询机制,接收所述远端主机发送的调试命令。
[0016]在一些实施例中,在所述远端主机将所述调试命令发送至所述网络控制台之后,
所述方法还包括:
[0017]所述电子设备在内核日志缓冲区,获取崩溃日志;
[0018]所述电子设备利用轮询机制,将所述崩溃日志发送给所述网络控制台。
[0019]在一些实施例中,所述远端主机接收到所述崩溃日志后,分析内核崩溃原因,包括:
[0020]所述远端主机接收到所述崩溃日志后,利用异常分析程序调用crash工具对所述崩溃日志进行分析,获得内核崩溃原因。
[0021]在一些实施例中,所述远端主机接收到所述崩溃日志后,利用异常分析程序调用crash工具对所述崩溃日志进行分析,获得内核崩溃原因,包括:
[0022]所述远端主机根据所述崩溃日志,获取发生异常的指令的第一指令内容及对应的地址;
[0023]所述远端主机利用异常分析程序,调用crash工具判断发生异常的所述指令是否为内存访问指令;
[0024]如果所述远端主机判定发生异常的所述指令为内存访问指令,则所述远端主机判断发生异常的所述指令对应的访存地址是否异常;
[0025]如果发生异常的所述指令对应的访存地址异常,则所述远端主机确定数据访问异常,并跟踪数据访问异常原因。
[0026]在一些实施例中,所述方法还包括:
[0027]如果所述远端主机判定发生异常的所述指令不是内存访问指令,则所述远端主机根据发生异常的所述指令对应的地址从所述异常分析程序中获取第二指令内容;
[0028]所述远端主机判断所述第二指令内容和所述第一指令内容是否一致;
[0029]如果所述第一指令内容与所述第二指令内容存在差异,则所述远端主机确定发生异常的所述指令的内存被修改;
[0030]所述远端主机分析发生异常的所述指令的内存被修改原因。
[0031]在一些实施例中,在所述如果发生异常的所述指令对应的访存地址异常之后,或所述远端主机确定发生异常的所述指令的内存被修改之后,所述方法还包括:
[0032]所述远端主机向所述网络控制台获取内存数据,其中,所述内存数据与所述访存地址异常原因或所述内存被修改原因对应。
[0033]第二方面,本申请实施例还提供一种内核异常处理系统,所述系统包括电子设备、网络控制台和远端主机;所述电子设备与所述网络控制台和所述远端主机通信连接,且所述网络控制台与所述远端主机通信连接,其中:
[0034]所述电子设备,用于在所述电子设备的操作系统发生内核崩溃时,将所述内核崩溃的上下文信息发送至所述远端主机,且所述电子设备启动所述网络控制台;
[0035]所述远端主机,用于在接收到所述上下文信息后,生成调试命令,且将所述调试命令发送至所述网络控制台;
[0036]所述网络控制台,用于接收所述远端主机发送的调试命令,且根据所述调试命令将所述内核崩溃对应的崩溃日志发送至所述远端主机;
[0037]所述远端主机,还用于接收到所述崩溃日志后,分析内核崩溃原因。
[0038]在一些实施例中,所述电子设备,还用于:
[0039]判断当前指令异常是否为用户态指令异常;
[0040]如果所述当前指令异常不是所述用户态指令异常,则确定所述当前指令异常为内核态指令异常;
[0041]调用中断函数,以关闭发生内核态异常的中断。
[0042]本申请实施例的有益效果:区别于现有技术的情况,本申请实施例提供的内核异常处理方法及系统,系统包括电子设备、网络控制台和远端主机。当电子设备的操作系统发生内核崩溃时,电子设备将内核崩溃的上下文信息发送至远端主机,且启动网络控制台;远端主机接收上下文信息后,与网络控制台进行交互,从而获得对应的崩溃日志,进行精确分析内核崩溃原因,不需要大容量存储Vmcore文件,节省存储Vmcore文件的需求。
附图说明
[0043]一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。
[0044]图1是本申请内核异常处理系统的结构示意图;
[0045]图2是本申请电子设备的一个实施例中控制器的硬件结构示意图;
[0046]图3是本申请内核异常处理方法的一个实施例本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种内核异常处理方法,其特征在于,应用于内核异常处理系统,所述系统包括电子设备、网络控制台和远端主机;所述电子设备与所述网络控制台和所述远端主机通信连接,且所述网络控制台与所述远端主机通信连接;所述方法包括:在所述电子设备的操作系统发生内核崩溃时,所述电子设备将所述内核崩溃的上下文信息发送至所述远端主机,且所述电子设备启动所述网络控制台;所述远端主机在接收到所述上下文信息后,生成调试命令,且将所述调试命令发送至所述网络控制台;所述网络控制台接收所述远端主机发送的调试命令,且根据所述调试命令将所述内核崩溃对应的崩溃日志发送至所述远端主机;所述远端主机接收到所述崩溃日志后,分析内核崩溃原因。2.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述电子设备判断当前指令异常是否为用户态指令异常;如果所述当前指令异常不是所述用户态指令异常,则电子设备确定所述当前指令异常为内核态指令异常;电子设备调用中断函数,以关闭发生内核态异常的中断。3.根据权利要求1所述的方法,其特征在于,所述电子设备利用轮询机制,将所述内核崩溃的上下文信息发送至所述远端主机;所述远端主机利用所述轮询机制,接收所述上下文信息;且所述网络控制台利用轮询机制,接收所述远端主机发送的调试命令。4.根据权利要求1所述的方法,其特征在于,在所述远端主机将所述调试命令发送至所述网络控制台之后,所述方法还包括:所述电子设备在内核日志缓冲区,获取崩溃日志;所述电子设备利用轮询机制,将所述崩溃日志发送给所述网络控制台。5.根据权利要求1所述的方法,其特征在于,所述远端主机接收到所述崩溃日志后,分析内核崩溃原因,包括:所述远端主机接收到所述崩溃日志后,利用异常分析程序调用crash工具对所述崩溃日志进行分析,获得内核崩溃原因。6.根据权利要求5所述的方法,其特征在于,所述远端主机接收到所述崩溃日志后,利用异常分析程序调用crash工具对所述崩溃日志进行分析,获得内核崩溃原因,包括:所述远端主机根据所述崩溃日志,获取发生异常的指令的第一指令内容及对应的地址;所述远端主机利用异常分析程序,调用crash工具...
【专利技术属性】
技术研发人员:李国辉,
申请(专利权)人:深圳市道通智能汽车有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。