CN109857583B - 一种处理方法及装置 - Google Patents
一种处理方法及装置 Download PDFInfo
- Publication number
- CN109857583B CN109857583B CN201811597845.8A CN201811597845A CN109857583B CN 109857583 B CN109857583 B CN 109857583B CN 201811597845 A CN201811597845 A CN 201811597845A CN 109857583 B CN109857583 B CN 109857583B
- Authority
- CN
- China
- Prior art keywords
- defect
- firmware
- code
- repair information
- patch package
- 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.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本申请提供的处理方法及装置,预先构建了一修复信息集合,在设备系统出现缺陷的情况下,通过从该修复信息集合中确定出对应于缺陷数据的目标修复信息来进行缺陷修复。应用本申请方案,可通过将不同产品/部门的用于解决缺陷的修复信息归集到修复信息集合中,来实现将各产品/部门间的除错、纠错机制相互打通或进行关联,从而除错人员不必再独立地执行解决方案的研究、制定及调试,而是可以直接基于修复信息集合中对应于缺陷数据的目标修复信息进行缺陷修复,为除错人员修复系统缺陷提供了便利,相应可提升缺陷的修复效率,且本申请通过运行目标修复信息使得在设备系统运行中进行缺陷纠正,实现了对系统缺陷的热修复,进一步提升了修复效率。
Description
技术领域
本发明属于固件修复技术领域,尤其涉及一种处理方法及装置。
背景技术
当今服务器系统越来越强大,相对应地导致开发过程中或使用过程中可能出现的问题越来越多、问题种类越来越复杂,例如硬盘容量/内存大小识别错误、硬盘/内存数据无法读写或者外接网卡无法初始化等等,这些问题的原因通常在于服务器的固件代码存在bug(缺陷)。
大规模公司的服务器产品众多、部门复杂,不同产品/不同部门间类似问题或相同问题的数量也相对较为庞大,然而不同产品/不同部门间针对所出现问题的除错、纠错处理机制一般是相互独立的,并没有打通或建立关联,从而在某一产品/某一部门在产品开发过程中或产品使用过程中出现问题(如外接网卡无法初始化)时,除错人员会针对所出现的问题独立地进行解决方案的研究、制定及调试,这就使得除错人员可能会花费大量时间、精力去解决一个早已经在公司其他产品上/其他部门内所解决的问题,甚至有可能花费大量时间、精力去重复解决在该产品上/该部门内部曾经已解决过的问题,这给除错人员带来了不必要的时间及精力消耗,固件缺陷的修复效率也相应较低。
发明内容
有鉴于此,本发明的目的在于提供一种处理方法及装置,以用于为除错人员修复系统的缺陷提供便利,进而提升缺陷的修复效率。
为此,本发明公开如下技术方案:
一种处理方法,包括:
获得设备系统运行的缺陷数据;
在预先构建的修复信息集合中确定出对应于所述缺陷数据的目标修复信息;
运行所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷。
上述方法,优选的,所述目标修复信息是基于经过测试多个修复信息得到的反馈结果所确定出的有效修复信息。
上述方法,优选的,测试多个修复信息得到反馈结果,包括:
运行所述多个修复信息中的各个修复信息;
捕获运行所述各个修复信息时设备系统分别产生的运行状态信息;
基于所述运行状态信息,确定对应于所述多个修复信息的反馈结果。
上述方法,优选的,在所述获得设备系统运行的缺陷数据之前,还包括:
预先获取至少一个用于纠正设备系统运行的缺陷的修复信息,并归集所获取的至少一个修复信息,以形成所述修复信息集合。
上述方法,优选的,所述修复信息集合中包括的修复信息为补丁包;
所述在预先构建的修复信息集合中确定出对应于所述缺陷数据的目标修复信息,包括:
提取所述缺陷数据所对应的关键缺陷信息;
从所述修复信息集合中搜索出对应于所述关键缺陷信息的补丁包。
上述方法,优选的,所述修复信息集合中包括的修复信息为补丁包;所述缺陷数据为设备系统中固件的缺陷代码所对应的缺陷数据;
所述运行确定出的所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷,包括:
将所述固件的加签固件代码加载到设备内存中,所述加签固件代码包括所述固件的固件代码以及处于固件代码中相应缺陷代码位置的第一调试签名;
运行所述加签固件代码;
在运行至加签固件代码中的所述第一调试签名时,基于预先建立的调试签名、补丁包标识及存储路径间的对应关系,确定所述第一调试签名所对应的第一存储路径及第一补丁包标识;
从所述第一存储路径所对应的存储位置获取所述第一补丁包标识所对应的第一补丁包;
利用所述第一补丁包对设备内存中所述第一调试签名所标识的缺陷代码进行修复,以纠正所述缺陷代码所对应的固件缺陷。
上述方法,优选的,所述利用所述第一补丁包对设备内存中所述第一调试签名所标识的缺陷代码进行修复,包括:
利用所述第一补丁包的补丁包代码覆盖设备内存中所述第一调试签名所标识的缺陷代码;
运行设备内存中覆盖了所述缺陷代码的所述第一补丁包的补丁包代码。
上述方法,优选的,还包括:
获取用于对固件缺陷进行纠正的第一补丁包,并将所述第一补丁包与所述固件缺陷所对应的第一调试签名关联存储至设备的预定位置;
在设备启动时的开机自检阶段,扫描所述预定位置存储的至少一个补丁包的补丁包标识,及每个补丁包所对应的调试签名;
建立所扫描的补丁包的补丁包标识、所对应的调试签名及所述预定位置所对应的存储路径间的对应关系,并触发对固件缺陷的纠正处理过程,以使得在设备的开机自检阶段完成对固件缺陷的纠正;其中,所述对应关系至少包括所述第一补丁包的补丁包标识、所述第一调试签名及所述预定位置所对应的存储路径间的对应关系。
一种处理装置,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
获得设备系统运行的缺陷数据;
在预先构建的修复信息集合中确定出对应于所述缺陷数据的目标修复信息;
运行所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷。
上述装置,优选的,所述修复信息集合中包括的修复信息为补丁包;所述缺陷数据为设备系统中固件的缺陷代码所对应的缺陷数据;
所述处理器运行所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷,具体包括:
将所述固件的加签固件代码加载到设备内存中,所述加签固件代码包括所述固件的固件代码以及处于固件代码中相应缺陷代码位置的第一调试签名;
运行所述加签固件代码;
在运行至加签固件代码中的所述第一调试签名时,基于预先建立的调试签名、补丁包标识及存储路径间的对应关系,确定所述第一调试签名所对应的第一存储路径及第一补丁包标识;
从所述第一存储路径所对应的存储位置获取所述第一补丁包标识所对应的第一补丁包;
利用所述第一补丁包对设备内存中所述第一调试签名所标识的缺陷代码进行修复,以纠正所述缺陷代码所对应的固件缺陷。
由以上方案可知,本申请提供的处理方法及装置,预先构建了一修复信息集合,在设备系统出现缺陷的情况下,通过从该修复信息集合中确定出对应于系统缺陷数据的目标修复信息来进行缺陷的修复。应用本申请方案,可通过将不同产品/部门的用于解决缺陷的修复信息归集到所述修复信息集合中,来实现将各产品/部门间的除错、纠错处理机制相互打通或进行关联,从而除错人员不必再独立地执行解决方案的研究、制定及调试,而是可以直接基于修复信息集合中对应于缺陷数据的目标修复信息进行缺陷修复,为除错人员修复系统缺陷提供了便利,降低了除错人员的工作量,并提升了修复效率,且本申请通过运行目标修复信息使得在设备系统运行中进行缺陷纠正,实现了对系统缺陷的热修复,进一步提升了修复效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的一种处理方法实施例一的流程图;
图2是本申请提供的一种处理方法实施例二的流程图;
图3是本申请实施例三提供的对多个修复信息进行测试验证以确定出有效修复信息的处理流程示意图;
图4是本申请实施例三提供的固件的相关运行环境信息文件的示例图;
图5是本申请实施例三提供的所捕获的运行状态信息文件的部分截图的示例图;
图6是本申请实施例四提供的对固件缺陷进行热修复的处理流程示意图;
图7是本申请实施例四提供的加签固件代码的示例图;
图8是本申请实施例五提供的对固件缺陷进行热修复前的预处理过程示意图;
图9是本申请实施例五提供的在设备的开机自检阶段对固件缺陷进行热修复的处理逻辑示意图;
图10是本申请提供的一种处理装置实施例六的结构示意图。
具体实施方式
为了引用和清楚起见,下文中使用的技术名词、简写或缩写总结解释如下:
Bugzilla:是一个开源的缺陷跟踪系统(Bug-Tracking System),它可以管理软件开发中缺陷的提交(new),修复(resolve),关闭(close)等整个生命周期。
SVN:是Subversion的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS。互联网上很多版本控制服务已从CVS迁移到Subversion。简单而言,SVN就是用于多个人共同开发同一个项目,以实现共用资源的目的。
Git:是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目的版本管理。Git是Linus Torvalds为了帮助管理Linux内核而开发的一个开放源码的版本控制软件。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了向除错人员修复系统的缺陷提供便利,并相应提升缺陷的修复效率,本申请提供了一种处理方法及装置,以下将通过多个实施例对本申请的处理方法及装置进行说明。
实施例一
参考图1,是本申请提供的一种处理方法实施例一的流程图,该方法可应用于但不限于对用户终端(如台式机、一体机、笔记本等)或服务器等设备进行系统缺陷修复,本申请中,所述系统缺陷是指设备系统运行的缺陷,如图1所示,所述处理方法可以包括以下步骤:
步骤101、获得设备系统运行的缺陷数据。
所述缺陷数据可以包括但不限于:在设备系统的日志中所包括的能够反映系统运行的缺陷的数据,和/或在系统相应组件的调试信息(如调试代码) 中所包括的能够反映系统运行的缺陷的数据。
本申请将主要以设备系统的缺陷为固件缺陷为例,对本申请的方法进行阐述。在设备系统的缺陷为固件缺陷的情况下,所述缺陷数据则相应地可以包括但不限于:在设备系统的日志中所包括的能够反映系统的固件缺陷的数据,和/或在系统固件的调试信息中所包括的能够反映固件缺陷的数据。如设备系统的日志和/或固件的调试代码中所包括的关于固件的相应警告和/或运行错误的数据信息等,更进一步地,关于固件的相应警告和/或运行错误的数据信息可以包括但不限于:表示硬盘容量/内存大小识别错误的信息、表示硬盘/内存数据无法读写的信息,或者表示外接网卡无法初始化的信息等等。
鉴于此,当设备系统在运行过程中出现问题时,可通过调出设备系统的日志并从中提取诸如运行警告和/或运行错误等的数据信息,来获得设备系统运行的缺陷数据;或者还可以调出固件等相应组件的调试信息并从中提取诸如运行警告和/或运行错误等的数据信息,来获得设备系统运行的缺陷数据;或者还可以调出系统的日志以及组件的调试信息这两类信息并从中进行缺陷数据的提取,以此使得为设备系统的缺陷分析及修复提供数据基础。
所述固件可以是但不限于服务器或用户终端等设备的UEFI(Unified ExtensibleFirmware Interface,统一的可扩展固件接口)固件。
步骤102、在预先构建的修复信息集合中确定出对应于所述缺陷数据的目标修复信息。
所述修复信息集合包括至少一个修复信息,每个修复信息能够用于对相应类型的系统缺陷进行纠正,例如修复信息集合中的第一修复信息能够对硬盘容量/内存大小识别错误的这一固件缺陷进行纠正,第二修复信息能够对硬盘/内存数据无法读写的这一固件缺陷进行纠正,第三修复信息能够对外接网卡无法初始化的这一固件缺陷进行纠正等等。
具体实施中,可通过预先获取至少一个用于纠正设备系统运行的缺陷的修复信息,并归集所获取的至少一个修复信息,来形成所述修复信息集合,以使得为设备系统的缺陷修复提供备选的修复信息。其中,所归集的各个修复信息如上文所述,能够对各种类型系统缺陷中的相应类型缺陷进行纠正。
对于某一个公司来说,可将其不同产品/不同部门的用于解决缺陷的各个修复信息归集到所述修复信息集合中,以此使得将各产品/部门间的除错、纠错机制相互打通或进行关联。
在此基础上,在设备系统出现运行的缺陷的情况下,可基于设备系统运行的缺陷数据,直接从所述修复信息集合中确定出相匹配的目标修复信息来对该缺陷数据对应的缺陷进行纠正。例如,若设备系统的缺陷为对硬盘容量/ 内存大小识别错误的这一固件缺陷,则可基于该固件缺陷的缺陷数据从所述修复信息集合中确定出所述第一修复信息作为目标修复信息;若设备系统的缺陷为无法初始化外接网卡的这一固件缺陷,则相应地可基于该固件缺陷的缺陷数据从所述修复信息集合中确定出所述第三修复信息作为目标修复信息。
步骤103、运行所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷。
在从修复信息集合中确定出对应于所述缺陷数据的目标修复信息后,可利用所确定出的该目标修复信息对所述缺陷数据对应的系统缺陷进行纠正。
具体地,本申请通过运行所述目标修复信息,来使得在设备系统运行过程中对所述缺陷数据对应的缺陷进行纠正。以设备系统的缺陷为上述任意一类型的固件缺陷为例,则本申请通过运行所述目标修复信息,实现在设备系统运行过程中对所述固件缺陷进行纠正,该在设备系统运行过程中对固件缺陷进行纠正的处理过程本质上属于对固件缺陷的热修复,本申请将在后续的实施例中进一步对该热修复的处理过程进行详述。
由以上方案可知,本实施例提供的处理方法,预先构建了一修复信息集合,在设备系统出现缺陷的情况下,通过从该修复信息集合中确定出对应于系统缺陷数据的目标修复信息来进行缺陷的修复。应用本申请方案,可通过将不同产品/部门的用于解决缺陷的修复信息归集到所述修复信息集合中,来实现将各产品/部门间的除错、纠错处理机制相互打通或进行关联,从而除错人员不必再独立地执行解决方案的研究、制定及调试,而是可以直接基于修复信息集合中对应于缺陷数据的目标修复信息进行缺陷修复,为除错人员修复系统缺陷提供了便利,降低了除错人员的工作量,并提升了修复效率,且本申请通过运行目标修复信息使得在设备系统运行中进行缺陷纠正,实现了对系统缺陷的热修复,进一步提升了修复效率。
实施例二
参考图2,是本申请提供的一种处理方法实施例二的流程图,本实施例二继续对上述的处理方法进行进一步详细,如图2所示,本实施例中,所述处理方法可以通过以下的处理过程实现:
步骤201、预先获取至少一个用于纠正设备系统运行的缺陷的修复信息,并归集所获取的至少一个修复信息,以形成所述修复信息集合。
所述修复信息集合中的每个修复信息能够用于对相应类型的系统缺陷进行纠正,例如修复信息集合中的第一修复信息能够对硬盘容量/内存大小识别错误的这一固件缺陷进行纠正,第二修复信息能够对硬盘/内存数据无法读写的这一固件缺陷进行纠正,第三修复信息能够对外接网卡无法初始化的这一固件缺陷进行纠正等等。
对于某一个公司来说,可将其不同产品/不同部门的用于解决缺陷的各个修复信息归集到所述修复信息集合中,以此使得将各产品/部门间的除错、纠错机制相互打通或进行关联。
具体地,在实施本申请方案时,可以但不限于将获取的各个用于纠正系统缺陷的修复信息归集到SVN(Subversion,开放源代码的版本控制系统)或 Git(分布式版本控制系统)中,以形成一个基于SVN或Git的修复信息库,该修复信息库中所归集的各个修复信息构成所述修复信息集合。
针对设备系统的缺陷为固件缺陷的情况,所述修复信息集合中包括的各个修复信息则可以是用于对相应固件缺陷进行修复/纠正的一系列补丁包。
步骤202、获得设备系统运行的缺陷数据。
如上文所述,所述缺陷数据可以包括但不限于:在设备系统的日志中所包括的能够反映系统运行的缺陷的数据,和/或在系统相应组件的调试信息(如调试代码)中所包括的能够反映系统运行的缺陷的数据。
在设备系统的缺陷为固件缺陷的情况下,所述缺陷数据则相应地可以包括但不限于:在设备系统的日志中所包括的能够反映系统的固件缺陷的数据,和/或在系统固件的调试信息中所包括的能够反映固件缺陷的数据。如设备系统的日志和/或固件的调试代码中所包括的关于固件的相应警告和/或运行错误的数据信息等,更进一步地,关于固件的相应警告和/或运行错误的数据信息可以包括但不限于:表示硬盘容量/内存大小识别错误的信息、表示硬盘/ 内存数据无法读写的信息,或者表示外接网卡无法初始化的信息等等。
鉴于此,在设备系统出现运行的缺陷的情况下,可通过调出设备系统的日志并从中提取诸如运行警告和/或运行错误等的数据信息,来获得设备系统运行的缺陷数据;或者还可以调出固件等相应组件的调试信息并从中提取诸如运行警告和/或运行错误等的数据信息,来获得设备系统运行的缺陷数据;或者还可以调出系统的日志以及组件的调试信息这两类信息并从中进行缺陷数据的提取,以此使得为设备系统的缺陷分析及修复提供数据基础。
步骤203、提取所述缺陷数据所对应的关键缺陷信息。
所述关键缺陷信息,可以是基于所述缺陷数据所提取或分析出的能够至少部分反映设备系统的缺陷的关键字/词或者短语、短句,或者所述关键字/ 词、短语、短句的任意组合。
举例来说,假设所述缺陷数据为从设备系统的日志和/或固件调试信息中所提取出的表征无法读写硬盘/内存数据的固件缺陷数据,则可基于该固件缺陷数据提取或分析出“硬盘”、“内存”、“读写”、“无法读写”、“读写失败”“硬盘读写失败”、“内存读写失败”这些信息中的一种或多种作为该固件缺陷数据的关键缺陷信息。
步骤204、从所述修复信息集合中搜索出对应于所述关键缺陷信息的目标修复信息。
在获得设备系统的缺陷数据所对应的关键缺陷信息之后,可基于所获得的关键缺陷信息对所述修复信息集合进行搜索,从而得到与所述关键缺陷信息相对应的目标修复信息。
以设备系统的缺陷为固件缺陷、修复信息集合中的修复信息为补丁包为例,则可基于固件缺陷的关键缺陷信息,搜索出与其相对应的补丁包,更进一步地,例如搜索出与关键缺陷信息“硬盘/内存读写失败”相对应的补丁包等。
目前,当设备系统的运行出现缺陷时,如出现硬盘容量/内存大小识别错误、硬盘/内存数据无法读写或者外接网卡无法初始化等的固件缺陷时,一般会利用一预定的缺陷跟踪系统对其进行缺陷跟踪、调试等处理。所述缺陷跟踪系统例如可以是但不限于Bugzilla。
鉴于此,在实施本申请方案时,优选地,可预先开发一接口以实现将所述缺陷跟踪系统如Bugzilla等与所述基于SVN或Git的修复信息库进行对接,在此基础上,将所述Bugzilla等缺陷跟踪系统作为SVN或Git的应用前端,在设备系统的运行出现缺陷的情况下,可将设备系统的缺陷数据的关键缺陷信息输入/提交至所述Bugzilla等缺陷跟踪系统,进而由该缺陷跟踪系统将所获得的关键缺陷信息通过接口传输至后端的SVN或Git,SVN或Git在获得关键缺陷信息后,基于所获得的关键缺陷信息对其所对应的修复信息库进行搜素,最终得到与所述关键缺陷信息相对应的修复信息,并将其反馈至前端的缺陷跟踪系统以供技术人员查看。
实际应用中,可利用一闲置平台来实现基于所述Bugzilla、SVN/Git的修复信息录入/归集及搜索功能。
步骤205、运行所述对应于所述关键缺陷信息的目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷。
在获得对应所述关键缺陷信息的目标修复信息后,可利用所获得的所述目标修复信息对设备系统的缺陷进行纠正。
本申请通过运行所述目标修复信息,来使得在设备系统运行过程中对所述缺陷数据对应的缺陷进行纠正,具体地,例如通过运行所述关键缺陷信息“硬盘/内存读写失败”相对应的补丁包,使得在设备系统运行过程中对设备系统的“无法读写硬盘/内存数据”这一固件缺陷进行修复等,该在设备系统运行过程中对固件缺陷进行纠正的处理过程本质上属于对固件缺陷的热修复。
应用本实施例方案,可通过将不同产品/部门的用于解决缺陷的修复信息归集到修复信息集合中,实现将各产品/部门间的除错、纠错处理机制相互打通或进行关联,从而除错人员不必再独立地执行解决方案的研究、制定及调试,而是可以直接基于修复信息集合中对应于缺陷数据的目标修复信息进行缺陷修复,为除错人员修复系统缺陷提供了便利,降低了除错人员的工作量,并提升了修复效率,且本申请通过运行目标修复信息使得在设备系统运行中纠正缺陷,实现了对系统缺陷的热修复,进一步提升了修复效率。
实施例三
在前述实施例中,当基于缺陷数据所对应的关键缺陷信息对修复信息集合进行搜索时,往往能够搜索出与所述关键缺陷信息相匹配的多于一个的修复信息,例如,在利用“硬盘/内存读写失败”(或“硬盘”、“内存”、“读写失败”等的组合)这一关键缺陷信息对所述基于SVN或Git的修复信息库进行搜索时,可能会出现反馈结果中包括多个补丁包的情况。
实际应用中,可能会因固件版本、不同供应商的代码差异,运行环境(如运行环境不符导致补丁包编译出现问题),与设备系统中其他组件的对接等各种原因,而使得基于关键缺陷信息所获得的各个修复信息中的某个/些修复信息不能有效解决设备系统的缺陷,即,在基于关键缺陷信息所获得的各个修复信息中可能仅有部分修复信息能够有效解决设备系统的缺陷。
针对该情况,本实施例中,当基于关键缺陷信息从修复信息集合中搜索出一个或多个修复信息时,会首先对各个修复信息进行测试,以验证各个修复信息是否为能够解决设备系统的缺陷且不会为设备系统带来其他运行问题的有效修复信息,以此确定出最终的用于对缺陷进行纠正的目标修复信息。
参考图3所示,具体可通过以下的处理过程实现对各个修复信息的验证以及验证基础上的目标修复信息的确定:
步骤301、运行所述多个修复信息中的各个修复信息。
以设备系统的缺陷为固件缺陷,修复信息为用于对固件缺陷进行修复的补丁包为例,对于所搜索出的与所述关键缺陷信息相匹配的至少部分补丁包,可向固件代码中合入补丁包代码,例如具体将固件中缺陷代码除外的其他部分与补丁包代码合并、编译,进而将编译结果烧写入固件载体中,在此基础上,可通过运行烧写所得的合并有补丁代码的固件代码,来实现对补丁包的运行测试。
其中,可同样采用一闲置设备来实现对补丁包的运行测试,在采用一闲置设备实现该过程的情况下,除了需要将烧写所得的合并有补丁代码的固件代码加载在该闲置设备中,还需要将存在固件缺陷的设备系统中的相关运行环境信息加载到该闲置设备中,示例性地,例如,可将图4所示的相关运行环境信息文件拷贝到闲置设备的CPU(CentralProcessing Unit,中央处理器)中,以此使得还原存在缺陷的系统的运行环境,并基于存在缺陷的系统的运行环境对合并有补丁代码的固件代码进行运行测试。
除此之外,在本申请另一实施例中,还可以基于本申请所提供的热修复处理方式,来实现对修复信息的运行,该热修复处理方式所对应的处理过程将在后续的实施例中进行详述,具体可参阅后续实施例的描述。
之后,可通过检测运行该补丁包过程中所对应的设备运行状态信息,来验证该补丁包是否为能够解决设备系统的缺陷且不会为设备系统带来其他运行问题的有效补丁包。
步骤302、捕获运行所述各个修复信息时设备系统分别产生的运行状态信息。
其中,可以但不限于捕获运行补丁包过程中设备系统所对应的如下运行状态信息中的任意一种或多种:SEL(System Event Log,系统事件日志)信息、SOL(Serial OutputLog,串口输出日志)信息、FFDC(First Failure Data Capture、首次故障数据捕获)信息、BMC(Baseboard Management Controller,基板管理控制器)日志信息、BIOS(Basic InputOutput System、基本输入输出系统)的日志信息,FRU(Field Replacement Unit,现场可更换单元)信息、 ITP(Inspection and Test Plan,检验及试验计划)的抓取信息,MCA(machine check architecture,机器检查结构)信息、CPU(Central Processing Unit,中央处理器)信息、IIO(integree IO)信息、PCIE(Peripheral Component InterconnectExpress、高速串行计算机扩展总线标准)信息、PCH(Platform Controller Hub,平台控制器集线器)信息,memory map(内存映射)信息。
参考图5,示出了所捕获的运行状态信息文件的部分截图信息。
步骤303、基于所述运行状态信息,确定对应于所述多个修复信息的反馈结果。
在捕获到运行补丁包时设备系统所对应的上述运行状态信息后,可基于该运行状态信息确定设备系统的固件缺陷是否成功修复以及在修复固件缺陷的同时所运行的补丁包是否为设备系统的运行带来了其他运行问题,如是否导致系统的BMC运行异常、BIOS运行异常、CPU运行异常或内存映射异常等等。
具体地,可利用预先编写的脚本程序对所捕获的运行状态信息进行分析,如捞取其中的关键点信息,并对其进行核验等,来确定所测试的补丁包是否为有效补丁包。所述关键点信息为运行状态信息中能够反映系统在相应方面 (如BMC、CPU、硬盘、内存等)是否异常的信息。
如果基于所捕获的运行状态信息,获知通过运行该补丁包成功修复了设备系统的固件缺陷(如修复了无法初始化外接网卡或者硬盘/内存数据读取失败的固件缺陷等),且未导致设备系统出现其他的运行问题,则可确定出该补丁包为一可用的有效补丁包。
反之,若该补丁包未成功修复设备系统的固件缺陷,和/或导致设备系统出现其他的运行问题,则可确定出该补丁包为一不可用的非有效补丁包。
针对基于关键缺陷信息所搜索出的各个补丁包,均可对其执行上述的测试验证过程,直至确定出能够用于进行缺陷修复的有效补丁包或者对所搜索出的各个补丁包均测试完毕时为止。
在对基于关键缺陷信息所搜索出的各个补丁包中的至少部分补丁包进行上述的测试验证之后,可基于所验证的每个补丁包的验证结果给出相应的反馈信息,该反馈信息至少能够用于表明哪些补丁包为能够用于进行缺陷修复的有效补丁包。
步骤304、根据所述反馈结果,确定用于进行缺陷纠正的目标补丁包。
如前文所述,所述反馈信息至少能够用于表明哪些补丁包为能够用于进行缺陷修复的有效补丁包,从而,可根据所述反馈结果,确定出最终用于进行缺陷纠正的目标补丁包。
其中,若所述反馈结果表明仅存在一个补丁包为有效补丁包,则可直接将该补丁包确定为用于进行缺陷纠正的目标补丁包;否则,若所述反馈结果表明存在多个有效补丁包,则可由技术人员从多个有效补丁包中任意或择优选择其中之一作为用于进行缺陷修复的补丁包。
需要说明的是,实际应用中,可能存在未从修复信息集合中搜索出与所述关键缺陷信息相匹配的修复信息的情况,针对该情况,可触发人工除错/纠错流程,由人工通过执行“解决方案的研究、制定及调试”等工作,提供出一能够有效解决系统缺陷且不会导致出现其他运行问题的修复信息,如人工编制一有效的补丁包等,来进行设备系统的缺陷修复。
进一步地,针对人工处理的情况,还可以将人工所编制的如补丁包等修复信息录入所述修复信息集合中,以实现对所述修复信息集合的扩充。
本实施例通过对基于关键缺陷信息所搜索出的各个修复信息进行测试验证,可使得最终确定出能够有效解决设备系统的缺陷且不会为设备系统的运行带来其他问题的目标修复信息,充分保证了对系统缺陷进行修复的有效性。
实施例四
本实施例将以设备系统的缺陷为固件缺陷,用于纠正缺陷的修复信息为补丁包为例,对通过运行目标修复信息来实现在设备系统运行中进行缺陷纠正(步骤103)的处理过程进行详述。
现有技术中,当在服务器、用户终端等设备的系统上发现固件缺陷时,在由报告者收集问题信息的基础上,通常需要由技术人员通过调试、修复问题并验证、发布新的固件进而替换原有存在缺陷的固件,来实现对固件缺陷的解决。然而,技术人员进行正式固件验证和发布的过程所对应的流程复杂、耗时较长,无法在短时间内解决固件的问题,从而导致固件缺陷的修复效率较低。
基于上述问题,本申请提出了一对设备的固件缺陷进行热修复的技术思路,如图6所示,本实施例具体可以通过以下的处理过程,来实现对设备系统的固件缺陷进行热修复:
步骤601、将缺陷固件的加签固件代码加载到设备内存中,所述加签固件代码包括所述固件的固件代码以及处于固件代码中相应位置的第一调试签名。
所述第一调试签名为:预先对固件的固件代码进行调试时在固件的缺陷代码位置处所作的用于标识缺陷代码的标签。
所述第一调试签名具体通过在固件的缺陷代码的首、尾处设置一标签对来实现对固件的缺陷代码进行标记。
如图7所示,其中位于第2行代码首、尾处的一对“!!!!”即为一个调试签名,该调试签名用于对图7所示的固件代码的第2行代码进行标记,基于该调试签名,可识别出图7中固件代码的第2行代码存在缺陷;相类似地,图7中位于第13-14行首尾处的一对“!!!!”为另一个调试签名,基于该另一个调试签名,可识别出图7中固件代码的第13-14行的代码存在缺陷。
图7所示的同时包括固件自身代码及调试签名的整体代码即构成该固件的加签固件代码,固件的加签固件代码可预先通过对固件代码进行调试生成。
当需要对固件缺陷进行修复时,可在设备的开机自检阶段,将缺陷固件的加签固件代码加载到设备内存中,以使得在设备内存中对固件缺陷进行热修复。
步骤602、运行所述加签固件代码。
在将缺陷固件的加签固件代码加载到设备内存中后,可运行设备内存中所加载的所述加签固件代码,以图7所示的加签固件代码为例,在将其加载至设备内存中后,可逐行运行所述加签固件代码中的各行代码。
步骤603、在运行至加签固件代码中的所述第一调试签名时,基于预先建立的调试签名、补丁包标识及存储路径间的对应关系,确定所述第一调试签名所对应的第一存储路径及第一补丁包标识。
在运行至加签固件代码中的第一调试签名时,如运行至图7中第2行首部的“!!!!”时,基于调试签名的用于标记缺陷代码的属性,可以获知当前所运行到的代码位置处存在缺陷代码,此种情况下,本申请通过调用并运行当前的缺陷代码所对应的补丁包来实现对该缺陷代码的热修复。
具体地,在运行至加签固件代码中的第一调试签名时,可基于预先建立的调试签名、补丁包标识及存储路径间的对应关系,确定所述第一调试签名所对应的第一存储路径及第一补丁包标识,以此使得为所需补丁包的获取提供依据。
步骤604、从所述第一存储路径所对应的存储位置获取所述第一补丁包标识所对应的第一补丁包。
所述存储位置可以是但不限于设备的BMC中的相应位置,本申请预先在设备的BMC等组件中存放能用于对固件缺陷进行修复的至少一个补丁包,以支持设备系统进行固件缺陷的热修复时对补丁包的调用。
从而,在运行至设备内存的加签固件代码中的第一调试签名,并确定出所述第一调试签名所对应的第一存储路径及第一补丁包标识的情况下,可基于所述第一存储路径定位热修复所需的补丁包的存储位置,进而可从所定位的存储位置调用对应于所述第一补丁包标识的第一补丁包,以利用该第一补丁包对系统的固件缺陷进行热修复。
步骤605、利用所述第一补丁包对设备内存中所述第一调试签名所标识的缺陷代码进行修复,以纠正所述缺陷代码所对应的固件缺陷。
在调用所述第一补丁包后,可同样将该第一补丁包的代码加载到设备内存中,并具体利用该第一补丁包的代码覆盖设备内存中所述第一调试签名所标识的缺陷代码。仍以图7中第2行的缺陷代码为例,可利用所调用的第一补丁包的代码覆盖设备内存中所述第2行的缺陷代码,进而运行覆盖了缺陷代码的该补丁包代码,从而在运行固件代码的过程中避免了对固件的缺陷代码的执行,并替换为执行补丁包中的代码,以此实现了对固件缺陷的热修复。
需要说明的是,由于固件自身带有签名,其代码在完成烧写后就不能随意被更改,这也正是现有技术中针对固件缺陷普遍采用发布新固件形式予以解决的原因所在,针对这一情况,本申请通过在预先调试固件代码时利用调试签名对其缺陷代码进行标记、生成携带有调试签名的加签固件代码,并在运行固件时直接在内存中加载该加签固件代码(而非原始未加签的固件代码),进而当运行至加签固件代码中的调试标签通过调用并运行调试签名所对应的补丁包来绕开对缺陷代码的执行,以此实现了对固件缺陷的热修复,有效克服了因固件自身带有签名而导致的热修复难度高的问题。
实施例五
参考图8,是本申请提供的一种处理方法实施例四的流程图,本实施例中,所述处理方法在所述步骤601之前,还包括以下步骤:
步骤801、获取用于对固件缺陷进行纠正的第一补丁包,并将所述第一补丁包与所述固件缺陷所对应的第一调试签名关联存储至设备的预定位置。
所述预定位置可以是但不限于设备的BMC中的相应位置。当设备出现固件缺陷,并确定出能用于对该固件缺陷进行纠正的第一补丁包后,可将该第一补丁包与所述固件缺陷对应的第一调试签名关联存储至设备的预定位置,如关联存储至设备的BMC中等,以支持后续对固件缺陷进行热修复时对该第一补丁包的调用。
步骤802、在设备启动时的开机自检阶段,扫描所述预定位置存储的至少一个补丁包的补丁包标识,及每个补丁包所对应的调试签名。
在设备启动后,在其开机自检阶段,可扫描所述预定位置存储的至少一个补丁包的补丁包标识,及每个补丁包所对应的调试签名,具体地,如图9所示,可以由设备的UEFI在设备启动后的PEI阶段(初始化阶段),通过BMC 的接口(如Redfish或REST等接口)对BMC中所存储的至少一个补丁包的补丁包标识以及每个补丁包所对应的调试签名进行扫描。
步骤803、建立所扫描的补丁包的补丁包标识、所对应的调试签名及所述预定位置所对应的存储路径间的对应关系,并触发对固件缺陷的纠正处理过程,以使得在设备的开机自检阶段完成对固件缺陷的纠正;其中,所述对应关系至少包括所述第一补丁包的补丁包标识、所述第一调试签名及所述预定位置所对应的存储路径间的对应关系。
在扫描的基础上,可根据扫描结果,建立所扫描到的补丁包标识与相对应的调试签名以及所述预定位置的存储路径间的对应关系,并存储该对应关系信息,如将其存储至UEFI的一预定位置等,以使得为后续基于调试签名的补丁包调用过程提供支持。
该建立上述对应关系信息并存储的过程,同样可由UEFI在设备开机自检的PEI阶段完成。
在此基础上,可进一步触发对固件缺陷的热修复处理过程,以使得在设备的开机自检阶段完成对固件缺陷的纠正。如图9所示,UEFI运行加签固件代码并调用补丁包对加签固件代码中的缺陷代码进行热修复的处理过程具体可在设备启动自检过程中的DXE(驱动程序执行环境)阶段至BDS(启动设备选择)阶段完成。
本实施例通过将用于对固件缺陷进行纠正的第一补丁包与固件缺陷对应的第一调试签名关联存储至设备的预定位置,为后续进行固件缺陷热修复时对所需补丁包的调用提供了支持。
实施例六
对应于上述的处理方法,本申请还提供了一种处理装置,该装置可应用于但不限于对用户终端(如台式机、一体机、笔记本等)或服务器等设备进行系统缺陷修复,如图10所示,所述处理装置可以包括:
存储器1001,用于至少存储一组指令集;
处理器1002,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:获得设备系统运行的缺陷数据;在预先构建的修复信息集合中确定出对应于所述缺陷数据的目标修复信息;运行所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷。
所述缺陷数据可以包括但不限于:在设备系统的日志中所包括的能够反映系统运行的缺陷的数据,和/或在系统相应组件的调试信息(如调试代码) 中所包括的能够反映系统运行的缺陷的数据。
本申请将主要以设备系统的缺陷为固件缺陷为例,对本申请的方法进行阐述。在设备系统的缺陷为固件缺陷的情况下,所述缺陷数据则相应地可以包括但不限于:在设备系统的日志中所包括的能够反映系统的固件缺陷的数据,和/或在系统固件的调试信息中所包括的能够反映固件缺陷的数据。如设备系统的日志和/或固件的调试代码中所包括的关于固件的相应警告和/或运行错误的数据信息等,更进一步地,关于固件的相应警告和/或运行错误的数据信息可以包括但不限于:表示硬盘容量/内存大小识别错误的信息、表示硬盘/内存数据无法读写的信息,或者表示外接网卡无法初始化的信息等等。
鉴于此,当设备系统在运行过程中出现问题时,可通过调出设备系统的日志并从中提取诸如运行警告和/或运行错误等的数据信息,来获得设备系统运行的缺陷数据;或者还可以调出固件等相应组件的调试信息并从中提取诸如运行警告和/或运行错误等的数据信息,来获得设备系统运行的缺陷数据;或者还可以调出系统的日志以及组件的调试信息这两类信息并从中进行缺陷数据的提取,以此使得为设备系统的缺陷分析及修复提供数据基础。
所述固件可以是但不限于服务器或用户终端等设备的UEFI(Unified ExtensibleFirmware Interface,统一的可扩展固件接口)固件。
所述修复信息集合包括至少一个修复信息,每个修复信息能够用于对相应类型的系统缺陷进行纠正,例如修复信息集合中的第一修复信息能够对硬盘容量/内存大小识别错误的这一固件缺陷进行纠正,第二修复信息能够对硬盘/内存数据无法读写的这一固件缺陷进行纠正,第三修复信息能够对外接网卡无法初始化的这一固件缺陷进行纠正等等。
具体实施中,可通过预先获取至少一个用于纠正设备系统运行的缺陷的修复信息,并归集所获取的至少一个修复信息,来形成所述修复信息集合,以使得为设备系统的缺陷修复提供备选的修复信息。其中,所归集的各个修复信息如上文所述,能够对各种类型系统缺陷中的相应类型缺陷进行纠正。
对于某一个公司来说,可将其不同产品/不同部门的用于解决缺陷的各个修复信息归集到所述修复信息集合中,以此使得将各产品/部门间的除错、纠错机制相互打通或进行关联。
在此基础上,在设备系统出现运行的缺陷的情况下,可基于设备系统运行的缺陷数据,直接从所述修复信息集合中确定出相匹配的目标修复信息来对该缺陷数据对应的缺陷进行纠正。例如,若设备系统的缺陷为对硬盘容量/ 内存大小识别错误的这一固件缺陷,则可基于该固件缺陷的缺陷数据从所述修复信息集合中确定出所述第一修复信息作为目标修复信息;若设备系统的缺陷为无法初始化外接网卡的这一固件缺陷,则相应地可基于该固件缺陷的缺陷数据从所述修复信息集合中确定出所述第三修复信息作为目标修复信息。
在从修复信息集合中确定出对应于所述缺陷数据的目标修复信息后,可利用所确定出的该目标修复信息对所述缺陷数据对应的系统缺陷进行纠正。
具体地,本申请通过运行所述目标修复信息,来使得在设备系统运行过程中对所述缺陷数据对应的缺陷进行纠正。以设备系统的缺陷为上述任意一类型的固件缺陷为例,则本申请通过运行所述目标修复信息,实现在设备系统运行过程中对所述固件缺陷进行纠正,该在设备系统运行过程中对固件缺陷进行纠正的处理过程本质上属于对固件缺陷的热修复,本申请将在后续的实施例中进一步对该热修复的处理过程进行详述。
由以上方案可知,本实施例提供的处理装置,预先构建了一修复信息集合,在设备系统出现缺陷的情况下,通过从该修复信息集合中确定出对应于系统缺陷数据的目标修复信息来进行缺陷的修复。应用本申请方案,可通过将不同产品/部门的用于解决缺陷的修复信息归集到所述修复信息集合中,来实现将各产品/部门间的除错、纠错处理机制相互打通或进行关联,从而除错人员不必再独立地执行解决方案的研究、制定及调试,而是可以直接基于修复信息集合中对应于缺陷数据的目标修复信息进行缺陷修复,为除错人员修复系统缺陷提供了便利,降低了除错人员的工作量,并提升了修复效率,且本申请通过运行目标修复信息使得在设备系统运行中进行缺陷纠正,实现了对系统缺陷的热修复,进一步提升了修复效率。
实施例七
本实施例继续对上述处理器1002的功能进行进一步详述,具体地,所述处理器1002可通过以下的处理过程实现对系统运行的缺陷进行纠正:
预先获取至少一个用于纠正设备系统运行的缺陷的修复信息,并归集所获取的至少一个修复信息,以形成所述修复信息集合;
获得设备系统运行的缺陷数据;
提取所述缺陷数据所对应的关键缺陷信息;
从所述修复信息集合中搜索出对应于所述关键缺陷信息的目标修复信息;
运行所述对应于所述关键缺陷信息的修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷。
所述修复信息集合中的每个修复信息能够用于对相应类型的系统缺陷进行纠正,例如修复信息集合中的第一修复信息能够对硬盘容量/内存大小识别错误的这一固件缺陷进行纠正,第二修复信息能够对硬盘/内存数据无法读写的这一固件缺陷进行纠正,第三修复信息能够对外接网卡无法初始化的这一固件缺陷进行纠正等等。
对于某一个公司来说,可将其不同产品/不同部门的用于解决缺陷的各个修复信息归集到所述修复信息集合中,以此使得将各产品/部门间的除错、纠错机制相互打通或进行关联。
具体地,在实施本申请方案时,可以但不限于将获取的各个用于纠正系统缺陷的修复信息归集到SVN(Subversion,开放源代码的版本控制系统)或 Git(分布式版本控制系统)中,以形成一个基于SVN或Git的修复信息库,该修复信息库中所归集的各个修复信息构成所述修复信息集合。
针对设备系统的缺陷为固件缺陷的情况,所述修复信息集合中包括的各个修复信息则可以是用于对相应固件缺陷进行修复/纠正的一系列补丁包。
如上文所述,所述缺陷数据可以包括但不限于:在设备系统的日志中所包括的能够反映系统运行的缺陷的数据,和/或在系统相应组件的调试信息(如调试代码)中所包括的能够反映系统运行的缺陷的数据。
在设备系统的缺陷为固件缺陷的情况下,所述缺陷数据则相应地可以包括但不限于:在设备系统的日志中所包括的能够反映系统的固件缺陷的数据,和/或在系统固件的调试信息中所包括的能够反映固件缺陷的数据。如设备系统的日志和/或固件的调试代码中所包括的关于固件的相应警告和/或运行错误的数据信息等,更进一步地,关于固件的相应警告和/或运行错误的数据信息可以包括但不限于:表示硬盘容量/内存大小识别错误的信息、表示硬盘/ 内存数据无法读写的信息,或者表示外接网卡无法初始化的信息等等。
鉴于此,在设备系统出现运行的缺陷的情况下,可通过调出设备系统的日志并从中提取诸如运行警告和/或运行错误等的数据信息,来获得设备系统运行的缺陷数据;或者还可以调出固件等相应组件的调试信息并从中提取诸如运行警告和/或运行错误等的数据信息,来获得设备系统运行的缺陷数据;或者还可以调出系统的日志以及组件的调试信息这两类信息并从中进行缺陷数据的提取,以此使得为设备系统的缺陷分析及修复提供数据基础。
所述关键缺陷信息,可以是基于所述缺陷数据所提取或分析出的能够至少部分反映设备系统的缺陷的关键字/词或者短语、短句,或者所述关键字/ 词、短语、短句的任意组合。
举例来说,假设所述缺陷数据为从设备系统的日志和/或固件调试信息中所提取出的表征无法读写硬盘/内存数据的固件缺陷数据,则可基于该固件缺陷数据提取或分析出“硬盘”、“内存”、“读写”、“无法读写”、“读写失败”“硬盘读写失败”、“内存读写失败”这些信息中的一种或多种作为该固件缺陷数据的关键缺陷信息。
在获得设备系统的缺陷数据所对应的关键缺陷信息之后,可基于所获得的关键缺陷信息对所述修复信息集合进行搜索,从而得到与所述关键缺陷信息相对应的目标修复信息。
以设备系统的缺陷为固件缺陷、修复信息集合中的修复信息为补丁包为例,则可基于固件缺陷的关键缺陷信息,搜索出与其相对应的补丁包,更进一步地,例如搜索出与关键缺陷信息“硬盘/内存读写失败”相对应的补丁包等。
目前,当设备系统的运行出现缺陷时,如出现硬盘容量/内存大小识别错误、硬盘/内存数据无法读写或者外接网卡无法初始化等的固件缺陷时,一般会利用一预定的缺陷跟踪系统对其进行缺陷跟踪、调试等处理。所述缺陷跟踪系统例如可以是但不限于Bugzilla。
鉴于此,在实施本申请方案时,优选地,可预先开发一接口以实现将所述缺陷跟踪系统如Bugzilla等与所述基于SVN或Git的修复信息库进行对接,在此基础上,将所述Bugzilla等缺陷跟踪系统作为SVN或Git的应用前端,在设备系统的运行出现缺陷的情况下,可将设备系统的缺陷数据的关键缺陷信息输入/提交至所述Bugzilla等缺陷跟踪系统,进而由该缺陷跟踪系统将所获得的关键缺陷信息通过接口传输至后端的SVN或Git,SVN或Git在获得关键缺陷信息后,基于所获得的关键缺陷信息对其所对应的修复信息库进行搜素,最终得到与所述关键缺陷信息相对应的修复信息,并将其反馈至前端的缺陷跟踪系统以供技术人员查看。
实际应用中,可利用一闲置平台来实现基于所述Bugzilla、SVN/Git的修复信息录入/归集及搜索功能。
在获得对应所述关键缺陷信息的目标修复信息后,可利用所获得的所述目标修复信息对设备系统的缺陷进行纠正。
本申请通过运行所述目标修复信息,来使得在设备系统运行过程中对所述缺陷数据对应的缺陷进行纠正,具体地,例如通过运行所述关键缺陷信息“硬盘/内存读写失败”相对应的补丁包,使得在设备系统运行过程中对设备系统的“无法读写硬盘/内存数据”这一固件缺陷进行修复等,该在设备系统运行过程中对固件缺陷进行纠正的处理过程本质上属于对固件缺陷的热修复。
应用本实施例方案,可通过将不同产品/部门的用于解决缺陷的修复信息归集到修复信息集合中,实现将各产品/部门间的除错、纠错处理机制相互打通或进行关联,从而除错人员不必再独立地执行解决方案的研究、制定及调试,而是可以直接基于修复信息集合中对应于缺陷数据的目标修复信息进行缺陷修复,为除错人员修复系统缺陷提供了便利,降低了除错人员的工作量,并提升了修复效率,且本申请通过运行目标修复信息使得在设备系统运行中纠正缺陷,实现了对系统缺陷的热修复,进一步提升了修复效率。
实施例八
在前述实施例中,当基于缺陷数据所对应的关键缺陷信息对修复信息集合进行搜索时,往往能够搜索出与所述关键缺陷信息相匹配的多于一个的修复信息,例如,在利用“硬盘/内存读写失败”(或“硬盘”、“内存”、“读写失败”等的组合)这一关键缺陷信息对所述基于SVN或Git的修复信息库进行搜索时,可能会出现反馈结果中包括多个补丁包的情况。
实际应用中,可能会因固件版本、不同供应商的代码差异,运行环境(如运行环境不符导致补丁包编译出现问题),与设备系统中其他组件的对接等各种原因,而使得基于关键缺陷信息所获得的各个修复信息中的某个/些修复信息不能有效解决设备系统的缺陷,即,在基于关键缺陷信息所获得的各个修复信息中可能仅有部分修复信息能够有效解决设备系统的缺陷。
针对该情况,本实施例中,当基于关键缺陷信息从修复信息集合中搜索出一个或多个修复信息时,会首先对各个修复信息进行测试,以验证各个修复信息是否为能够解决设备系统的缺陷且不会为设备系统带来其他运行问题的有效修复信息,以此确定出最终的用于对缺陷进行纠正的目标修复信息。
具体地,本实施例中,所述处理器1002可通过以下的处理过程实现对各个修复信息的验证以及验证基础上的目标修复信息的确定:
运行所述多个修复信息中的各个修复信息;
捕获运行所述各个修复信息时设备系统分别产生的运行状态信息;
基于所述运行状态信息,确定对应于所述多个修复信息的反馈结果;
根据所述反馈结果,确定用于进行缺陷纠正的目标补丁包。
以设备系统的缺陷为固件缺陷,修复信息为用于对固件缺陷进行修复的补丁包为例,对于所搜索出的与所述关键缺陷信息相匹配的至少部分补丁包,可向固件代码中合入补丁包代码,例如具体将固件中缺陷代码除外的其他部分与补丁包代码合并、编译,进而将编译结果烧写入固件载体中,在此基础上,可通过运行烧写所得的合并有补丁代码的固件代码,来实现对补丁包的运行测试。
其中,可同样采用一闲置设备来实现对补丁包的运行测试,在采用一闲置设备实现该过程的情况下,除了需要将烧写所得的合并有补丁代码的固件代码加载在该闲置设备中,还需要将存在固件缺陷的设备系统中的相关运行环境信息加载到该闲置设备中,示例性地,例如,可将图4所示的相关运行环境文件拷贝到闲置设备的CPU中,以此使得还原存在缺陷的系统的运行环境,并基于存在缺陷的系统的运行环境对合并有补丁代码的固件代码进行运行测试。
除此之外,在本申请另一实施例中,还可以基于本申请所提供的热修复处理方式,来实现对修复信息的运行,该热修复处理方式所对应的处理过程将在后续的实施例中进行详述,具体可参阅后续实施例的描述。
之后,可通过检测运行该补丁包过程中所对应的设备运行状态信息,来验证该补丁包是否为能够解决设备系统的缺陷且不会为设备系统带来其他运行问题的有效补丁包。
其中,可以但不限于捕获运行补丁包过程中设备系统所对应的如下运行状态信息中的任意一种或多种:SEL信息、SOL信息、FFDC信息、BMC日志信息、BIOS的日志信息,FRU信息、ITP的抓取信息,MCA信息、CPU信息、 IIO信息、PCIE信息、PCH信息,memory map信息。
参考图5,示出了所捕获的运行状态信息文件的部分截图信息。
在捕获到运行补丁包时设备系统所对应的上述运行状态信息后,可基于该运行状态信息确定设备系统的固件缺陷是否成功修复以及在修复固件缺陷的同时所运行的补丁包是否为设备系统的运行带来了其他运行问题,如是否导致系统的BMC运行异常、BIOS运行异常、CPU运行异常或内存映射异常等等。
具体地,可利用预先编写的脚本程序对所捕获的运行状态信息进行分析,如捞取其中的关键点信息,并对其进行核验等,来确定所测试的补丁包是否为有效补丁包。所述关键点信息为运行状态信息中能够反映系统在相应方面 (如BMC、CPU、硬盘、内存等)是否异常的信息。
如果基于所捕获的运行状态信息,获知通过运行该补丁包成功修复了设备系统的固件缺陷(如修复了无法初始化外接网卡或者硬盘/内存数据读取失败的固件缺陷等),且未导致设备系统出现其他的运行问题,则可确定出该补丁包为一可用的有效补丁包。
反之,若该补丁包未成功修复设备系统的固件缺陷,和/或导致设备系统出现其他的运行问题,则可确定出该补丁包为一不可用的非有效补丁包。
针对基于关键缺陷信息所搜索出的各个补丁包,均可对其执行上述的测试验证过程,直至确定出能够用于进行缺陷修复的有效补丁包或者对所搜索出的各个补丁包均测试完毕时为止。
在对基于关键缺陷信息所搜索出的各个补丁包中的至少部分补丁包进行上述的测试验证之后,可基于所验证的每个补丁包的验证结果给出相应的反馈信息,该反馈信息至少能够用于表明哪些补丁包为能够用于进行缺陷修复的有效补丁包。
如前文所述,所述反馈信息至少能够用于表明哪些补丁包为能够用于进行缺陷修复的有效补丁包,从而,可根据所述反馈结果,确定出最终用于进行缺陷纠正的目标补丁包。
其中,若所述反馈结果表明仅存在一个补丁包为有效补丁包,则可直接将该补丁包确定为用于进行缺陷纠正的目标补丁包;否则,若所述反馈结果表明存在多个有效补丁包,则可由技术人员从多个有效补丁包中任意或择优选择其中之一作为用于进行缺陷修复的补丁包。
需要说明的是,实际应用中,可能存在未从修复信息集合中搜索出与所述关键缺陷信息相匹配的修复信息的情况,针对该情况,可触发人工除错/纠错流程,由人工通过执行“解决方案的研究、制定及调试”等工作,提供出一能够有效解决系统缺陷且不会导致出现其他运行问题的修复信息,如人工编制一有效的补丁包等,来进行设备系统的缺陷修复。
进一步地,针对人工处理的情况,还可以将人工所编制的如补丁包等修复信息录入所述修复信息集合中,以实现对所述修复信息集合的扩充。
本实施例通过对基于关键缺陷信息所搜索出的各个修复信息进行测试验证,可使得最终确定出能够有效解决设备系统的缺陷且不会为设备系统的运行带来其他问题的目标修复信息,充分保证了对系统缺陷进行修复的有效性。
实施例九
本实施例将以设备系统的缺陷为固件缺陷,用于纠正缺陷的修复信息为补丁包为例,对处理器1002通过运行目标修复信息来实现在设备系统运行中进行缺陷纠正的处理过程进行详述。
现有技术中,当在服务器、用户终端等设备的系统上发现固件缺陷时,在由报告者收集问题信息的基础上,通常需要由技术人员通过调试、修复问题并验证、发布新的固件进而替换原有存在缺陷的固件,来实现对固件缺陷的解决。然而,技术人员进行正式固件验证和发布的过程所对应的流程复杂、耗时较长,无法在短时间内解决固件的问题,从而导致固件缺陷的修复效率较低。
基于上述问题,本申请提出了一对设备的固件缺陷进行热修复的技术思路,本实施例中,处理器1002具体可以通过以下的处理过程,来实现对设备系统的固件缺陷进行热修复:
将缺陷固件的加签固件代码加载到设备内存中,所述加签固件代码包括所述固件的固件代码以及处于固件代码中相应位置的第一调试签名;
运行所述加签固件代码;
在运行至加签固件代码中的所述第一调试签名时,基于预先建立的调试签名、补丁包标识及存储路径间的对应关系,确定所述第一调试签名所对应的第一存储路径及第一补丁包标识;
从所述第一存储路径所对应的存储位置获取所述第一补丁包标识所对应的第一补丁包;
利用所述第一补丁包对设备内存中所述第一调试签名所标识的缺陷代码进行修复,以纠正所述缺陷代码所对应的固件缺陷。
所述第一调试签名为:预先对固件的固件代码进行调试时在固件的缺陷代码位置处所作的用于标识缺陷代码的标签。
所述第一调试签名具体通过在固件的缺陷代码的首、尾处设置一标签对来实现对固件的缺陷代码进行标记。
如图7所示,其中位于第2行代码首、尾处的一对“!!!!”即为一个调试签名,该调试签名用于对图7所示的固件代码的第2行代码进行标记,基于该调试签名,可识别出图7中固件代码的第2行代码存在缺陷;相类似地,图7中位于第13-14行首尾处的一对“!!!!”为另一个调试签名,基于该另一个调试签名,可识别出图7中固件代码的第13-14行的代码存在缺陷。
图7所示的同时包括固件自身代码及调试签名的整体代码即构成该固件的加签固件代码,固件的加签固件代码可预先通过对固件代码进行调试生成。
当需要对固件缺陷进行修复时,可在设备的开机自检阶段,将缺陷固件的加签固件代码加载到设备内存中,以使得在设备内存中对固件缺陷进行热修复。
在将缺陷固件的加签固件代码加载到设备内存中后,可运行设备内存中所加载的所述加签固件代码,以图7所示的加签固件代码为例,在将其加载至设备内存中后,可逐行运行所述加签固件代码中的各行代码。
在运行至加签固件代码中的第一调试签名时,如运行至图7中第2行首部的“!!!!”时,基于调试签名的用于标记缺陷代码的属性,可以获知当前所运行到的代码位置处存在缺陷代码,此种情况下,本申请通过调用并运行当前的缺陷代码所对应的补丁包来实现对该缺陷代码的热修复。
具体地,在运行至加签固件代码中的第一调试签名时,可基于预先建立的调试签名、补丁包标识及存储路径间的对应关系,确定所述第一调试签名所对应的第一存储路径及第一补丁包标识,以此使得为所需补丁包的获取提供依据。
所述存储位置可以是但不限于设备的BMC中的相应位置,本申请预先在设备的BMC等组件中存放能用于对固件缺陷进行修复的至少一个补丁包,以支持设备系统进行固件缺陷的热修复时对补丁包的调用。
从而,在运行至设备内存的加签固件代码中的第一调试签名,并确定出所述第一调试签名所对应的第一存储路径及第一补丁包标识的情况下,可基于所述第一存储路径定位热修复所需的补丁包的存储位置,进而可从所定位的存储位置调用对应于所述第一补丁包标识的第一补丁包,以利用该第一补丁包对系统的固件缺陷进行热修复。
在调用所述第一补丁包后,可同样将该第一补丁包的代码加载到设备内存中,并具体利用该第一补丁包的代码覆盖设备内存中所述第一调试签名所标识的缺陷代码。仍以图7中第2行的缺陷代码为例,可利用所调用的第一补丁包的代码覆盖设备内存中所述第2行的缺陷代码,进而运行覆盖了缺陷代码的该补丁包代码,从而在运行固件代码的过程中避免了对固件的缺陷代码的执行,并替换为执行补丁包中的代码,以此实现了对固件缺陷的热修复。
需要说明的是,由于固件自身带有签名,其代码在完成烧写后就不能随意被更改,这也正是现有技术中针对固件缺陷普遍采用发布新固件形式予以解决的原因所在,针对这一情况,本申请通过在预先调试固件代码时利用调试签名对其缺陷代码进行标记、生成携带有调试签名的加签固件代码,并在运行固件时直接在内存中加载该加签固件代码(而非原始未加签的固件代码),进而当运行至加签固件代码中的调试标签通过调用并运行调试签名所对应的补丁包来绕开对缺陷代码的执行,以此实现了对固件缺陷的热修复,有效克服了因固件自身带有签名而导致的热修复难度高的问题。
实施例十
本实施例中,所述处理器1002在执行对固件缺陷的热修复处理之前,还可以执行以下处理:
获取用于对固件缺陷进行纠正的第一补丁包,并将所述第一补丁包与所述固件缺陷所对应的第一调试签名关联存储至设备的预定位置;
在设备启动时的开机自检阶段,扫描所述预定位置存储的至少一个补丁包的补丁包标识,及每个补丁包所对应的调试签名;
建立所扫描的补丁包的补丁包标识、所对应的调试签名及所述预定位置所对应的存储路径间的对应关系,并触发对固件缺陷的纠正处理过程,以使得在设备的开机自检阶段完成对固件缺陷的纠正;其中,所述对应关系至少包括所述第一补丁包的补丁包标识、所述第一调试签名及所述预定位置所对应的存储路径间的对应关系。
所述预定位置可以是但不限于设备的BMC中的相应位置。当设备出现固件缺陷,并确定出能用于对该固件缺陷进行纠正的第一补丁包后,可将该第一补丁包与所述固件缺陷对应的第一调试签名关联存储至设备的预定位置,如关联存储至设备的BMC中等,以支持后续对固件缺陷进行热修复时对该第一补丁包的调用。
在设备启动后,在其开机自检阶段,可扫描所述预定位置存储的至少一个补丁包的补丁包标识,及每个补丁包所对应的调试签名,具体地,如图9所示,可以由设备的UEFI在设备启动后的PEI阶段(初始化阶段),通过BMC 的接口(如Redfish或REST等接口)对BMC中所存储的至少一个补丁包的补丁包标识以及每个补丁包所对应的调试签名进行扫描。
在扫描的基础上,可根据扫描结果,建立所扫描到的补丁包标识与相对应的调试签名以及所述预定位置的存储路径间的对应关系,并存储该对应关系信息,如将其存储至UEFI的一预定位置等,以使得为后续基于调试签名的补丁包调用过程提供支持。
该建立上述对应关系信息并存储的过程,同样可由UEFI在设备开机自检的PEI阶段完成。
在此基础上,可进一步触发对固件缺陷的热修复处理过程,以使得在设备的开机自检阶段完成对固件缺陷的纠正。如图9所示,UEFI运行加签固件代码并调用补丁包对加签固件代码中的缺陷代码进行热修复的处理过程具体可在设备启动自检过程中的DXE(驱动程序执行环境)阶段至BDS(启动设备选择)阶段完成。
本实施例通过将用于对固件缺陷进行纠正的第一补丁包与固件缺陷对应的第一调试签名关联存储至设备的预定位置,为后续进行固件缺陷热修复时对所需补丁包的调用提供了支持。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/ 或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种代码缺陷的修复处理方法,包括:
获得设备系统运行的缺陷数据;
在预先构建的修复信息集合中确定出对应于所述缺陷数据的目标修复信息;
运行所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷;
所述修复信息集合中包括的修复信息为补丁包;所述缺陷数据为设备系统中固件的缺陷代码所对应的缺陷数据;
所述运行所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷,包括:
至少将固件的固件代码加载至内存并运行所述固件的固件代码;在运行至所述固件代码中的缺陷代码时,调取并运行相对应的补丁包以基于运行所述相对应的补丁包对所述缺陷代码进行热修复。
2.根据权利要求1所述的方法,所述目标修复信息是基于经过测试多个修复信息得到的反馈结果所确定出的有效修复信息。
3.根据权利要求2所述的方法,测试多个修复信息得到反馈结果,包括:
运行所述多个修复信息中的各个修复信息;
捕获运行所述多个修复信息中的各个修复信息时设备系统分别产生的运行状态信息;
基于所述运行状态信息,确定对应于所述多个修复信息的反馈结果。
4.根据权利要求1所述的方法,在所述获得设备系统运行的缺陷数据之前,还包括:
预先获取至少一个用于纠正设备系统运行的缺陷的修复信息,并归集所获取的至少一个修复信息,以形成所述修复信息集合。
5.根据权利要求1-4任一项所述的方法,所述修复信息集合中包括的修复信息为补丁包;
所述在预先构建的修复信息集合中确定出对应于所述缺陷数据的目标修复信息,包括:
提取所述缺陷数据所对应的关键缺陷信息;
从所述修复信息集合中搜索出对应于所述关键缺陷信息的补丁包。
6.根据权利要求1-4任一项所述的方法,所述至少将固件的固件代码加载至内存并运行所述固件的固件代码;在运行至所述固件代码中的缺陷代码时,调取并运行相对应的补丁包以基于运行所述相对应的补丁包对所述缺陷代码进行热修复,包括:
将所述固件的加签固件代码加载到设备内存中,所述加签固件代码包括所述固件的固件代码以及处于固件代码中相应缺陷代码位置的第一调试签名;
运行所述加签固件代码;
在运行至加签固件代码中的所述第一调试签名时,基于预先建立的调试签名、补丁包标识及存储路径间的对应关系,确定所述第一调试签名所对应的第一存储路径及第一补丁包标识;
从所述第一存储路径所对应的存储位置获取所述第一补丁包标识所对应的第一补丁包;
利用所述第一补丁包对设备内存中所述第一调试签名所标识的缺陷代码进行修复,以纠正所述缺陷代码所对应的固件缺陷。
7.根据权利要求6所述的方法,所述利用所述第一补丁包对设备内存中所述第一调试签名所标识的缺陷代码进行修复,包括:
利用所述第一补丁包的补丁包代码覆盖设备内存中所述第一调试签名所标识的缺陷代码;
运行设备内存中覆盖了所述缺陷代码的所述第一补丁包的补丁包代码。
8.根据权利要求6所述的方法,在所述运行所述目标 修复信息之前,所述方法还包括:
获取用于对固件缺陷进行纠正的第一补丁包,并将所述第一补丁包与所述固件缺陷所对应的第一调试签名关联存储至设备的预定位置;
在设备启动时的开机自检阶段,扫描所述预定位置存储的至少一个补丁包的补丁包标识,及每个补丁包所对应的调试签名;
建立所扫描的补丁包的补丁包标识、所对应的调试签名及所述预定位置所对应的存储路径间的对应关系,并触发对固件缺陷的纠正处理过程,以使得在设备的开机自检阶段完成对固件缺陷的纠正;其中,所述对应关系至少包括所述第一补丁包的补丁包标识、所述第一调试签名及所述预定位置所对应的存储路径间的对应关系。
9.一种代码缺陷的修复处理装置,包括:
存储器,用于至少存储一组指令集;
处理器,用于调用并执行所述存储器中的所述指令集,通过执行所述指令集进行以下操作:
获得设备系统运行的缺陷数据;
在预先构建的修复信息集合中确定出对应于所述缺陷数据的目标修复信息;
运行所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷;
所述修复信息集合中包括的修复信息为补丁包;所述缺陷数据为设备系统中固件的缺陷代码所对应的缺陷数据;
所述处理器运行确定出的所述目标修复信息,以在设备系统运行中纠正所述缺陷数据对应的缺陷,包括:
至少将固件的固件代码加载至内存并运行所述固件的固件代码;在运行至所述固件代码中的缺陷代码时,调取并运行相对应的补丁包以基于运行所述相对应的补丁包对所述缺陷代码进行热修复。
10.根据权利要求9所述的装置,所述处理器至少将固件的固件代码加载至内存并运行所述固件的固件代码;在运行至所述固件代码中的缺陷代码时,调取并运行相对应的补丁包以基于运行所述相对应的补丁包对所述缺陷代码进行热修复,具体包括:
将所述固件的加签固件代码加载到设备内存中,所述加签固件代码包括所述固件的固件代码以及处于固件代码中相应缺陷代码位置的第一调试签名;
运行所述加签固件代码;
在运行至加签固件代码中的所述第一调试签名时,基于预先建立的调试签名、补丁包标识及存储路径间的对应关系,确定所述第一调试签名所对应的第一存储路径及第一补丁包标识;
从所述第一存储路径所对应的存储位置获取所述第一补丁包标识所对应的第一补丁包;
利用所述第一补丁包对设备内存中所述第一调试签名所标识的缺陷代码进行修复,以纠正所述缺陷代码所对应的固件缺陷。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811597845.8A CN109857583B (zh) | 2018-12-26 | 2018-12-26 | 一种处理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811597845.8A CN109857583B (zh) | 2018-12-26 | 2018-12-26 | 一种处理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109857583A CN109857583A (zh) | 2019-06-07 |
CN109857583B true CN109857583B (zh) | 2021-04-13 |
Family
ID=66892375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811597845.8A Active CN109857583B (zh) | 2018-12-26 | 2018-12-26 | 一种处理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857583B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112416395A (zh) * | 2020-11-19 | 2021-02-26 | 建信金融科技有限责任公司 | 一种热修复更新方法和装置 |
CN113703824B (zh) * | 2021-08-26 | 2024-06-04 | 上海德拓信息技术股份有限公司 | 一种多项目软件质量修复方法与系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257872A (zh) * | 2013-04-15 | 2013-08-21 | 中国信息安全测评中心 | 一种计算机的嵌入式控制系统及其更新方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7836442B2 (en) * | 2007-03-15 | 2010-11-16 | Lenovo (Singapore) Pte. Ltd. | Out-of-band patch management system |
CN105373440A (zh) * | 2015-11-02 | 2016-03-02 | 努比亚技术有限公司 | 故障检测修复装置及方法 |
CN107783776B (zh) * | 2016-08-26 | 2021-10-15 | 斑马智行网络(香港)有限公司 | 固件升级包的处理方法及装置、电子设备 |
CN107239696B (zh) * | 2017-04-11 | 2019-07-19 | 中国科学院信息工程研究所 | 一种针对虚拟化超级调用函数的漏洞热修复方法 |
CN107329753B (zh) * | 2017-06-28 | 2021-07-16 | 联想(北京)有限公司 | 一种固件接口代码的调整方法及电子设备 |
-
2018
- 2018-12-26 CN CN201811597845.8A patent/CN109857583B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103257872A (zh) * | 2013-04-15 | 2013-08-21 | 中国信息安全测评中心 | 一种计算机的嵌入式控制系统及其更新方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109857583A (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281570B2 (en) | Software testing method, system, apparatus, device medium, and computer program product | |
CN110750396B (zh) | 一种服务器操作系统兼容性测试方法、装置及存储介质 | |
US10509693B2 (en) | Method for identifying a cause for a failure of a test | |
CN103186461B (zh) | 一种现场数据的保存方法和恢复方法以及相关装置 | |
KR100704629B1 (ko) | 변경된 위치의 마스터 부트 레코드의 바이러스 감염 여부를판단하고 치료하는 장치 및 방법 | |
US7293204B2 (en) | Computer peripheral connecting interface system configuration debugging method and system | |
US20080086660A1 (en) | Test data management | |
US10049031B2 (en) | Correlation of violating change sets in regression testing of computer software | |
CN107111595B (zh) | 用于检测早期引导错误的方法、设备及系统 | |
CN102346235A (zh) | 一种面向硬件设备功能的自动测试系统及方法 | |
JP7404839B2 (ja) | ソフトウェアプログラム不良位置の識別 | |
CN105320553A (zh) | 一种基于国产处理器平台更新网卡固件的方法及系统 | |
CN111949551A (zh) | 应用程序测试方法、装置、设备及存储介质 | |
CN109857583B (zh) | 一种处理方法及装置 | |
US8661414B2 (en) | Method and system for testing an order management system | |
US20080010536A1 (en) | Breakpoints with Separate Conditions | |
CN113377586B (zh) | 一种服务器自动化检测方法、装置及存储介质 | |
US20120054560A1 (en) | Verifying correctness of processor transactions | |
US7415560B2 (en) | Method of automatically monitoring computer system debugging routine | |
CN113315675A (zh) | 一种白盒交换机U-Boot自动化测试方法、系统和存储介质 | |
CN110096888B (zh) | 一种加快验证及分析smm安全隐患的方法及系统 | |
CN115756935A (zh) | 嵌入式软件系统的异常故障定位方法、装置及设备 | |
US20220188221A1 (en) | Regression testing method and regression testing apparatus | |
US11138084B2 (en) | Negative path testing in a bootloader environment | |
CN114116330A (zh) | 服务器性能测试方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |