一种Linux内核崩溃信息定位方法技术

技术编号:30180267 阅读:13 留言:0更新日期:2021-09-25 15:42
一种Linux内核崩溃信息定位方法,所述方法包括步骤:通过kdump工具获取第一服务器中的内核崩溃信息;将所述内核崩溃信息转储到第二服务器;通过nm工具和objdump工具结合的方式获取所述内核崩溃信息对应的vmlinux的反汇编代码文件;根据所述反汇编代码文件定位所述内核崩溃信息对应代码。本申请提供的一种Linux内核崩溃信息定位方法可以通过kdump工具产生远程崩溃转储文件,并通过nm工具和objdump工具结合的方式快速产生vmlinux的局部反汇编文件,使对崩溃转储文件进行分析、精确定位的时间由60分钟缩减到1分钟,大大提高了内核开发人员的工作效率。了内核开发人员的工作效率。了内核开发人员的工作效率。

【技术实现步骤摘要】
一种Linux内核崩溃信息定位方法


[0001]本专利技术属于Linux系统
,具体涉及一种Linux内核崩溃信息定位方法。

技术介绍

[0002]Linux服务器以稳定著称,但是也会存在由于驱动或内核的某些代码漏洞导致系统崩溃的情况发生,此时的崩溃日志非常重要。而分析崩溃日志时,定位崩溃原因也非常重要。
[0003]在内核崩溃日志产生的技术中,目前有技术人员使用串口进行监控OOPS信息,但是这种方式实用性较差,若连续发生内核崩溃,更有可能造成串口输出内核崩溃信息被覆盖,使内核崩溃分析人员分析难度增大;也有技术人员使用kdump机制进行本地转储文件,通过本地转储文件从中提取OOPS信息和其他有关信息,也能达到分析内核崩溃原因的目的,但是大多数Linux服务器运行环境在机房中,这会对内核崩溃分析造成一些阻碍。
[0004]在内核崩溃日志分析的技术中,有技术人员直接使用OOPS信息的RIP字段找出造成内核崩溃的函数,然后在此函数中增加多个printk函数进行辅助定位,但是这种方法往往需要多次调试才能达到准确定位问题的目的。
[0005]也有技术人员通过对整个vmlinux文件进行反汇编处理,再结合RIP进行崩溃问题定位。以CentOS8为例,4.18.0

90内核的vmlinux文件大小是700MB,反汇编一次耗时约60分钟对,vmlinux文件进行反汇编这项工作非常耗时,查看反汇编文件也同样不方便。

技术实现思路

[0006]为解决上述问题,本专利技术提供了一种Linux内核崩溃信息定位方法,所述方法包括步骤:通过kdump工具获取第一服务器中的内核崩溃信息;将所述内核崩溃信息转储到第二服务器;获取所述第二服务器中的RIP信息;使用所述RIP信息找到造成所述内核崩溃信息的崩溃函数;使用nm工具查找所述崩溃函数在vmlinux的起始地址和结束地址;使用objdump工具对vmlinux进行局部反汇编;得到所述崩溃函数对应的反汇编代码文件;根据所述反汇编代码文件定位所述内核崩溃信息对应代码。
[0007]优选地,在所述通过kdump工具获取第一服务器中的内核崩溃信息之前还包括步骤:在所述第一服务器中配置分析环境;在所述第二服务器中配置测试环境。
[0008]优选地,所述通过kdump工具获取第一服务器中的内核崩溃信息包括步骤:获取配置有分析环境的第一服务器;
在所述第一服务器中安装Linux系统;配置所述分析环境的IP地址;在所述分析环境中安装内核软件包;开启所述分析环境中的kdump服务;在所述分析环境中配置kdump;在所述分析环境中制造内核崩溃。
[0009]优选地,所述Linux系统为CentOS8.1系统。
[0010]优选地,所述开启所述分析环境中的kdump服务包括步骤:在所述分析环境中安装kexec

tools软件包;开启kdump服务;设置所述kdump服务为开机启动。
[0011]优选地,所述在所述分析环境中配置kdump包括步骤:在所述分析环境中增加内核启动参数;对所述分析环境的root用户增加免密登陆配置;在kdump服务文件中增加IP地址对应的root用户账号。
[0012]优选地,所述在所述分析环境中制造内核崩溃包括步骤:获取所述分析环境中的内核崩溃触发命令;使用所述内核崩溃触发命令在所述分析环境中制造内核崩溃。
[0013]优选地,所述将所述内核崩溃信息转储到第二服务器包括步骤:所述第一服务器中的kdump获取所述内核崩溃信息;所述kdump将所述内核崩溃信息转换成预设格式;所述kdump将所述内核崩溃信息发送至所述第二服务器。
[0014]优选地,根据所述反汇编代码文件定位所述内核崩溃信息对应代码包括步骤:获取所述第二服务器中的RIP信息;使用所述RIP信息找到所述反汇编代码文件的执行位置;定位所述内核崩溃信息对应代码。
[0015]本申请提供的一种Linux内核崩溃信息定位方法可以通过kdump工具产生远程崩溃转储文件,并通过nm工具和objdump工具结合的方式快速产生vmlinux的局部反汇编文件,使对崩溃转储文件进行分析、精确定位的时间由60分钟缩减到1分钟,大大提高了内核开发人员的工作效率。
附图说明
[0016]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0017]图1是本专利技术提供的一种Linux内核崩溃信息定位方法的流程示意图。
具体实施方式
[0018]为使本专利技术的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本专利技术进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本专利技术的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本专利技术的概念。
[0019]如图1,在本申请实施例中,本专利技术提供了一种Linux内核崩溃信息定位方法,所述方法包括步骤:S1:通过kdump工具获取第一服务器中的内核崩溃信息;在本申请实施例中,所述通过kdump工具获取第一服务器中的内核崩溃信息包括步骤:获取配置有分析环境的第一服务器;在所述第一服务器中安装Linux系统;配置所述分析环境的IP地址;在所述分析环境中安装内核软件包;开启所述分析环境中的kdump服务;在所述分析环境中配置kdump;在所述分析环境中制造内核崩溃。
[0020]在本申请实施例中,第一服务器为安装有X86分析环境的服务器,在所述第一服务器中安装Linux系统,所述Linux系统为CentOS8.1系统;接着配置所述分析环境的IP地址,IP地址为192.168.1.101;然后在所述分析环境中安装内核软件包,内核软件包为debuginfo软件包;接着开启所述分析环境中的kdump服务,然后在所述分析环境中配置kdump,最后在所述分析环境中制造内核崩溃。
[0021]在本申请实施例中,在所述通过kdump工具获取第一服务器中的内核崩溃信息之前还包括步骤:在所述第一服务器中配置分析环境;在所述第二服务器中配置测试环境。
[0022]在本申请实施例中,准备两个服务器,然后在两个服务器中分别配置一个X86环境,分别是分析环境与测试环境,两个环境均安装CentOS8.1系统,分析环境配置IP地址为192.168.1.101,测试环境IP地址为192.168.1.102。
[0023]在本申请实施例中,所述开启所述分析环境中的kdump服务包括步骤:在所述分析环境中安装kexec

tools软件包;开启kdump服务;设置所述kdump服务为开机启动。
[0024]在本申请实施例中,开启所述分析环境中的kdump服务的具体步骤为:打开kdum本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Linux内核崩溃信息定位方法,其特征在于,所述方法包括步骤:通过kdump工具获取第一服务器中的内核崩溃信息;将所述内核崩溃信息转储到第二服务器;获取所述第二服务器中的RIP信息;使用所述RIP信息找到造成所述内核崩溃信息的崩溃函数;使用nm工具查找所述崩溃函数在vmlinux的起始地址和结束地址;使用objdump工具对vmlinux进行局部反汇编;得到所述崩溃函数对应的反汇编代码文件;根据所述反汇编代码文件定位所述内核崩溃信息对应代码。2.根据权利要求1所述的Linux内核崩溃信息定位方法,其特征在于,在所述通过kdump工具获取第一服务器中的内核崩溃信息之前还包括步骤:在所述第一服务器中配置分析环境;在所述第二服务器中配置测试环境。3.根据权利要求1所述的Linux内核崩溃信息定位方法,其特征在于,所述通过kdump工具获取第一服务器中的内核崩溃信息;包括步骤:获取配置有分析环境的第一服务器;在所述第一服务器中安装Linux系统;配置所述分析环境的IP地址;在所述分析环境中安装内核软件包;开启所述分析环境中的kdump服务;在所述分析环境中配置kdump;在所述分析环境中制造内核崩溃。4.根据权利要求3所述的Linux内核崩溃信息定位方法,其特征在于,所述Linux系统为CentOS8.1系统。5.根据权利要求3所述的Linux内核崩溃信息定位方法,...

【专利技术属性】
技术研发人员:郭皓闫瑞琼马玉昆齐璇战茅
申请(专利权)人:麒麟软件有限公司
类型:发明
国别省市:

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

1