处理终端设备的故障的方法和终端设备
技术领域
本发明实施例涉及终端领域,并且更具体的,涉及一种处理终端设备的故障的方法和终端设备。
背景技术
终端设备发生故障直接影响用户对终端设备的体验,导致用户对终端设备的产品质量产生质疑。在终端设备发生故障时,用户需要将发生故障时产生的大量数据发送至网络服务器,由网络服务器对数据进行分析处理,然而,在将大量数据上传至网络服务器时,需要消耗很长的时间,数据在网络服务器侧经过分析之后,网络服务器需要将分析结果回传至终端设备,整个过程周期较长,成本较高,且用户只能等待网络服务器对故障进行分析处理,不能自主对故障进行处理,导致处理故障的效率低。
发明内容
本发明实施例提供一种处理终端设备的故障的方法和终端设备,能够简化终端设备的故障定位的过程,缩短故障处理的周期,提高故障处理的效率。
第一方面,提供一种处理终端设备的故障的方法,包括:终端设备获取转储文件;所述终端设备根据预存的分析策略,自动调用调试工具对所述转储文件进行分析,生成故障分析报告,所述故障分析报告包含所述终端设备发生故障时的***状态信息;所述终端设备根据所述故障分析报告确定故障解决方案。
本发明实施例的处理终端设备的故障的方法,能够利用预存的分析策略自动生成故障分析报告,并根据故障分析报告确定故障解决方案,整个过程无需专业人员的参与,简化了故障定位的过程,降低了故障处理的成本,缩短了故障处理的周期,提高了处理故障的效率。
结合第一方面,在第一方面的第一种实现方式中,所述方法还包括:所述终端设备将所述故障分析报告发送至网络服务器;所述终端设备接收所述网络服务器发送的基于所述故障分析报告生成的故障解决方案。
在本发明实施例中,终端设备可以将生成的故障分析报告发送至网络服
务器,由网络服务器生成故障解决方案,可以避免将发生故障时生成的大量数据上传至网络服务器,缩短了处理故障的周期,降低了处理故障的成本。
结合第一方面,或第一方面的第一种实现方式,在第一方面的第二种实现方式中,在所述终端设备根据预存的分析策略,自动调用调试工具对所述转储文件进行分析之前,所述方法还包括:所述终端设备从所述网络服务器中获取所述分析策略。
在本发明实施例中,终端设备可以接收网络服务器发送的分析策略,该分析策略可以实时更新,使得分析过程更加准确。
结合第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述方法还包括:所述终端设备接收所述网络服务器发送的更新指示信息,所述更新指示信息用于指示所述终端设备更新所述分析策略;所述终端设备根据所述更新指示信息更新所述分析策略。
在本发明实施例中,终端设备通过从网络服务器获取更新指示信息实现分析策略的动态更新,使得故障的分析过程更加智能,分析结果更加准确。
结合第一方面或第一方面的第一种至第三种实现方式中的任一种,在第一方面的第四种实现方式中,在所述终端设备根据分析策略,自动调用调试工具对所述转储文件进行分析之前,所述方法还包括:所述终端设备在显示界面呈现提示信息,所述提示信息用于询问用户是否对所述终端设备的故障进行分析;所述终端设备接收所述用户输入的指示信息,所述指示信息用于指示用户确认对所述终端设备的故障进行分析。
在本发明实施例中,通过终端设备在显示界面向用户呈现提示信息和接收用户输入的指示信息,使用户能够实时的感知故障处理的过程,提升了用户的体验。
结合第一方面或第一方面的第一种至第四种实现方式,在第一方面的第五种实现方式中,所述分析策略包含用于提取所述***状态信息的命令参数。
结合第一方面的第五种实现方式,在第一方面的第六种实现方式中,所述分析策略为所述命令参数组成的程序代码或脚本文件。
结合第一方面或第一方面的第一种至第六种实现方式,在第一方面的第七种实现方式中,所述调试工具为内核调试器,所述内核调试器运行所述程序代码或所述脚本文件对所述转储文件进行自动分析。
在本发明实施例中,内核调试器可以结合分析策略对转储文件进行自动分析,极大地方便了普通用户。
第二方面,提供一种处理终端设备的故障的方法,包括:网络服务器接收终端设备根据预存的分析策略自动调用调试工具生成的故障分析报告,所述故障分析报告包含所述终端设备发生故障时的***状态信息;所述网络服务器根据所述故障分析报告生成故障解决方案;所述网络服务器向所述终端设备发送所述故障解决方案。
结合第二方面,在第二方面的第一种实现方式中,在所述网络服务器接收终端设备根据预存的分析策略生成的故障分析报告之前,所述方法还包括:所述网络服务器向所述终端设备发送所述分析策略。
结合第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述方法还包括:所述网络服务器向所述终端设备发送更新指示信息,所述更新指示信息用于指示所述终端设备更新所述分析策略。
结合第二方面或第二方面的第一种和第二种实现方式,在第二方面的第三种实现方式中,所述分析策略包含用于提取所述***状态信息的命令参数。
结合第二方面的第三种实现方式,在第二方面的第四种实现方式中,所述分析策略为所述命令参数组成的程序代码或脚本文件。
结合第二方面或第二方面的第一种至第四种实现方式,在第一方面的第五种实现方式中,所述调试工具为内核调试器,所述内核调试器运行所述程序代码或所述脚本文件对所述转储文件进行自动分析。
第三方面,提供一种终端设备,包括用于执行第一方面中的方法的一个或多个模块。
第四方面,提供一种终端设备,包括用于执行第二方面中的方法的一个或多个模块。
第五方面,提供一种终端设备,包括存储器、处理器,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码以实现上述第一方面及所述第一方面的各实现方式中的方法。
第六方面,提供一种终端设备,包括存储器、处理器,所述存储器用于存储程序代码,所述处理器用于调用所述程序代码以实现上述第二方面及所述第二方面的各实现方式中的方法。
第七方面,提供一种计算机可读介质,所述计算机可读介质用于存储可被所述处理终端设备的故障的装置执行的程序代码,所述程序代码包括用于执行上述第一方面及所述第一方面的各实现方式中的方法的指令。
第八方面,提供一种计算机可读介质,所述计算机可读介质用于存储可被所述处理终端设备的故障的装置执行的程序代码,所述程序代码包括用于执行上述第二方面及所述第二方面的各实现方式中的方法的指令。
附图说明
图1是根据本发明实施例的终端设备的结构图。
图2是根据本发明实施例的处理终端设备的故障的方法的示意性流程图。
图3是根据本发明实施例的KD调试器的图形用户界面。
图4是根据本发明实施例的处理终端设备的故障的方法的另一示意性流程图。
图5是根据本发明实施例的处理终端设备的故障的方法的又一示意性流程图。
图6是根据本发明实施例的终端设备的示意性框架图。
图7是根据本发明实施例的终端设备的另一示意性框架图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
应理解,在本发明实施例中,终端设备可以包括但不限于个人计算机(Personal Computer,PC)产品,例如,可以是台式机(Desktop)、一体机、笔记本电脑(Notebook)、掌上电脑(Personal Digital Assistant,PDA)、平板电脑(Tablet)等。
图1为本发明实施例的终端设备100的结构图,该终端设备100例如可以是台式机,也可以是一体机等任意一种PC产品,以下以图1所示的终端设备100为例对本发明实施例所适用的终端设备的各个部件进行介绍。在本发明实施例中,终端设备100可以包括:显示器110、鼠标120、物理键盘130和主机140,其中,本领域技术人员可以理解,图1示出的终端设备100
的各个部件仅为示例而非限定,终端设备100还可以包括比图1所示更多的或者更少的部件,或者组合某些部件,或者不同的部件布置。
下面,结合图1对终端设备100的各个构成部件进行详细的介绍:
显示器110可用于显示用户输入的信息或提供给用户的信息,用户可以根据显示器110所示的信息对终端设备100进行操作,显示器110可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置。
应理解,在其他的PC产品中,例如,掌上电脑、平板电脑,该显示器110可以设置为触摸屏,该触摸屏可收集用户在其上或附近的触摸操作(比如,用户使用手指、触笔等任何合适的物体在触摸屏上进行操作),并根据预先设定的程序驱动相应的连接装置。
鼠标120和物理键盘130为终端设备100的输入单元,可以通过鼠标120和/或物理键盘130对终端设备100进行操作,该鼠标120和物理键盘130可以采用有线设置或者无线设置。
主机140是终端设备100的控制中心,利用各种接口和线路连接整个终端设备100的各个部件,主机140中主要包括主机板、中央处理器(Central Processing Unit,CPU)、内存储器、硬盘、显卡以及声卡等部件。主机板一般为矩形电路板,上面安装有组成终端设备100的主要电路***;CPU是一块超大规模的集成电路,是终端设备100的运算核心和控制中心,CPU通过运行或执行存储于内存储器内的数据,执行终端设备100的各种功能和数据处理,从而实现基于终端设备100的各种业务;内存储器的主要作用是用于暂时存放CPU中的运算数据以及与硬盘等外部存储设备交换数据;硬盘是终端设备100的主要存储媒介之一,由一个或者多个铝制或者玻璃制的碟片组成,绝大多数硬盘都是固定硬盘,被永久地密封固定在硬盘驱动器中;显卡也称为显示接口卡,又称为显示适配器,是终端设备100进行数模转换的设备,承担输出显示图形的任务,显卡接在终端设备100的主机板上,将终端设备100的数字信号转换成模拟信号并通过显示器显示给用户,同时显卡还具有图像显示的功能;声卡是终端设备100中实现声波/数字信号相互交换的一种硬件,声卡的基本功能是把来自话筒、磁带、光盘等的原始声音信号进行转换,输出到耳机,扬声器、扩音机、录音机等声响设备。
终端设备100还可以包括给各个部件供电的供电电源,可选的,电源可以通过电源管理***与CPU相连,从而通过电源管理***实现充电、放电以及功耗等功能。
尽管未示出,终端设备100还可以包括摄像头、麦克风、音响等设备,本发明实施例对此不做限定。
应理解,本发明实施例可适用于各种操作***,例如,可以是Windows操作***,本发明实施例对此不做限定。
图2是根据本发明实施例的用于处理终端设备的故障的方法200的示意性流程图,该方法200可以由图1所示的终端设备100执行,如图2所示的方法200包括:
210,终端设备获取转储文件;
220,终端设备根据预存的分析策略,自动调用调试工具对转储文件进行分析,生成故障分析报告,该故障分析报告包含终端设备发生故障时的***状态信息;
230,终端设备根据故障分析报告确定故障解决方案。
在本发明实施例中,终端设备在发生故障时,能够利用预存的分析策略自动生成故障分析报告,并将该故障分析报告发送至网络服务器,从而得到网络服务器推送的故障解决方案,整个过程无需专业人员的参与,简化了故障定位的过程,提高了故障定位的效率。
在一些实施例中,终端设备发生的故障可以是指终端设备的***发生崩溃,例如,终端设备出现蓝屏事件。
在另一些实施例中,终端设备发生的故障还可以是其他类型的故障,例如,终端设备的***发生卡顿等。
应理解,转储文件也可以称为内存转储文件,或者也可以称为dump文件。
该转储文件的类型大致分为三类,例如可以是完全转储文件(Full dump)、内核转储文件(Kernel dump)和小内存转储文件(Mini-dump),上述转储文件的分类并非对转储文件类型的限制,该转储文件也可以是其他类型的转储文件,本发明实施例并不限定于此。
在上述三种转储文件的分类中,完全内存转储文件在***发生崩溃时,将捕获整个物理内存的状态。此类转储文件大小为内存中页面文件大小
+1MB的文件头。在一个新的完全内存转储文件创立时,会覆盖上一次***崩溃时产生的完全内存转储文件;内核转储文件在***发生崩溃时,只捕获物理内存中内核态的页面文件读/写数据。内核转储文件中一般包括:当前运行进程、线程和被加载的驱动等信息。在一个新的内核转储文件创立时,同样会覆盖上一次***崩溃时产生的内核转储文件;小内存转储文件在***发生崩溃时,记录可确定***崩溃原因的有用信息的最小集合。该小内存转储文件一般是一个64K的转储文件,它包括:错误检查信息和参数、崩溃的处理器的处理环境、崩溃的进程信息和内核环境、崩溃的线程的信息和内核环境、产生崩溃的线程的内核模式调用堆栈信息等信息。在一个新的小内存转储文件创立时,不会覆盖上一次崩溃时产生的小内存转储文件,每个小内存转储文件都按不同的创立时间来命名。
应理解,本发明实施例可适用于终端设备发生故障时产生的任意一种转储文件,例如,可以是上述三种转储文件中的一种,也可以是除上述三种转储文件类型之外的其他转储文件,本发明实施例并不限定于此。
应理解,在本发明实施例中,分析策略可以是包含用于提取终端设备发生故障时的***状态信息的命令参数,例如,可以是一段命令参数组成的程序代码或脚本文件。
表1所示为用于提取***状态信息时常用的命令参数及其功能,如表1所示,该分析策略可以是表1中的命令参数中的一种或多种的组合。
表1命令参数及其功能
命令参数 |
功能描述 |
kb |
可获取前三个函数参数的当前堆栈信息 |
r |
可获取所有寄存器信息 |
!peb |
可获取进程环境信息 |
!teb |
可获取线程环境信息 |
!analyze-v |
可获取详细的当前异常信息 |
k |
可获取当前调用堆栈 |
~*k |
可获取所有线程堆栈信息 |
!uniqstack |
可获取所有线程的调用堆栈 |
dv |
可获取当前函数内所有局部变量,函数参数 |
lm |
可获取所有模块对应的符号信息 |
应理解,表1所示的命令参数并非对用于提取终端设备发生故障时的***状态信息的命令参数的穷举,本发明实施例仅以此为例对用于提取终端设备发生故障时的***状态信息的命令参数进行说明,该命令参数还可以进行扩展,例如,用户可以从第三方获取命令参数或者用户可以自己编写命令参数,本发明实施例对此不做限定。
可选的,在一些实施例中,故障分析报告中可以包含终端设备发生故障时的***状态信息,该***状态信息例如可以是***发生故障时的详细的当前异常信息、相关寄存器信息、堆栈信息以及进程信息和线程信息等,本发明实施例仅以上述几种***状态信息为例,但本发明实施例并不限定于此。
可选的,在一些实施例中,故障分析报告还可以包括故障原因。
在本发明实施例中,调试工具可以是内核调试器,例如,可以是KD调试器,由于KD调试器占用内存空间小,是一款绿色免安装的调试工具,且KD调试器基于命令行的交互方式设计,在对转储文件进行自动分析的过程中无需人工干预,极大方便了普通用户在终端设备发生故障时的操作。
该KD调试器可以从WinDbg内核态调试工具中抽离出,并进行独立的操作,在从WinDbg调试工具中抽离KD调试器时,可以使用反编译工具,例如Depends工具,执行可移植可执行(Portable Executable,PE)文件,例如,EXE、DLL、OCX、SYS、COM等常用的PE文件,分析出KD调试器需要的最小的动态库集,这些最小的动态库集可以组合成KD调试器这样的轻量级调试工具。
由于大多数传统的调试工具需要用户收动输入命令参数,对转储文件等终端设备发生故障时产生的存储故障数据的文件进行分析,然而,一般的非专业人员,不知道运用什么命令参数可以对发生的故障进行分析,导致用户的体验差,在本发明实施例中,分析策略可以是一段命令参数组成的程序代码或脚本文件等,该命令参数组成的程序代码或脚本文件可以在终端设备侧进行周期性更新或通过网络服务器周期性更新,所以在使用KD调试器对转储文件进行分析时,可以使用KD调试器运行该程序代码或脚本文件对转储文件进行分析,实现KD调试器的自动分析,极大地方便了普通用户。
可选的,在一些实施例中,上述KD调试器还可以具有一个图形用户界面(Graphical User Interface,GUI),图3所示为根据本发明实施例的KD调试器的图形用户界面,在对转储文件进行分析的过程中,KD调试器的GUI
界面可以显示转储文件的分析进度,如图3(a)所示,当前界面显示KD调试器已完成对80%的转储文件的分析;在完成分析后KD调试器的GUI界面还可以显示最终的故障解决方案,如图3(b)所示,当前界面显示终端设备发生故障的原因是“XX软件的升级程序和XXX软件的驱动程序发生冲突”,显示的解决方案为“是否卸载XX软件的升级程序”,此时用户只需一键点击“是”或者“否”的选择键就可以决定是否解决终端设备发生的故障。
可选的,在一些实施例中,在终端设备发生故障时,例如,发生蓝屏事件时,用户重新启动终端设备之后,终端设备的显示界面可以自动弹出该KD调试器的GUI界面,该GUI界面可以供用户了解上次故障的原因等情况,并供用户选择是否对上次的故障进行处理。
在本发明实施例中,通过KD调试器的GUI界面设置,可以增加用户对KD调试器分析过程的感知度,且用户只需一键点击即可解决终端设备发生的故障,极大地方便了普通用户,提升了用户体验。
应理解,本发明实施例仅以KD调试器为例对调试工具进行说明,但本发明实施例并不限定于此。
可选的,在一些实施例中,在终端设备获取转储文件之后,该方法200还包括:该终端设备获取分析策略,该分析策略可以是预先存储于该终端设备中的分析策略,也可以是存储于网络服务器中的分析策略。
可选的,在一些实施例中,在终端设备根据预存的分析策略,自动调用调试工具对转储文件进行分析之前,该方法200还包括:该终端设备获取分析策略。该分析策略可以是预先存储于该终端设备中的分析策略,或者是存储于网络服务器中的分析策略。
在该分析策略是预先存储于终端设备中的分析策略时,该分析策略可以周期性进行更新。
在该分析策略是存储于网络服务器中的分析策略时,也就是说,该终端设备从网络服务器中获取分析策略时,该终端设备可以根据网络服务器发送的更新指示信息对分析策略进行更新。
具体的,在终端设备连网时,网络服务器会周期性的自动推送更新指示信息给终端设备,以便于终端设备根据该更新指示信息更新该分析策略,例如该更新指示信息可以是***补丁。
可选的,在一些实施例中,网络服务器还可以根据网络服务器中预置的
历史故障案例库中的所有历史故障案例发生时的***状态信息,综合提取分析策略,再将提取的分析策略发送给终端设备,在历史故障案例库中的故障案例种类增加时,网络服务器可以根据增加后的所有故障案例发生时的***状态信息再次综合提取分析策略,此时的分析策略为更新的分析策略。
在本发明实施例中,通过分析策略的动态更新可以实时获取最新的分析策略,使得分析过程更加智能,分析结果更加准确。
可选的,在一些实施例中,在步骤220之前,该方法200还包括:终端设备在显示界面呈现提示信息,该提示信息用于询问用户是否需要对该终端设备发生的故障进行分析,在用户接收到该提示信息时,可以根据该提示信息输入指示信息,该指示信息用于指示用户确认对该终端设备发生的故障进行分析。
例如,在终端设备100发生蓝屏事件时,终端设备100在根据分析策略自动调用调试工具对转储文件进行分析之前,终端设备100在显示器110上呈现提示信息,该提示信息用于询问用户是否需要对蓝屏事件进行分析,在用户接收到显示器110呈现的提示信息时,可以根据提示信息中的选择键输入指示信息,该指示信息用于指示用户确认对蓝屏事件进行分析。
可理解,该终端设备在显示界面呈现提示信息和用户输入指示信息的过程,可以发生在该终端设备获取分析策略之前,也可以发生在该终端设备获取分析策略之后,本发明实施例对此不做限定。
在本发明实施例中,终端设备通过向用户呈现提示信息和接收用户输入的指示信息,增强了用户对故障处理过程的感知,提升了用户的体验。
在220中,终端设备根据分析策略对转储文件进行分析,并生成故障分析报告。
可选的,在一些实施例中,终端设备可以根据分析策略自动调用调试工具。
可选的,在一些实施例中,该调试工具可以是KD调试器。
可选的,在一些实施例中,该故障分析报告包含发生故障时的终端设备的***状态信息。
可选的,在一些实施例中,该故障分析报告还可以包含当前故障的故障原因。
在本发明实施例中,终端设备对发生故障时的数据文件进行分析,生成
故障分析报告,避免了终端设备需要将大量的数据上传至网络服务器的过程,缩短了处理故障的时间,节省了成本。
在230中,终端设备根据故障分析报告确定故障解决方案。
可选的,在一些实施例中,终端设备在生成故障分析报告之后,可以在终端设备侧根据该故障分析报告确定故障解决方案,可以避免用户将发生故障时生成的大量数据上传至网络服务器,缩短了处理故障的周期,降低了故障处理的成本。
终端设备根据故障分析报告确定故障解决方案,具体可以包括:终端设备根据故障分析报告中的***状态信息和/或故障原因与终端设备预先存储的历史故障案例发生时的***状态信息和/或故障原因进行比较,确定故障解决方案。可选的,在一些实施例中,终端设备还可以将故障分析报告发送至网络服务器,网络服务器可以根据接收到的故障分析报告中的***状态信息和/或故障原因确定发生当前故障的故障解决方案。
具体的,网络服务器根据故障分析报告确定故障解决方案包括:网络服务器将故障分析报告中的***状态信息和/或故障原因与网络服务器中的历史故障案例库的历史故障案例发生时的***状态信息和/或历史故障原因进行匹配,在匹配成功时,可以确定该匹配成功的历史故障案例的解决方案即为当前故障的故障解决方案;在匹配失败时,表示当前故障为新增加的故障种类,此时后台运维人员可以根据发生当前故障时的终端设备的***状态信息和/或故障原因确定故障解决方案。可选的,在一些实施例中,在终端设备将故障分析报告发送至网络服务器之后,终端设备接收网络服务器发送的基于故障分析报告生成的故障解决方案,并根据该故障解决方案对当前故障进行处理。
可选的,在一些实施例中,网络服务器可以周期性向终端设备自动推送故障解决方案。
可选的,在一些实施例中,在终端设备根据故障解决方案成功解决当前故障之后,该方法200还包括:终端设备向网络服务器发送反馈信息,该反馈信息包含终端设备当前的***状态信息、故障原因和解决方案,并将该反馈信息中的内容与历史故障案例库中相应的内容进行匹配,若匹配成功,将该匹配成功时的历史故障案例的经验值加1,经验值越高的历史故障案例表示发生该故障的机率越高,在后续对终端设备的故障进行预测时,可以将还
未发生故障的终端设备的***状态信息首先与经验值高的历史故障案例比较,降低故障预测的复杂程度,以达到在故障发生之前对故障进行解决或者推送补丁防止造成严重的灾难性错误的目的;在匹配失败时,将当前故障发生时的***状态信息、故障原因和解决方案作为一种新的故障案例增加到历史故障案例库中。
在本发明实施例中,通过在故障解决之后向网络服务器发送反馈信息,实现了对历史故障案例库中的历史故障案例的完善和积累,方便后续终端设备的故障预测,提升了用户体验度和产品质量。
图4所示为根据本发明实施例的处理终端设备的故障的方法400的示意性流程图,如图4所示,该方法400以终端设备发生蓝屏事件为例进行说明。
在410中,终端设备发生的故障为蓝屏事件并产生转储文件,该转储文件中保存有终端设备发生故障时的错误信息。
可选的,该转储文件也可以称为内存转储文件或dump文件。
可选的,该转储文件的类型可以是完全转储文件、内核转储文件或小内存转储文件中的任意一种。
在420中,终端设备在产生转储文件之后可以从网络服务器中获取预存的分析策略。
可选的,在一些实施例中,网络服务器可以周期性的自动推送更新指示信息给终端设备,以便于终端设备根据该更新指示信息更新分析策略。
可选的,在一些实施例中,网络服务器还可以根据历史故障案例库中的历史故障案例的更新来更新预存分析策略,并将该更新的分析策略发送给终端设备。
可选的,在一些实施例中,终端设备还可以在显示界面呈现提示信息,以询问用户是否对该终端设备发生的蓝屏事件进行分析,用户根据终端设备呈现的提示信息中相应的选择键输入指示信息,该指示信息用于指示用户确认对该终端设备发生的蓝屏事件进行分析。
在430中,终端设备根据420中获取的分析策略自动调用KD调试器对转储文件进行分析,并得到故障分析报告。
可选的,在一些实施例中,该KD调试器具有GUI界面,可以在对蓝屏事件分析的过程中向用户呈现分析进度界面,还可以在蓝屏事件分析完成之后向用户呈现蓝屏事件解决方案的界面,用户通过GUI界面的显示可以感知
整个蓝屏事件分析的过程,增加用户的体验度。
在440中,终端设备将故障分析报告发送至网络服务器,网络服务器根据该故障分析报告确定故障解决方案。
可选的,在一些实施例中,网络服务器将接收到的故障分析报告中的***状态信息和/或故障原因与历史故障案例库中的历史故障案例的***状态信息和/或历史故障原因进行匹配,在匹配成功时,可以确定该匹配成功的历史故障案例的故障解决方案即为当前故障的故障解决方案;在匹配失败时,可以确定当前故障为新增加的一种故障案例,此时,后台运维人员可以根据发生当前故障时的终端设备的***状态信息确定故障解决方案。
在450中,终端设备接收网络服务器发送的故障解决方案,并根据该故障解决方案对终端设备发生的故障进行解决。
可选的,在一些实施例中,网络服务器可以周期性的自动推送故障解决方案给终端设备。
可选的,在一些实施例中,在终端设备成功解决故障之后,终端设备向网络服务器发送反馈信息,该反馈信息包含终端设备当前的***状态信息、故障原因和解决方案,并将该反馈信息中的内容与历史故障案例库中相应的内容进行匹配,若匹配成功,将该匹配成功时的历史故障案例的经验值加1,经验值越高的历史故障案例表示发生该故障的机率越高,在后续对终端设备的故障进行预测时,可以将还未发生故障的终端设备的***状态信息首先与经验值高的历史故障案例比较,降低故障预测的复杂程度,以达到在故障发生之前对故障进行解决或者推送补丁防止造成严重的灾难性错误的目的;在匹配失败时,将当前故障发生时的***状态信息、故障原因和解决方案作为一种新的故障案例增加到网络服务器中的历史故障案例库中,从而实现对历史故障案例库的完善和积累。
图5所示为根据本发明实施例的处理终端设备的故障的方法500的示意性流程图,如图5所示,在终端设备发生故障时,终端设备获取发生故障时生成的转储文件,该转储文件可以为完全转储文件(Full dump),使用KD调试器结合分析策略提取该完全转储文件中的信息,该分析策略例如可以是如下的命令参数:kb,r,!peb,!teb,!analyze-v,其中,命令参数!analyze-v用于获取详细的当前异常信息,即用于分析造成终端设备当前故障的原因,终端设备可以根据命令参数!analyze-v分析的故障原因提取其中的信息来对
终端设备进行初步诊断分析;命令参数kb用于获取当前的堆栈信息,命令参数r用于获取所有的寄存器信息,命令参数!peb用于获取进程环境信息,命令参数!teb用于获取线程环境信息,在终端设备根据命令参数!analyze-v初步分析造成终端设备当前故障的原因之后,可以结合堆栈信息、相关寄存器信、进程信息和以及线程信息等相关信息对命令参数!analyze-v分析出的故障原因进行核验,并最终生成故障分析报告,在故障分析报告生成之后,终端设备可以根据该故障分析报告确定故障解决方案,或者终端设备将该故障分析报告发送至网络服务器,并获取网络服务器根据故障分析报告生成的故障解决方案,以达到解决终端设备故障的目的。
应理解,图5中所示的分析策略的命令参数仅为分析策略中命令参数的举例,而非对分析策略的命令参数的限定。
终端设备可以周期性的接收网络服务器自动推送的更新指示信息对分析策略进行更新,即对分析策略的命令参数进行更新,因此,本发明实施例的分析策略中的命令参数并不限定于此。
上文结合图2至图5,详细的描述了本发明实施例的方法实施例,下文将结合图6和图7,详细描述本发明实施例的终端设备的实施例,应理解,终端设备实施例与方法实施例相互对应,类似的描述可以参照方法实施例。
图6是根据本发明实施例的终端设备600的示意性框图。如图6所示,该终端设备600包括:
获取模块610,用于获取转储文件;
处理模块620,用于根据预存的分析策略,自动调用调试工具对所述转储文件进行分析,生成故障分析报告,所述故障分析报告包含所述终端设备发生故障时的***状态信息;
确定模块630,用于根据故障分析报告确定故障解决方案。
在本发明实施例中,终端设备在发生故障时,处理模块620能够利用预存的分析策略自动生成故障分析报告,并由确定模块630根据该故障分析报告确定故障解决方案,整个过程无需专业人员的参与,简化了故障定位的过程,提高了故障定位的效率。
可选的,在一些实施例中,该终端设备600还包括:
发送模块640,用于将所述故障分析报告发送至网络服务器;
接收模块650,用于接收所述网络服务器发送的基于所述故障分析报告
生成的故障解决方案。
可选的,在一些实施例中,该获取模块610还用于从所述网络服务器中获取所述分析策略。
可选的,在一些实施例中,接收模块650还用于接收所述网络服务器发送的更新指示信息,所述更新指示信息用于指示所述终端设备更新所述分析策略。
可选的,在一些实施例中,处理模块620还用于根据所述更新指示信息更新所述分析策略。
在本发明实施例中,通过处理模块620对分析策略进行动态更新可以实时获取最新的分析策略,使得分析过程更加智能,分析结果更加准确。
可选的,在一些实施例中,该终端设备600还包括显示模块660,用于呈现提示信息,所述提示信息用于询问用户是否对所述终端设备的故障进行分析。
可选的,在一些实施例中,接收模块650还用于接收所述用户输入的指示信息,所述指示信息用于指示用户确认对所述终端设备的故障进行分析。
在本发明实施例中,终端设备600通过显示模块660向用户呈现提示信息和接收模块650接收用户输入的指示信息,增强了用户对故障处理过程的感知,提升了用户的体验。
可选的,在一些实施例中,分析策略包含用于提取所述***状态信息的命令参数。
可选的,在一些实施例中,分析策略可以是上述命令参数组成的程序代码或者脚本文件。
可选的,在一些实施例中,调试工具为内核调试器,该内核调试器可以运行上述程序代码或脚本文件对内存转储文件进行自动分析,例如,该内核调试器为KD调试器,该KD调试器运行程序代码或脚本文件对完全转储文件进行自动分析。
应理解,根据本发明实施例终端设备600可对应于本发明实施例中的终端设备,并且该终端设备600中的各个模块的上述和其他操作和/或功能分别实现图2至图5中的各个方法的相应流程,为了简洁,在此不再赘述。
图7是根据本发明实施例的终端设备700的示意性结构图。如图7所示,所述终端设备700包括存储器710和处理器720,所述存储器710和处理器
720之间通过内部连接通路互相通信,传递控制和/或数据信号。
所述存储器710用于存储程序代码;
所述处理器720用于调用所述程序代码以实现本发明上述各实施例中的方法。
在本发明实施例中,处理器720可以是中央处理器(Central Processing Unit,CPU),网络处理器(Network Processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(Application-Specific Integrated Circuit,ASIC),可编程逻辑器件(Programmable Logic Device,PLD)或其组合。本发明实施例提供了一种计算机可读介质,用于存储计算机程序代码,该计算机程序包括用于执行上述图2至图5中本发明实施例的故障定位方法的指令。该可读介质可以是只读存储器(Read-Only Memory,ROM)或随机存取存储器(Random Access Memory,RAM),本发明实施例对此不做限制。
应理解,根据本发明实施例终端设备700可对应于本发明实施例中的终端设备,并且该终端设备700中的各个部件的上述和其他操作和/或功能分别实现图2至图5中的各个方法的相应流程,为了简洁,在此不再赘述。
应理解,本文中术语“和/或”以及“A或B中的至少一种”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可
以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。