操作系统内核级错误定位方法及装置的制作方法

文档序号:6371266阅读:148来源:国知局
专利名称:操作系统内核级错误定位方法及装置的制作方法
技术领域
本发明涉及计算机技术领域,特别是涉及操作系统内核级错误定位方法及装置。
背景技术
在使用计算机的过程中,时常会遭遇操作系统发生内核级错误进而死机的现象。例如,在Windows操作系统中,将这种现象称为蓝屏死机((Blue Screen of Death, BSOD)。所谓蓝屏死机,是指当Windows操作系统崩溃或停止执行(由于灾难性的错误或者内部条件阻止系统继续运行下去)时所显示的蓝色屏幕。本质上说,蓝屏死机是Windows操作系统处理错误的一种机制,当Windows内核遇到无法修复的错误时,以蓝屏死机的形式展现,并在蓝屏界面简要地给出错误可能的原因及建议,它可能会长时间停留在显示屏上,也可能会在短时间显示之后自动重新启动计算机。出现蓝屏,一般是windows操作系统遇到了非常严重的错误,影响也是非常大的。这种错误多数情况下是由于第三方软件或者硬件上的错误导致的,例如,在第三方软件方面,如果同时安装两个或多个杀毒软件,它们就可能发 生冲突,抢夺底层控制权,使系统出现蓝屏死机;在硬件方面,如果将两个不同的内存混插则系统读取数据时由于时钟周期不同,读取数据就会出错,从而出现蓝屏死机,等等。当发生蓝屏死机后,需要定位到具体导致蓝屏死机的原因并解决之,以避免以后再次由于同样的原因导致蓝屏死机的现象。蓝屏界面信息通常是以概述的形式给出问题的原因,例如,“错误原因进程以过高的中断请求级别访问没有权限访问的内存”,也即,有程序使用了不正确的内存地址,但是并不会给出是哪个程序使用了不正确的内存地址。因此,虽然蓝屏界面信息可以帮助定位导致蓝屏死机的原因,但是由于蓝屏界面信息太少,使得在绝大部分情况下,通过蓝屏界面信息,并不能准确找到问题原因。因此,对于大多数人来说,甚至是一些专业人员,最后都只得用排除法查找问题依次卸载各个软件或重新安装Windows系统来确定是不是软件导致,或者,依次替换硬件来确定是否硬件导致等等。为了便于确定导致蓝屏死机的原因,Windows操作系统提供了 DUMP机制的选项,通过在Windows系统中一些设置,使系统出现蓝屏死机时,自动保存发生错误时的信息到磁盘文件(即蓝屏文件,或称DUMP文件)。这样方便日后通过分析DUMP文件来定位错误原因。并且,Microsoft还提供了可以用来分析DUMP文件的调试工具Windbg。Windbg提供了大量的命令,通过这些命令组合可以发掘DUMP文件中包含的信息,如蓝屏代码、进程、线程、加载模块、堆栈等信息,通过对这些信息的分析,可能找到导致蓝屏的模块。另外windbg也提供了一个简单的命令! analyze-V,通过该命令可以直接得到蓝屏的一些重要信肩、O但是,通过Windbg调试工具对DUMP文件进行分析时,需要用户熟悉并且知道如何使用Windbg提供的命令,并且在输入命令后,还需要用户能够看懂Windbg返回的信息。然而Windbg调试工具返回的信息又通常都是以代码的形式存在的,因此,对于一般的用户而言,仍然无法定位导致蓝屏死机的原因,更加无法得到解决问题的方案。

发明内容
本发明提供了操作系统内核级错误定位方法及装置,能够自动定位到引起所述内核级错误的错误源。本发明提供了如下方案一种操作系统内核级错误定位方法,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;所述方法包括通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系; 从所述日志文件中提取所述待获取的错误定位相关信息;根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。可选的,还包括根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系;根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。可选的,所述根据所述解决方案执行相应的处理包括展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复;或者,对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。可选的,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。可选的,所述从所述日志文件中提取所述待获取的错误定位相关信息包括从所述日志文件中提取符合预置条件的模块信息;如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。可选的,所述符合预置条件的模块信息包括堆栈占用量最大的模块。可选的,所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。可选的,所述预置的错误定位相关信息与错误源之间的对应关系保存在服务器端,所述根据提取出的错误定位相关信息以及预置的错误定位相关信息与错误源之间的对应关系,确定引起所述内核级错误的错误源包括将所述提取出的错误定位相关信息发送到服务器端进行查询;根据服务器端返回的信息,确定引起所述内核级错误的错误源。一种操作系统内核级错误定位装置,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;所述装置包括
类型代码获取单元,用于通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;第一查询单元,用于根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;错误定位相关信息获取单元,用于从所述日志文件中提取所述待获取的错误定位相关信息;第二查询单元,用于根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。可选的,还包括
解决方案获取单元,用于根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系;处理单元,用于根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。可选的,所述处理单元包括展现子单元,用于展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复;或者,执行子单元,用于对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。可选的,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。可选的,所述错误定位相关信息获取单元包括模块提取子单元,用于从所述日志文件中提取符合预置条件的模块信息;特征信息提取子单元,用于如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。可选的,所述符合预置条件的模块信息包括堆栈占用量最大的模块。可选的,所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。可选的,所述预置的错误定位相关信息与错误源之间的对应关系保存在服务器端,所述第二查询单元包括发送子单元,用于将所述提取出的错误定位相关信息发送到服务器端进行查询;确定子单元,用于根据服务器端返回的信息,确定引起所述内核级错误的错误源。根据本发明提供的具体实施例,本发明公开了以下技术效果通过本发明,在操作系统给出内核级错误提示之后,能够通过分析记载有提示时刻系统状态信息的日志文件,自动定位到引起内核级错误的错误源,这样,就为快速修复系统的内核级错误提供了基础信息。例如,可以直接将错误源的信息展现给用户,这样用户在明确了错误源的情况下,就可以执行一些处理操作来完成对错误的修复。或者,还可以自动执行修复操作,等等。


为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图I是本发明实施例提供的方法的流程图;图2是本发明实施例提供的装置的示意图。
具体实施例方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的 范围。为了便于理解本发明实施例涉及到的操作系统内核级错误的问题,首先以NT内核的操作系统为例,对操作系统的基础架构进行简单的介绍。NT内核的操作系统采用的是分层管理结构(层又称为模式),主要有用户层(User Mode)和内核层(Kernel Mode)。windows操作系统中规定用户层拥有较低权限,不能直接访问硬件和有限地利用内存。要访问硬件和利用内存,必须要经过可以直接访问所有硬件和内存的内核层的批准。有时由于种种原因,用户层或内核层会出现一些错误。如果程序出错,windows会判断该程序是用户模式的还是内核模式的。如果是用户模式的则直接终止程序。如果是内核模式的,出错之后继续运行可能会使系统出现更加严重的错误。系统为了安全起见,会以可控的方式停止,并显示出蓝屏停止码和生成内存转储文件,便于用户分析处理问题。所以蓝屏死机是操作系统报告严重错误的一种方式,是操作系统的一种自我保护措施。如背景技术中所述,在操作系统发生类似蓝屏死机的内核级错误时,实际上一般情况下是由第三方软件或者硬件的错误引起的,也即,这种内核级错误存在对应的错误源,只有找到错误源并将其存在的缺陷修复,才能避免后续再发生内核级错误。因此,本发明实施例就是从这一角度出发,试图提供一种能够自动定位到引起操作系统内核级错误的错误源的方法,以便以更加方便快捷的方式帮助用户排除错误。在本发明实施例中,首先需要将操作系统设置为,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件,例如,前文所述的DUMP文件等等。具体实现时,由于上述生成日志文件的功能一般都是操作系统自带的,因此,只要进行必要的设置即可实现。例如,可以检查系统是否设置为发出内核级错误提示时自动生成日志文件,如果没有,则通过修改注册表等方式进行设置。这样保证当系统发出内核级错误提示时,能自动生成记录有提示时刻的系统状态信息的日志文件,为后续的错误源定位提供前提。在日志文件中,一般都会为当前的错误类型提供类型代码,这种错误代码是由系统自动生成的,例如0x7f,等等。其中,各个代码分别对应着怎样的错误,从哪些信息中可以分析出来,都是可以通过经验的积累获知的。也就是说,对于经验足够丰富的人员,在得知错误类型代码之后,就可以知晓应该从日志文件中去提取哪些信息,进而分析出错误发生在哪个模块上。因此,在本发明实施例中,为了能够通过程序自动完成对日志文件的分析工作,可以预先对各个类型代码代表的错误类型进行分析,分析出各个类型下需要提取的错误定位相关信息,并进行记录,保存下各个类型代码与需要获取的错误定位相关信息之间的关系。例如,对于代码为0X7f的错误类型而言,通过大量的分析经验归纳总结发现,该错误大多是由某个驱动占用了过多的堆栈导致堆栈溢出引起的。因此,如果能够从日志文件中提取出蓝屏时刻各个驱动对堆栈的占用情况,其中对堆栈占用最多的就可能是引起此次蓝屏的模块。因此,针对该代码对应的错误类型,需要获取的错误定位相关信息就可以是各个驱动对堆栈的占用情况。其他代码也都分别进行类似的处理,这样可以得到保存有错误的类型代码与需要提取的错误定位相关信息之间的对应关系的列表,供后续查询使用。同时,还可以预先根据经验分析,得到当模块与软件或者硬件之间的对应关系,保存各个模块与各自对应的软件或硬件之间的对应关系,形成一个数据库,这样当根据日志文件定位到某模块时,通过查询该数据库就可以得到该引起当前错误的错误源是哪个软件或者硬件。 但是,在实际应用中,还可能存在以下特殊情况系统在错误源发生错误时刻,可能并不是马上就进行提示,也就是说,如果某软件在Tl时刻发生了严重的错误,但是系统可能在T2时刻才发生蓝屏死机,以此给出提示。也就是说,错误实际发生的时刻与系统进行错误提示的时刻可能是不同的,而是有一定的先后关系。然而,日志文件只能记载系统提示时刻的系统状态,也即,日志文件中记录的是T2时刻系统的状态。因此,通过日志文件中记载的数据,就可能无法找到目标模块。针对这种情况,本发明实施例还发现对于同一错误源导致的错误而言,在发生错误之后的系统状态信息中会存在一些相同的特征。例如,堆栈占用情况、模块列表、崩溃地址等等,因此,也可以预先通过经验的分析,在一个数据库中记录下日志文件中的各种特征信息与对应的软件或硬件之间的对应关系,同时,还可以记录下各种不同的类型代码需要提取的特征信息。这样,针对某类型代码,在无法直接定位到发生错误的模块的情况下,就可以根据预先保存的类型代码与需要提取的特征信息之间的对应关系,从日志文件中提取出特征信息,然后就可以根据数据库中保存的特征信息与软件/硬件之间的对应关系,定位到具体的软件/硬件,也即成功定位到错误源。例如,BitDefender2012beta与某安全产品冲突导致的蓝屏,DUMP文件里堆栈显示崩溃模块在ntkrpamp. exe,但是实际是不对的,此时,可以提取崩溃时的堆栈,再加上加载的模块信息等等。同时,在服务器数据库里已经存有这个崩溃的特征堆栈,两个产品的模块,版本等。这样,通过比较从DUMP文件里获取的信息和服务器上崩溃特征比较,如果符合,表明该崩溃是由于同时装了这两个软件冲突导致的。需要说明的是,对于各种不同的错误类型代码而言,需要提取的特征信息可能是不同的,可能是堆栈占用情况、模块列表、崩溃地址中的一种或多种,当然还可能是其他的特征,等等。在以上所述的基础上,参见图1,本发明实施例提供的操作系统内核级错误定位方法包括以下步骤SlOl :通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;在系统发出内核级错误提示并生成了日志文件的情况下,操作系统一般还会提供访问该日志文件的接口,例如dbghelp. dll标准接口,因此,就可以通过该接口访问该日志文件,以便从中获取所需的信息。由于已经预先保存了错误类型代码与需要提取的错误定位相关信息之间的对应关系,因此,就可以首先从日志文件中提取出错误类型代码。S102:根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;这里的错误定位相关信息可以是前文所述的符合一定条件的模块信息,例如前文所述的,针对0x7f这一类型代码,在预先保存的代码与错误定位相关信息之间的对应关系中,该代码对应的错误定位相关信息可以是对堆栈的占用量最大的模块。因此,根据记录的该对应关系,就可以从日志文件中获取各个模块对各个堆栈的占用量,然后从中提取出一个堆栈占用量最大的模块作为错误定位相关信息。或者,这里的错误定位相关信息也可以是前文所述的特征信息,也即与集中提取某个符合指定条件的模块不同,还可以根据预先保存的对应关系,提取出一些分散的特征 信息,例如,包括模块列表、各个模块分别对堆栈的占用情况等等,将这些特征信息作为错误定位相关信息。或者,在实际应用中,还可以将上述两种方式相结合,例如,首先根据类型代码与满足一定条件的模块之间的对应关系,从日志文件中提取符合该条件的模块,如果提取不成功,再根据类型代码与特征信息之间的对应关系,从日志文件中提取当前的类型代码对应的特征信息作为错误定位相关信息。S103:根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。在提取出错误定位相关信息之后,就可以根据预先设置的错误定位相关信息与错误源之间的对应关系定位到错误源。例如,如果错误定位相关信息是符合某条件的模块,则可以查询预先保存的模块与软件/硬件之间的对应关系,查询到发生错误的模块所在的软件/硬件,进而就可以将对应的软件/硬件确定为错误源。如果错误定位相关信息是某些特征信息,则可以查询预先保存的特征信息与软件/硬件之间的对应关系,对应的软件/硬件就可以确定为错误源。总之,通过本发明实施例,在操作系统给出内核级错误的提示后,能够通过分析记载有提示时刻系统状态信息的日志文件,自动定位到引起内核级错误的错误源,这样,就为快速修复系统的内核级错误提供了基础信息。例如,可以直接将错误源的信息展现给用户,这样用户在明确了错误源的情况下,就可以执行一些处理操作来完成对错误的修复。或者,还可以自动执行修复操作,等等。在实际应用中,还可以根据分析经验,在数据库中保存模块与解决方案之间的对应关系,或者特征信息与解决方案之间的对应关系。这样,当从日志文件中提取出满足条件的模块或者特征信息之后,不仅能够定位到对应的软件/硬件,还可以得到相应的解决方案,然后可以根据解决方案执行相应的处理,以便对操作系统内核级错误进行修复。具体的处理方式有多种,例如,可以将错误源的信息展现给用户,以便用户对错误源执行处理操作,进而完成对操作系统内核级错误的修复;或者,直接对错误源执行处理操作,以便完成对操作系统内核级错误的修复。其中,关于第一种方式,一般是针对一些硬件上的错误、需要用户手动解决的问题时采用,例如,向用户提示错误源是内存混插,则用户可以通过更换内存条等方式来修复该错误。第二种方式一般是针对一些软件上的错误时采用,例如,如果错误原因是某驱动没有更新,则解决方案可以是自动下载更新导致内核级错误的驱动,或者,将某驱动卸载,或者,禁止某驱动的运行等等。与本发明实施例提供的操作系统内核级错误定位方法相对应,本发明实施例还提供了一种操作系统内核级错误定位装置,在该装置中,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;参见图2,该装置可以包括类型代码获取单元201,用于通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;第一查询单元202,用于根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;
错误定位相关信息获取单元203,用于从所述日志文件中提取所述待获取的错误定位相关信息;第二查询单元204,用于根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。具体实现时,该装置还可以包括解决方案获取单元,用于根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系;处理单元,用于根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。根据错误发生原因的不同,解决方案也可能会有所不同,相应的,处理单元在根据解决方案进行处理时,可以分为两大类,也即,所述处理单元具体可以包括展现子单元,用于展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复;或者,执行子单元,用于对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。具体实现时,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。上述两种错误定位相关信息独立使用,例如,针对某错误类型代码,可以查询类型代码与模块信息之间的对应关系,找到符合条件的模块,然后再通过查询模块与错误源之间的对应关系,定位到引起此次内核级错误的错误源,也即,具体到某软件/硬件。或者,针对同一错误类型代码,也可以直接查询类型代码与特征信息之间的对应关系,直接从日志文件中提取出特征信息,并查询特征信息与错误源之间的对应关系,定位到引起此次内核级错误的错误源。当然,在实际应用中,还可以将上述两种方式相结合,此时,错误定位相关信息获取单元203包括模块提取子单元,用于从所述日志文件中提取符合预置条件的模块信息;
特征信息提取子单元,用于如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。其中,所述符合预置条件的模块信息包括堆栈占用量最大的模块。所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。在实际应用中,所述预置的错误定位相关信息与错误源之间的对应关系可以保存在服务器端,此时,第二查询单元204可以包括发送子单元,用于将所述提取出的错误定位相关信息发送到服务器端进行查询;确定子单元,用于根据服务器端返回的信息,确定引起所述内核级错误的错误源。
总之,通过本发明实施例提供的上述装置,在操作系统给出内核级错误提示之后,能够通过分析记载有提示时刻系统状态信息的日志文件,自动定位到引起内核级错误的错误源,这样,就为快速修复系统的内核级错误提供了基础信息。例如,可以直接将错误源的信息展现给用户,这样用户在明确了错误源的情况下,就可以执行一些处理操作来完成对错误的修复。或者,还可以自动执行修复操作,等等。通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上对本发明所提供的操作系统内核级错误定位方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.ー种操作系统内核级错误定位方法,其特征在干,当操作系统发生内核级错误提示吋,自动生成记载有提示时刻的系统状态信息的日志文件;所述方法包括 通过操作系统提供的接ロ访问所述日志文件,获取当前的内核级错误的类型代码; 根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系; 从所述日志文件中提取所述待获取的错误定位相关信息; 根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。
2.根据权利要求I所述的方法,其特征在于,还包括 根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系; 根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。
3.根据权利要求2所述的方法,其特征在干,所述根据所述解决方案执行相应的处理包括 展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复; 或者, 对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。
4.根据权利要求I至3任一项所述的方法,其特征在于,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。
5.根据权利要求4所述的方法,其特征在于,所述从所述日志文件中提取所述待获取的错误定位相关信息包括 从所述日志文件中提取符合预置条件的模块信息; 如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。
6.根据权利要求4所述的方法,其特征在于,所述符合预置条件的模块信息包括堆栈占用量最大的模块。
7.根据权利要求4所述的方法,其特征在于,所述指定的特征信息包括堆栈占用情況、模块列表和/或崩溃地址。
8.根据权利要求I至3任一项所述的方法,其特征在于,所述预置的错误定位相关信息与错误源之间的对应关系保存在服务器端,所述根据提取出的错误定位相关信息以及预置的错误定位相关信息与错误源之间的对应关系,确定引起所述内核级错误的错误源包括 将所述提取出的错误定位相关信息发送到服务器端进行查询; 根据服务器端返回的信息,确定引起所述内核级错误的错误源。
9.ー种操作系统内核级错误定位装置,其特征在干,当操作系统发生内核级错误提示吋,自动生成记载有提示时刻的系统状态信息的日志文件;所述装置包括 类型代码获取単元,用于通过操作系统提供的接ロ访问所述日志文件,获取当前的内核级错误的类型代码;第一查询单元,用于根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关イ目息之间的对应关系; 错误定位相关信息获取单元,用于从所述日志文件中提取所述待获取的错误定位相关信息; 第二查询单元,用于根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。
10.根据权利要求9所述的装置,其特征在于,还包括 解决方案获取单元,用于根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系; 处理单元,用于根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。
11.根据权利要求9所述的装置,其特征在于,所述处理単元包括 展现子単元,用于展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复; 或者, 执行子単元,用于对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。
12.根据权利要求9至11任一项所述的装置,其特征在于,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。
13.根据权利要求12所述的装置,其特征在于,所述错误定位相关信息获取单元包括 模块提取子単元,用于从所述日志文件中提取符合预置条件的模块信息; 特征信息提取子単元,用于如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。
14.根据权利要求12所述的方法,其特征在于,所述符合预置条件的模块信息包括堆栈占用量最大的模块。
15.根据权利要求12所述的方法,其特征在于,所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。
16.根据权利要求9至11任一项所述的装置,其特征在于,所述预置的错误定位相关信息与错误源之间的对应关系保存在服务器端,所述第二查询单元包括 发送子単元,用于将所述提取出的错误定位相关信息发送到服务器端进行查询; 确定子単元,用于根据服务器端返回的信息,确定引起所述内核级错误的错误源。
全文摘要
本发明公开了操作系统内核级错误定位方法及装置,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;包括通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;从所述日志文件中提取所述待获取的错误定位相关信息;根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;第二对应关系为错误定位相关信息与错误源之间的对应关系。通过本发明,能够自动定位到引起所述内核级错误的错误源。
文档编号G06F11/36GK102768639SQ20121019181
公开日2012年11月7日 申请日期2012年6月11日 优先权日2012年6月11日
发明者吉艳敏, 范纪鍠 申请人:北京奇虎科技有限公司, 奇智软件(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1