CN102768639A - 操作系统内核级错误定位方法及装置 - Google Patents

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

Info

Publication number
CN102768639A
CN102768639A CN2012101918115A CN201210191811A CN102768639A CN 102768639 A CN102768639 A CN 102768639A CN 2012101918115 A CN2012101918115 A CN 2012101918115A CN 201210191811 A CN201210191811 A CN 201210191811A CN 102768639 A CN102768639 A CN 102768639A
Authority
CN
China
Prior art keywords
mistake
information
location
corresponding relation
kernel level
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2012101918115A
Other languages
English (en)
Other versions
CN102768639B (zh
Inventor
吉艳敏
范纪鍠
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
360 Digital Security Technology Group Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210191811.5A priority Critical patent/CN102768639B/zh
Publication of CN102768639A publication Critical patent/CN102768639A/zh
Application granted granted Critical
Publication of CN102768639B publication Critical patent/CN102768639B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了操作系统内核级错误定位方法及装置,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;包括:通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;从所述日志文件中提取所述待获取的错误定位相关信息;根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;第二对应关系为错误定位相关信息与错误源之间的对应关系。通过本发明,能够自动定位到引起所述内核级错误的错误源。

Description

操作系统内核级错误定位方法及装置
技术领域
本发明涉及计算机技术领域,特别是涉及操作系统内核级错误定位方法及装置。
背景技术
在使用计算机的过程中,时常会遭遇操作系统发生内核级错误进而死机的现象。例如,在Windows操作系统中,将这种现象称为蓝屏死机((Blue Screenof Death,BSOD)。所谓蓝屏死机,是指当Windows操作系统崩溃或停止执行(由于灾难性的错误或者内部条件阻止系统继续运行下去)时所显示的蓝色屏幕。本质上说,蓝屏死机是Windows操作系统处理错误的一种机制,当Windows内核遇到无法修复的错误时,以蓝屏死机的形式展现,并在蓝屏界面简要地给出错误可能的原因及建议,它可能会长时间停留在显示屏上,也可能会在短时间显示之后自动重新启动计算机。出现蓝屏,一般是windows操作系统遇到了非常严重的错误,影响也是非常大的。这种错误多数情况下是由于第三方软件或者硬件上的错误导致的,例如,在第三方软件方面,如果同时安装两个或多个杀毒软件,它们就可能发生冲突,抢夺底层控制权,使系统出现蓝屏死机;在硬件方面,如果将两个不同的内存混插则系统读取数据时由于时钟周期不同,读取数据就会出错,从而出现蓝屏死机,等等。当发生蓝屏死机后,需要定位到具体导致蓝屏死机的原因并解决之,以避免以后再次由于同样的原因导致蓝屏死机的现象。
蓝屏界面信息通常是以概述的形式给出问题的原因,例如,“错误原因:进程以过高的中断请求级别访问没有权限访问的内存”,也即,有程序使用了不正确的内存地址,但是并不会给出是哪个程序使用了不正确的内存地址。因此,虽然蓝屏界面信息可以帮助定位导致蓝屏死机的原因,但是由于蓝屏界面信息太少,使得在绝大部分情况下,通过蓝屏界面信息,并不能准确找到问题原因。因此,对于大多数人来说,甚至是一些专业人员,最后都只得用排除法查找问题:依次卸载各个软件或重新安装Windows系统来确定是不是软件导致,或者,依次替换硬件来确定是否硬件导致等等。
为了便于确定导致蓝屏死机的原因,Windows操作系统提供了DUMP机制的选项,通过在Windows系统中一些设置,使系统出现蓝屏死机时,自动保存发生错误时的信息到磁盘文件(即蓝屏文件,或称DUMP文件)。这样方便日后通过分析DUMP文件来定位错误原因。并且,Microsoft还提供了可以用来分析DUMP文件的调试工具:Windbg。Windbg提供了大量的命令,通过这些命令组合可以发掘DUMP文件中包含的信息,如蓝屏代码、进程、线程、加载模块、堆栈等信息,通过对这些信息的分析,可能找到导致蓝屏的模块。另外windbg也提供了一个简单的命令:!analyze–v,通过该命令可以直接得到蓝屏的一些重要信息。
但是,通过Windbg调试工具对DUMP文件进行分析时,需要用户熟悉并且知道如何使用Windbg提供的命令,并且在输入命令后,还需要用户能够看懂Windbg返回的信息。然而Windbg调试工具返回的信息又通常都是以代码的形式存在的,因此,对于一般的用户而言,仍然无法定位导致蓝屏死机的原因,更加无法得到解决问题的方案。
发明内容
本发明提供了操作系统内核级错误定位方法及装置,能够自动定位到引起所述内核级错误的错误源。
本发明提供了如下方案:
一种操作系统内核级错误定位方法,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;所述方法包括:
通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;
根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;
从所述日志文件中提取所述待获取的错误定位相关信息;
根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。
可选的,还包括:
根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系;
根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。
可选的,所述根据所述解决方案执行相应的处理包括:
展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复;
或者,
对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。
可选的,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。
可选的,所述从所述日志文件中提取所述待获取的错误定位相关信息包括:
从所述日志文件中提取符合预置条件的模块信息;
如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。
可选的,所述符合预置条件的模块信息包括:堆栈占用量最大的模块。
可选的,所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。
可选的,所述预置的错误定位相关信息与错误源之间的对应关系保存在服务器端,所述根据提取出的错误定位相关信息以及预置的错误定位相关信息与错误源之间的对应关系,确定引起所述内核级错误的错误源包括:
将所述提取出的错误定位相关信息发送到服务器端进行查询;
根据服务器端返回的信息,确定引起所述内核级错误的错误源。
一种操作系统内核级错误定位装置,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;所述装置包括:
类型代码获取单元,用于通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;
第一查询单元,用于根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;
错误定位相关信息获取单元,用于从所述日志文件中提取所述待获取的错误定位相关信息;
第二查询单元,用于根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。
可选的,还包括:
解决方案获取单元,用于根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系;
处理单元,用于根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。
可选的,所述处理单元包括:
展现子单元,用于展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复;
或者,
执行子单元,用于对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。
可选的,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。
可选的,所述错误定位相关信息获取单元包括:
模块提取子单元,用于从所述日志文件中提取符合预置条件的模块信息;
特征信息提取子单元,用于如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。
可选的,所述符合预置条件的模块信息包括:堆栈占用量最大的模块。
可选的,所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。
可选的,所述预置的错误定位相关信息与错误源之间的对应关系保存在服务器端,所述第二查询单元包括:
发送子单元,用于将所述提取出的错误定位相关信息发送到服务器端进行查询;
确定子单元,用于根据服务器端返回的信息,确定引起所述内核级错误的错误源。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
通过本发明,在操作系统给出内核级错误提示之后,能够通过分析记载有提示时刻系统状态信息的日志文件,自动定位到引起内核级错误的错误源,这样,就为快速修复系统的内核级错误提供了基础信息。例如,可以直接将错误源的信息展现给用户,这样用户在明确了错误源的情况下,就可以执行一些处理操作来完成对错误的修复。或者,还可以自动执行修复操作,等等。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的方法的流程图;
图2是本发明实施例提供的装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
为了便于理解本发明实施例涉及到的操作系统内核级错误的问题,首先以NT内核的操作系统为例,对操作系统的基础架构进行简单的介绍。NT内核的操作系统采用的是分层管理结构(层又称为模式),主要有用户层(User Mode)和内核层(Kernel Mode)。windows操作系统中规定:用户层拥有较低权限,不能直接访问硬件和有限地利用内存。要访问硬件和利用内存,必须要经过可以直接访问所有硬件和内存的内核层的批准。有时由于种种原因,用户层或内核层会出现一些错误。如果程序出错,windows会判断该程序是用户模式的还是内核模式的。如果是用户模式的则直接终止程序。如果是内核模式的,出错之后继续运行可能会使系统出现更加严重的错误。系统为了安全起见,会以可控的方式停止,并显示出蓝屏停止码和生成内存转储文件,便于用户分析处理问题。所以蓝屏死机是操作系统报告严重错误的一种方式,是操作系统的一种自我保护措施。
如背景技术中所述,在操作系统发生类似蓝屏死机的内核级错误时,实际上一般情况下是由第三方软件或者硬件的错误引起的,也即,这种内核级错误存在对应的错误源,只有找到错误源并将其存在的缺陷修复,才能避免后续再发生内核级错误。因此,本发明实施例就是从这一角度出发,试图提供一种能够自动定位到引起操作系统内核级错误的错误源的方法,以便以更加方便快捷的方式帮助用户排除错误。
在本发明实施例中,首先需要将操作系统设置为,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件,例如,前文所述的DUMP文件等等。具体实现时,由于上述生成日志文件的功能一般都是操作系统自带的,因此,只要进行必要的设置即可实现。例如,可以检查系统是否设置为发出内核级错误提示时自动生成日志文件,如果没有,则通过修改注册表等方式进行设置。这样保证当系统发出内核级错误提示时,能自动生成记录有提示时刻的系统状态信息的日志文件,为后续的错误源定位提供前提。
在日志文件中,一般都会为当前的错误类型提供类型代码,这种错误代码是由系统自动生成的,例如0x7f,等等。其中,各个代码分别对应着怎样的错误,从哪些信息中可以分析出来,都是可以通过经验的积累获知的。也就是说,对于经验足够丰富的人员,在得知错误类型代码之后,就可以知晓应该从日志文件中去提取哪些信息,进而分析出错误发生在哪个模块上。因此,在本发明实施例中,为了能够通过程序自动完成对日志文件的分析工作,可以预先对各个类型代码代表的错误类型进行分析,分析出各个类型下需要提取的错误定位相关信息,并进行记录,保存下各个类型代码与需要获取的错误定位相关信息之间的关系。例如,对于代码为0x7f的错误类型而言,通过大量的分析经验归纳总结发现,该错误大多是由某个驱动占用了过多的堆栈导致堆栈溢出引起的。因此,如果能够从日志文件中提取出蓝屏时刻各个驱动对堆栈的占用情况,其中对堆栈占用最多的就可能是引起此次蓝屏的模块。因此,针对该代码对应的错误类型,需要获取的错误定位相关信息就可以是各个驱动对堆栈的占用情况。其他代码也都分别进行类似的处理,这样可以得到保存有错误的类型代码与需要提取的错误定位相关信息之间的对应关系的列表,供后续查询使用。
同时,还可以预先根据经验分析,得到当模块与软件或者硬件之间的对应关系,保存各个模块与各自对应的软件或硬件之间的对应关系,形成一个数据库,这样当根据日志文件定位到某模块时,通过查询该数据库就可以得到该引起当前错误的错误源是哪个软件或者硬件。
但是,在实际应用中,还可能存在以下特殊情况:系统在错误源发生错误时刻,可能并不是马上就进行提示,也就是说,如果某软件在T1时刻发生了严重的错误,但是系统可能在T2时刻才发生蓝屏死机,以此给出提示。也就是说,错误实际发生的时刻与系统进行错误提示的时刻可能是不同的,而是有一定的先后关系。然而,日志文件只能记载系统提示时刻的系统状态,也即,日志文件中记录的是T2时刻系统的状态。因此,通过日志文件中记载的数据,就可能无法找到目标模块。针对这种情况,本发明实施例还发现:对于同一错误源导致的错误而言,在发生错误之后的系统状态信息中会存在一些相同的特征。例如,堆栈占用情况、模块列表、崩溃地址等等,因此,也可以预先通过经验的分析,在一个数据库中记录下日志文件中的各种特征信息与对应的软件或硬件之间的对应关系,同时,还可以记录下各种不同的类型代码需要提取的特征信息。这样,针对某类型代码,在无法直接定位到发生错误的模块的情况下,就可以根据预先保存的类型代码与需要提取的特征信息之间的对应关系,从日志文件中提取出特征信息,然后就可以根据数据库中保存的特征信息与软件/硬件之间的对应关系,定位到具体的软件/硬件,也即成功定位到错误源。例如,BitDefender2012beta与某安全产品冲突导致的蓝屏,DUMP文件里堆栈显示崩溃模块在ntkrpamp.exe,但是实际是不对的,此时,可以提取崩溃时的堆栈,再加上加载的模块信息等等。同时,在服务器数据库里已经存有这个崩溃的特征:堆栈,两个产品的模块,版本等。这样,通过比较从DUMP文件里获取的信息和服务器上崩溃特征比较,如果符合,表明该崩溃是由于同时装了这两个软件冲突导致的。需要说明的是,对于各种不同的错误类型代码而言,需要提取的特征信息可能是不同的,可能是堆栈占用情况、模块列表、崩溃地址中的一种或多种,当然还可能是其他的特征,等等。
在以上所述的基础上,参见图1,本发明实施例提供的操作系统内核级错误定位方法包括以下步骤:
S101:通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;
在系统发出内核级错误提示并生成了日志文件的情况下,操作系统一般还会提供访问该日志文件的接口,例如dbghelp.dll标准接口,因此,就可以通过该接口访问该日志文件,以便从中获取所需的信息。由于已经预先保存了错误类型代码与需要提取的错误定位相关信息之间的对应关系,因此,就可以首先从日志文件中提取出错误类型代码。
S102:根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;
这里的错误定位相关信息可以是前文所述的符合一定条件的模块信息,例如前文所述的,针对0x7f这一类型代码,在预先保存的代码与错误定位相关信息之间的对应关系中,该代码对应的错误定位相关信息可以是:对堆栈的占用量最大的模块。因此,根据记录的该对应关系,就可以从日志文件中获取各个模块对各个堆栈的占用量,然后从中提取出一个堆栈占用量最大的模块作为错误定位相关信息。
或者,这里的错误定位相关信息也可以是前文所述的特征信息,也即与集中提取某个符合指定条件的模块不同,还可以根据预先保存的对应关系,提取出一些分散的特征信息,例如,包括模块列表、各个模块分别对堆栈的占用情况等等,将这些特征信息作为错误定位相关信息。
或者,在实际应用中,还可以将上述两种方式相结合,例如,首先根据类型代码与满足一定条件的模块之间的对应关系,从日志文件中提取符合该条件的模块,如果提取不成功,再根据类型代码与特征信息之间的对应关系,从日志文件中提取当前的类型代码对应的特征信息作为错误定位相关信息。
S103:根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。
在提取出错误定位相关信息之后,就可以根据预先设置的错误定位相关信息与错误源之间的对应关系定位到错误源。例如,如果错误定位相关信息是符合某条件的模块,则可以查询预先保存的模块与软件/硬件之间的对应关系,查询到发生错误的模块所在的软件/硬件,进而就可以将对应的软件/硬件确定为错误源。如果错误定位相关信息是某些特征信息,则可以查询预先保存的特征信息与软件/硬件之间的对应关系,对应的软件/硬件就可以确定为错误源。
总之,通过本发明实施例,在操作系统给出内核级错误的提示后,能够通过分析记载有提示时刻系统状态信息的日志文件,自动定位到引起内核级错误的错误源,这样,就为快速修复系统的内核级错误提供了基础信息。例如,可以直接将错误源的信息展现给用户,这样用户在明确了错误源的情况下,就可以执行一些处理操作来完成对错误的修复。或者,还可以自动执行修复操作,等等。
在实际应用中,还可以根据分析经验,在数据库中保存模块与解决方案之间的对应关系,或者特征信息与解决方案之间的对应关系。这样,当从日志文件中提取出满足条件的模块或者特征信息之后,不仅能够定位到对应的软件/硬件,还可以得到相应的解决方案,然后可以根据解决方案执行相应的处理,以便对操作系统内核级错误进行修复。具体的处理方式有多种,例如,可以将错误源的信息展现给用户,以便用户对错误源执行处理操作,进而完成对操作系统内核级错误的修复;或者,直接对错误源执行处理操作,以便完成对操作系统内核级错误的修复。其中,关于第一种方式,一般是针对一些硬件上的错误、需要用户手动解决的问题时采用,例如,向用户提示:错误源是内存混插,则用户可以通过更换内存条等方式来修复该错误。第二种方式一般是针对一些软件上的错误时采用,例如,如果错误原因是某驱动没有更新,则解决方案可以是自动下载更新导致内核级错误的驱动,或者,将某驱动卸载,或者,禁止某驱动的运行等等。
与本发明实施例提供的操作系统内核级错误定位方法相对应,本发明实施例还提供了一种操作系统内核级错误定位装置,在该装置中,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;参见图2,该装置可以包括:
类型代码获取单元201,用于通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;
第一查询单元202,用于根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;
错误定位相关信息获取单元203,用于从所述日志文件中提取所述待获取的错误定位相关信息;
第二查询单元204,用于根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。
具体实现时,该装置还可以包括:
解决方案获取单元,用于根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系;
处理单元,用于根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。
根据错误发生原因的不同,解决方案也可能会有所不同,相应的,处理单元在根据解决方案进行处理时,可以分为两大类,也即,所述处理单元具体可以包括:
展现子单元,用于展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复;
或者,
执行子单元,用于对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。
具体实现时,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。
上述两种错误定位相关信息独立使用,例如,针对某错误类型代码,可以查询类型代码与模块信息之间的对应关系,找到符合条件的模块,然后再通过查询模块与错误源之间的对应关系,定位到引起此次内核级错误的错误源,也即,具体到某软件/硬件。或者,针对同一错误类型代码,也可以直接查询类型代码与特征信息之间的对应关系,直接从日志文件中提取出特征信息,并查询特征信息与错误源之间的对应关系,定位到引起此次内核级错误的错误源。当然,在实际应用中,还可以将上述两种方式相结合,此时,错误定位相关信息获取单元203包括:
模块提取子单元,用于从所述日志文件中提取符合预置条件的模块信息;
特征信息提取子单元,用于如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。
其中,所述符合预置条件的模块信息包括:堆栈占用量最大的模块。
所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。
在实际应用中,所述预置的错误定位相关信息与错误源之间的对应关系可以保存在服务器端,此时,第二查询单元204可以包括:
发送子单元,用于将所述提取出的错误定位相关信息发送到服务器端进行查询;
确定子单元,用于根据服务器端返回的信息,确定引起所述内核级错误的错误源。
总之,通过本发明实施例提供的上述装置,在操作系统给出内核级错误提示之后,能够通过分析记载有提示时刻系统状态信息的日志文件,自动定位到引起内核级错误的错误源,这样,就为快速修复系统的内核级错误提供了基础信息。例如,可以直接将错误源的信息展现给用户,这样用户在明确了错误源的情况下,就可以执行一些处理操作来完成对错误的修复。或者,还可以自动执行修复操作,等等。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的装置及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上对本发明所提供的操作系统内核级错误定位方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (16)

1.一种操作系统内核级错误定位方法,其特征在于,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;所述方法包括:
通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;
根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;
从所述日志文件中提取所述待获取的错误定位相关信息;
根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。
2.根据权利要求1所述的方法,其特征在于,还包括:
根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系;
根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。
3.根据权利要求2所述的方法,其特征在于,所述根据所述解决方案执行相应的处理包括:
展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复;
或者,
对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。
5.根据权利要求4所述的方法,其特征在于,所述从所述日志文件中提取所述待获取的错误定位相关信息包括:
从所述日志文件中提取符合预置条件的模块信息;
如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。
6.根据权利要求4所述的方法,其特征在于,所述符合预置条件的模块信息包括:堆栈占用量最大的模块。
7.根据权利要求4所述的方法,其特征在于,所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。
8.根据权利要求1至3任一项所述的方法,其特征在于,所述预置的错误定位相关信息与错误源之间的对应关系保存在服务器端,所述根据提取出的错误定位相关信息以及预置的错误定位相关信息与错误源之间的对应关系,确定引起所述内核级错误的错误源包括:
将所述提取出的错误定位相关信息发送到服务器端进行查询;
根据服务器端返回的信息,确定引起所述内核级错误的错误源。
9.一种操作系统内核级错误定位装置,其特征在于,当操作系统发生内核级错误提示时,自动生成记载有提示时刻的系统状态信息的日志文件;所述装置包括:
类型代码获取单元,用于通过操作系统提供的接口访问所述日志文件,获取当前的内核级错误的类型代码;
第一查询单元,用于根据预置的第一对应关系,确定当前的内核级错误的类型代码对应的待获取的错误定位相关信息;所述第一对应关系为类型代码与待获取的错误定位相关信息之间的对应关系;
错误定位相关信息获取单元,用于从所述日志文件中提取所述待获取的错误定位相关信息;
第二查询单元,用于根据提取出的错误定位相关信息以及预置的第二对应关系,确定引起所述内核级错误的错误源;所述第二对应关系为错误定位相关信息与错误源之间的对应关系。
10.根据权利要求9所述的装置,其特征在于,还包括:
解决方案获取单元,用于根据预置的第三对应关系,获取引起所述内核级错误的错误源对应的解决方案;所述第三对应关系为错误源与解决方案之间的对应关系;
处理单元,用于根据所述解决方案执行相应的处理,以便对所述操作系统内核级错误进行修复。
11.根据权利要求9所述的装置,其特征在于,所述处理单元包括:
展现子单元,用于展现所述错误源的信息,以便对所述错误源执行处理操作,进而完成对所述操作系统内核级错误的修复;
或者,
执行子单元,用于对所述错误源执行处理操作,以便完成对所述操作系统内核级错误的修复。
12.根据权利要求9至11任一项所述的装置,其特征在于,所述待获取的错误定位相关信息包括状态信息符合预置条件的模块信息和/或指定的特征信息。
13.根据权利要求12所述的装置,其特征在于,所述错误定位相关信息获取单元包括:
模块提取子单元,用于从所述日志文件中提取符合预置条件的模块信息;
特征信息提取子单元,用于如果所述日志文件中不存在符合预置条件的模块信息,则从所述日志文件中提取指定的特征信息。
14.根据权利要求12所述的方法,其特征在于,所述符合预置条件的模块信息包括:堆栈占用量最大的模块。
15.根据权利要求12所述的方法,其特征在于,所述指定的特征信息包括堆栈占用情况、模块列表和/或崩溃地址。
16.根据权利要求9至11任一项所述的装置,其特征在于,所述预置的错误定位相关信息与错误源之间的对应关系保存在服务器端,所述第二查询单元包括:
发送子单元,用于将所述提取出的错误定位相关信息发送到服务器端进行查询;
确定子单元,用于根据服务器端返回的信息,确定引起所述内核级错误的错误源。
CN201210191811.5A 2012-06-11 2012-06-11 操作系统内核级错误定位方法及装置 Active CN102768639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210191811.5A CN102768639B (zh) 2012-06-11 2012-06-11 操作系统内核级错误定位方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210191811.5A CN102768639B (zh) 2012-06-11 2012-06-11 操作系统内核级错误定位方法及装置

Publications (2)

Publication Number Publication Date
CN102768639A true CN102768639A (zh) 2012-11-07
CN102768639B CN102768639B (zh) 2015-02-18

Family

ID=47096046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210191811.5A Active CN102768639B (zh) 2012-06-11 2012-06-11 操作系统内核级错误定位方法及装置

Country Status (1)

Country Link
CN (1) CN102768639B (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077210A (zh) * 2014-06-06 2014-10-01 百度在线网络技术(北京)有限公司 一种客户端崩溃的定位方法及系统
CN105630659A (zh) * 2015-12-23 2016-06-01 北京奇虎科技有限公司 应用崩溃日志的获取方法及装置
CN105975305A (zh) * 2016-04-29 2016-09-28 北京小米移动软件有限公司 操作系统事件处理方法、装置及终端
CN106294134A (zh) * 2016-07-29 2017-01-04 腾讯科技(深圳)有限公司 代码的崩溃定位方法及装置
CN106484608A (zh) * 2015-09-01 2017-03-08 青岛海信电器股份有限公司 一种内核错误定位方法、装置及计算机
WO2017063555A1 (zh) * 2015-10-15 2017-04-20 佛山市云端容灾信息技术有限公司 一种基于自动演练的系统自动修复方法和装置
CN107678948A (zh) * 2017-09-18 2018-02-09 Tcl海外电子(惠州)有限公司 测试用例生成方法、终端及存储介质
WO2018082176A1 (zh) * 2016-11-03 2018-05-11 华为技术有限公司 处理终端设备的故障的方法和终端设备
CN110032502A (zh) * 2018-01-11 2019-07-19 武汉斗鱼网络科技有限公司 一种异常处理的方法、装置及电子设备
CN110110522A (zh) * 2016-05-24 2019-08-09 百度在线网络技术(北京)有限公司 内核修复方法和装置
CN110442519A (zh) * 2019-07-23 2019-11-12 深圳市六度人和科技有限公司 一种崩溃文件处理方法、装置、电子设备及存储介质
CN111192130A (zh) * 2019-12-11 2020-05-22 中国建设银行股份有限公司 交易监控中确定故障根源的方法、系统、装置及存储介质
CN112540864A (zh) * 2019-09-23 2021-03-23 无锡江南计算技术研究所 主从一体的内核级调试支撑及异常快速定位方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553328A (zh) * 2003-06-08 2004-12-08 华为技术有限公司 基于故障树分析的系统故障定位方法及装置
CN1983199A (zh) * 2005-12-15 2007-06-20 联想(新加坡)私人有限公司 一种实现计算机死机智能分析的系统及方法
US20090132860A1 (en) * 2007-11-21 2009-05-21 Inventec Corporation System and method for rapidly diagnosing bugs of system software
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1553328A (zh) * 2003-06-08 2004-12-08 华为技术有限公司 基于故障树分析的系统故障定位方法及装置
CN1983199A (zh) * 2005-12-15 2007-06-20 联想(新加坡)私人有限公司 一种实现计算机死机智能分析的系统及方法
US20090132860A1 (en) * 2007-11-21 2009-05-21 Inventec Corporation System and method for rapidly diagnosing bugs of system software
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104077210A (zh) * 2014-06-06 2014-10-01 百度在线网络技术(北京)有限公司 一种客户端崩溃的定位方法及系统
CN104077210B (zh) * 2014-06-06 2017-06-06 百度在线网络技术(北京)有限公司 一种客户端崩溃的定位方法及系统
CN106484608A (zh) * 2015-09-01 2017-03-08 青岛海信电器股份有限公司 一种内核错误定位方法、装置及计算机
CN106484608B (zh) * 2015-09-01 2019-04-16 青岛海信电器股份有限公司 一种内核错误定位方法、装置及计算机
WO2017063555A1 (zh) * 2015-10-15 2017-04-20 佛山市云端容灾信息技术有限公司 一种基于自动演练的系统自动修复方法和装置
CN105630659B (zh) * 2015-12-23 2018-03-20 北京奇虎科技有限公司 应用崩溃日志的获取方法及装置
CN105630659A (zh) * 2015-12-23 2016-06-01 北京奇虎科技有限公司 应用崩溃日志的获取方法及装置
CN105975305A (zh) * 2016-04-29 2016-09-28 北京小米移动软件有限公司 操作系统事件处理方法、装置及终端
CN105975305B (zh) * 2016-04-29 2019-03-22 北京小米移动软件有限公司 操作系统事件处理方法、装置及终端
CN110110522A (zh) * 2016-05-24 2019-08-09 百度在线网络技术(北京)有限公司 内核修复方法和装置
CN110110522B (zh) * 2016-05-24 2021-05-07 百度在线网络技术(北京)有限公司 内核修复方法和装置
CN106294134B (zh) * 2016-07-29 2018-02-23 腾讯科技(深圳)有限公司 代码的崩溃定位方法及装置
CN106294134A (zh) * 2016-07-29 2017-01-04 腾讯科技(深圳)有限公司 代码的崩溃定位方法及装置
WO2018082176A1 (zh) * 2016-11-03 2018-05-11 华为技术有限公司 处理终端设备的故障的方法和终端设备
CN108604200A (zh) * 2016-11-03 2018-09-28 华为技术有限公司 处理终端设备的故障的方法和终端设备
CN107678948A (zh) * 2017-09-18 2018-02-09 Tcl海外电子(惠州)有限公司 测试用例生成方法、终端及存储介质
CN110032502A (zh) * 2018-01-11 2019-07-19 武汉斗鱼网络科技有限公司 一种异常处理的方法、装置及电子设备
CN110442519A (zh) * 2019-07-23 2019-11-12 深圳市六度人和科技有限公司 一种崩溃文件处理方法、装置、电子设备及存储介质
CN112540864A (zh) * 2019-09-23 2021-03-23 无锡江南计算技术研究所 主从一体的内核级调试支撑及异常快速定位方法
CN111192130A (zh) * 2019-12-11 2020-05-22 中国建设银行股份有限公司 交易监控中确定故障根源的方法、系统、装置及存储介质
CN111192130B (zh) * 2019-12-11 2023-11-17 中国建设银行股份有限公司 交易监控中确定故障根源的方法、系统、装置及存储介质

Also Published As

Publication number Publication date
CN102768639B (zh) 2015-02-18

Similar Documents

Publication Publication Date Title
CN102768639A (zh) 操作系统内核级错误定位方法及装置
US11397915B2 (en) Ex-warehousing method and device
US9317400B2 (en) Code coverage rate determination method and system
US9411710B2 (en) Automated regression test case selector and black box test coverage tool for product testing
US9092578B2 (en) Automated end-to-end testing via multiple test tools
US11119988B2 (en) Performing logical validation on loaded data in a database
US20150286556A1 (en) Software Test Automation System and Method
US8661432B2 (en) Method, computer program product and system for installing applications and prerequisites components
US20080086718A1 (en) Method and Apparatus for Identifying Authors of Changes Between Multiple Versions of a File
US20120197836A1 (en) Portable data management
CN104182335A (zh) 软件测试方法和装置
CN110428319B (zh) 一种数据比对平台、方法、设备和存储介质
EP1171832A2 (en) Interface for an enterprise resource planning program
CN102866930A (zh) 蓝屏修复方法、装置及系统
CN102855160A (zh) 软件修复方法、装置及系统
US20150355935A1 (en) Management system, management program, and management method
US10275234B2 (en) Selective bypass of code flows in software program
US9910679B2 (en) Selective loading of components within a node to speed up maintenance actions
US20120246551A1 (en) Updating serialized objects
CN111143434A (zh) 数据智能核对方法、装置、设备及存储介质
CN112783749A (zh) 一种静态代码扫描优化方法、装置、电子设备和存储介质
KR102310761B1 (ko) 웹툰 자동 업로드 시스템 및 그 구동 방법
KR101419759B1 (ko) 언두 실행이 가능한 전자 문서 구동 장치 및 방법
US20090069919A1 (en) Intelligent mass production planning and routing system
US11195147B2 (en) Mobile terminal and method for checking fixed assets

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

CP01 Change in the name or title of a patent holder
TR01 Transfer of patent right

Effective date of registration: 20220329

Address after: 100016 1773, 15 / F, 17 / F, building 3, No.10, Jiuxianqiao Road, Chaoyang District, Beijing

Patentee after: Sanliu0 Digital Security Technology Group Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.

TR01 Transfer of patent right