一种处理方法和电子设备技术

技术编号:34638105 阅读:18 留言:0更新日期:2022-08-24 15:12
本申请公开一种处理方法和电子设备,该方法在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备内存对应的第一内存地址,确定驱动运行过程是否发生异常,若是,确定并存储驱动的当前运行进度在电子设备内存对应的第二内存地址,并根据第一、第二内存地址从电子设备内存获取与存储该驱动的相应驱动代码。由此可见,本申请在加载并运行外接设备驱动时,检测并响应驱动运行异常事件,通过运行异常时的相应内存地址定位,抓取运行异常时的相关驱动代码,后续可通过分析所抓取的运行异常时驱动代码进行问题点定位及问题原因分析,从而便于UEFI启动异常时快速分析与定位问题原因,并降低了问题根因分析的人工成本。人工成本。人工成本。

【技术实现步骤摘要】
一种处理方法和电子设备


[0001]本申请属于计算机
,尤其涉及一种处理方法和电子设备。

技术介绍

[0002]针对电子设备的系统加载外接设备的应用场景,在UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)启动时可能会出现死机等运行异常问题,然而,目前的方法很难定位UEFI启动时导致上述问题的原因,且分析过程需要很大的人工成本。

技术实现思路

[0003]为此,本申请公开如下技术方案:
[0004]一种处理方法,包括:
[0005]在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址;
[0006]确定电子设备对所述驱动的运行过程是否发生异常;
[0007]若是,确定并存储所述驱动的当前运行进度在电子设备的内存对应的第二内存地址;
[0008]根据所述第一内存地址和所述第二内存地址,从电子设备的内存获取并存储所述驱动的相应驱动代码,得到目标驱动代码,所述目标驱动代码用于确定所发生异常的异常原因。
[0009]可选的,所述在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址,包括:
[0010]在加载所述第一外接设备的驱动的时刻,从电子设备的预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为所述第一内存地址;
[0011]将所述第一内存地址存储至电子设备基板管理控制器上的存储部件。
[0012]可选的,所述确定电子设备对所述驱动的运行过程是否发生异常,包括:
[0013]确定在预设时长内是否完成对所述第一外接设备的驱动的运行过程;
[0014]若否,则确定所述驱动的运行过程发生异常;
[0015]若是,则确定所述驱动的运行过程未发生异常。
[0016]可选的,所述确定并存储所述驱动的当前运行进度在电子设备的内存对应的第二内存地址,包括:
[0017]在发生所述异常的时刻,从所述预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为所述第二内存地址;
[0018]将所述第二内存地址存储至电子设备基板管理控制器上的所述存储部件。
[0019]可选的,所述根据所述第一内存地址和所述第二内存地址,从电子设备的内存获取并存储所述驱动的相应驱动代码,包括:
[0020]根据所述第一内存地址和所述第二内存地址,确定目标内存区域;
[0021]获取所述第一外接设备的驱动在所述目标内存区域中的驱动代码,作为所述目标驱动代码;
[0022]将所述目标驱动代码存储至电子设备基板管理控制器上的所述存储部件。
[0023]可选的,所述根据所述第一内存地址和所述第二内存地址,确定目标内存区域,包括:
[0024]确定以所述第一内存地址为起始地址以所述第二内存地址为结束地址的内存区域,作为所述目标内存区域;
[0025]或,确定以所述第一内存地址为起始地址以在所述第二内存地址基础上进行预设偏移量的偏移后所得的地址为结束地址的内存区域,作为所述目标内存区域。
[0026]可选的,所述存储部件为第一次失败数据捕获FFDC,基于所述FFDC存储所述第一内存地址、所述第二内存地址和所述目标驱动代码中的至少部分信息。
[0027]可选的,上述方法,还包括:
[0028]在确定发生所述异常之后,向电子设备的预设处理器发送停止指令,以使所述预设处理器停止对所述第一外接设备的驱动的运行过程;
[0029]和/或,
[0030]将所述目标驱动代码输出至第二外接设备,以便所述第二外接设备将所述目标驱动代码转换为预设可读程序代码,并基于所述预设可读程序代码定位所发生异常的异常原因;
[0031]其中,所定位的异常原因包括:导致发生所述异常的外接设备的设备信息,和/或,所述目标驱动代码中导致发生所述异常的问题代码及问题类型中的至少部分信息。
[0032]可选的,电子设备的基板管理控制器通过预设接口获取相应的内存指针信息或驱动代码,和/或,通过所述预设接口向电子设备的所述预设处理器发送停止指令。
[0033]一种电子设备,包括:
[0034]存储器,用于至少存储一组计算机指令集;
[0035]控制器,用于调用并执行所述存储器中存储的所述指令集,通过执行所述指令集实现如上任一项所述的处理方法。
[0036]一种存储介质,其上存储有至少一组计算机指令集,计算机指令集被调用并执行时用于实现如上文任一项公开的处理方法。
[0037]综上,本申请公开的处理方法和电子设备,在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备内存对应的第一内存地址,确定驱动运行过程是否发生异常,若是,确定并存储驱动的当前运行进度在电子设备内存对应的第二内存地址,并根据第一、第二内存地址从电子设备内存获取与存储该驱动的相应驱动代码。由此可见,本申请在加载并运行外接设备驱动时,检测并响应驱动运行异常事件,通过运行异常时的相应内存地址定位,抓取运行异常时的相关驱动代码,后续可通过分析所抓取的运行异常时驱动代码进行问题点定位及问题原因分析,从而便于UEFI启动异常时快速分析与定位问题原因,并降低了问题根因分析的人工成本。
附图说明
[0038]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0039]图1是本申请提供的处理方法的一种流程示意图;
[0040]图2是本申请提供的从电子设备内存获取并存储目标驱动代码的流程图;
[0041]图3是本申请提供的处理方法的另一种流程示意图;
[0042]图4是本申请提供的处理方法的又一种流程示意图;
[0043]图5是本申请提供的电子设备与第二外接设备的连接示意图;
[0044]图6是本申请提供的电子设备的组成结构图。
具体实施方式
[0045]下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0046]系统BIOS(Basic Input Output Syatem,基本输入/输出系统)在启动过程中会加载外插卡等外接设备的UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)Driver,当外插卡的UEFI Driver出现运行异常情况相应发生设备本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种处理方法,包括:在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址;确定电子设备对所述驱动的运行过程是否发生异常;若是,确定并存储所述驱动的当前运行进度在电子设备的内存对应的第二内存地址;根据所述第一内存地址和所述第二内存地址,从电子设备的内存获取并存储所述驱动的相应驱动代码,得到目标驱动代码,所述目标驱动代码用于确定所发生异常的异常原因。2.根据权利要求1所述的方法,所述在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址,包括:在加载所述第一外接设备的驱动的时刻,从电子设备的预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为所述第一内存地址;将所述第一内存地址存储至电子设备基板管理控制器上的存储部件。3.根据权利要求1所述的方法,所述确定电子设备对所述驱动的运行过程是否发生异常,包括:确定在预设时长内是否完成对所述第一外接设备的驱动的运行过程;若否,则确定所述驱动的运行过程发生异常;若是,则确定所述驱动的运行过程未发生异常。4.根据权利要求2所述的方法,所述确定并存储所述驱动的当前运行进度在电子设备的内存对应的第二内存地址,包括:在发生所述异常的时刻,从所述预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为所述第二内存地址;将所述第二内存地址存储至电子设备基板管理控制器上的所述存储部件。5.根据权利要求4所述的方法,所述根据所述第一内存地址和所述第二内存地址,从电子设备的内存获取并存储所述驱动的相应驱动代码,包括:根据所述第一内存地址和所述第二内存地址,确定目标内存区域;获取所述第一外接设备的驱...

【专利技术属性】
技术研发人员:毕志文
申请(专利权)人:联想北京有限公司
类型:发明
国别省市:

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

1