解析vmcore文件的方法和装置制造方法及图纸

技术编号:8980683 阅读:433 留言:0更新日期:2013-07-31 22:48
本发明专利技术实施例提供一种解析vmcore文件的方法和装置。涉及通信技术领域和计算机操作系统领域。解决了通过内核符号表和gdb调试模块获取线性地址过于复杂,且返回结果可用性差,进而降低了系统的性能。本发明专利技术具体步骤可以包括:在内核崩溃前,将获取到的内存数据的地址信息进行第一次存储;在内核崩溃时,获取进行第一次存储后的地址信息;将进行第一次存储后的地址信息进行第二次存储,并将内存数据存储至vmcore文件中;根据内存数据的标识从进行第二次存储后的地址信息中获取待获取内存数据的地址信息;根据待获取内存数据的地址信息从vmcore文件中解析出待获取内存数据。可应用于解析vmcore文件中。

【技术实现步骤摘要】

本专利技术涉及通信
和计算机操作系统领域,尤其涉及解析vmcore文件的方法和装置
技术介绍
vmcore文件是内存转储机制的转储文件,内存转储机制是当内核发生错误并崩溃时,将内存中的数据存储到vmcore文件中,可以供专业人员分析错误原因甚至恢复重要信肩、OLinux系统可以包括Kdump (—种内存转储机制),Kdump是一种基于kexec技术的内核转储机制,kexec是内核快速启动机制,允许通过已经运行的内核的上下文启动一个新的内核,且新启动的内核占用内存小。这样,当当前内核发生错误并崩溃时,Kdump可以快速启动一个新的内核接管系统,然后,该新内核获取并存储前一个崩溃的内核的内存数据,具体的,可以是将前一个崩溃的内核的内存数据存储至新内核的vmcore文件中。通常的,Linux系统需要根据vmcore文件中存储的数据分析错误原因甚至恢复重要信息,这样,Linux系统首先需要获取待获取内存数据在vmcore文件中存储的线性地址,然后再根据线性地址获取从vmcore文件中获取待获取内存数据,即为对vmcore文件进行解析。现有技术中,获取待获取内存数据可以包括:1.获取本文档来自技高网...

【技术保护点】
一种解析虚拟内存转储vmcore文件的方法,其特征在于,包括:在内核崩溃前,将获取到的内存数据的地址信息进行第一次存储,在内核崩溃时,进行第一次存储后的地址信息允许被获取,所述地址信息包括:内存数据的线性地址、内存数据的偏移地址以及内存数据的标识;在内核崩溃时,获取进行第一次存储后的地址信息;将进行第一次存储后的地址信息进行第二次存储,并将所述内存数据存储至所述vmcore文件中,在内核崩溃后,进行第二次存储后的地址信息允许被获取;根据所述内存数据的标识从进行第二次存储后的地址信息中获取待获取内存数据的地址信息,所述待获取内存数据包括待获取内存数据的标识;根据所述待获取内存数据的地址信息从所述...

【技术特征摘要】
1.一种解析虚拟内存转储vmcore文件的方法,其特征在于,包括: 在内核崩溃前,将获取到的内存数据的地址信息进行第一次存储,在内核崩溃时,进行第一次存储后的地址信息允许被获取,所述地址信息包括:内存数据的线性地址、内存数据的偏移地址以及内存数据的标识; 在内核崩溃时,获取进行第一次存储后的地址信息; 将进行第一次存储后的地址信息进行第二次存储,并将所述内存数据存储至所述vmcore文件中,在内核崩溃后,进行第二次存储后的地址信息允许被获取; 根据所述内存数据的标识从进行第二次存储后的地址信息中获取待获取内存数据的地址信息,所述待获取内存数据包括待获取内存数据的标识; 根据所述待获取内存数据的地址信息从所述vmcore文件中解析出所述待获取内存数据。2.根据权利要求1所述的方法,其特征在于,所述将进行第一次存储后的地址信息进行第二次存储包括: 将进行第一次存储后的地址信息存储至与所述vmcore文件相互独立的地址文件中;所述根据所述内存数据的标识从进行第二次存储后的地址信息中获取待获取内存数据的地址信息为: 根据所述内存数据的标识从所述地址文件中获取待获取内存数据的地址信息。3.根据权利要求1所述的方法,其特征在于,所述将进行第一次存储后的地址信息进行第二次存储包括: 将所述地址信息存储至所述vmcore文件中; 所述根据所述内存数据的标识从进行第二次存储后的地址信息中获取待获取内存数据的地址信息为: 根据所述内存数据的标识从所述vmcore文件中获取待获取内存数据的地址信息。4.根据权利要求1至3中任意一项所述的方法,其特征在于,在所述将获取到的内存数据的地址信息进行第一次存储之前,所述方法还包括: 从内核中获取数据结构定义信息,所述数据结构定义信息包括所述地址信息; 从所述数据结构定义信息中提取所述地址信息。5.根据权利要求1至4中任意一项所述的方法,其特征在于,所述根据所述待获取内存数据的地址信息从所述vmcore文件中解析出所述待获取内存数据包括: 根据待获取内存数据的地址信息从所述vmcore文件中解析出相应的内存数据,解析出的内存数据包括内存数据的内容标识,所述内存数据的内容标识用于标识解析出的内存数据是数据内容还是指针; 根据内存数据的内容标识判断所述解析出的内存数据是数据内容还是指针; 若是数据内容,则解析出的内存数据为待获取内存数据; 若是指针,则解析所述指针对应的内存数据,直到解析出的内存数据为数据内容为止。6.根据权利要求5所述的方法,其特征在于,所述内存数据的内容标识为:入参或配置文件,所述入参和配置文件用于标识内存...

【专利技术属性】
技术研发人员:王力杜巍
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1