CN114936108A - 一种处理方法和电子设备 - Google Patents

一种处理方法和电子设备 Download PDF

Info

Publication number
CN114936108A
CN114936108A CN202210581231.0A CN202210581231A CN114936108A CN 114936108 A CN114936108 A CN 114936108A CN 202210581231 A CN202210581231 A CN 202210581231A CN 114936108 A CN114936108 A CN 114936108A
Authority
CN
China
Prior art keywords
memory
drive
memory address
code
driver
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.)
Pending
Application number
CN202210581231.0A
Other languages
English (en)
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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing 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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202210581231.0A priority Critical patent/CN114936108A/zh
Publication of CN114936108A publication Critical patent/CN114936108A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

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

Description

一种处理方法和电子设备
技术领域
本申请属于计算机技术领域,尤其涉及一种处理方法和电子设备。
背景技术
针对电子设备的系统加载外接设备的应用场景,在UEFI(Unified ExtensibleFirmware Interface,统一可扩展固件接口)启动时可能会出现死机等运行异常问题,然而,目前的方法很难定位UEFI启动时导致上述问题的原因,且分析过程需要很大的人工成本。
发明内容
为此,本申请公开如下技术方案:
一种处理方法,包括:
在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址;
确定电子设备对所述驱动的运行过程是否发生异常;
若是,确定并存储所述驱动的当前运行进度在电子设备的内存对应的第二内存地址;
根据所述第一内存地址和所述第二内存地址,从电子设备的内存获取并存储所述驱动的相应驱动代码,得到目标驱动代码,所述目标驱动代码用于确定所发生异常的异常原因。
可选的,所述在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址,包括:
在加载所述第一外接设备的驱动的时刻,从电子设备的预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为所述第一内存地址;
将所述第一内存地址存储至电子设备基板管理控制器上的存储部件。
可选的,所述确定电子设备对所述驱动的运行过程是否发生异常,包括:
确定在预设时长内是否完成对所述第一外接设备的驱动的运行过程;
若否,则确定所述驱动的运行过程发生异常;
若是,则确定所述驱动的运行过程未发生异常。
可选的,所述确定并存储所述驱动的当前运行进度在电子设备的内存对应的第二内存地址,包括:
在发生所述异常的时刻,从所述预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为所述第二内存地址;
将所述第二内存地址存储至电子设备基板管理控制器上的所述存储部件。
可选的,所述根据所述第一内存地址和所述第二内存地址,从电子设备的内存获取并存储所述驱动的相应驱动代码,包括:
根据所述第一内存地址和所述第二内存地址,确定目标内存区域;
获取所述第一外接设备的驱动在所述目标内存区域中的驱动代码,作为所述目标驱动代码;
将所述目标驱动代码存储至电子设备基板管理控制器上的所述存储部件。
可选的,所述根据所述第一内存地址和所述第二内存地址,确定目标内存区域,包括:
确定以所述第一内存地址为起始地址以所述第二内存地址为结束地址的内存区域,作为所述目标内存区域;
或,确定以所述第一内存地址为起始地址以在所述第二内存地址基础上进行预设偏移量的偏移后所得的地址为结束地址的内存区域,作为所述目标内存区域。
可选的,所述存储部件为第一次失败数据捕获FFDC,基于所述FFDC存储所述第一内存地址、所述第二内存地址和所述目标驱动代码中的至少部分信息。
可选的,上述方法,还包括:
在确定发生所述异常之后,向电子设备的预设处理器发送停止指令,以使所述预设处理器停止对所述第一外接设备的驱动的运行过程;
和/或,
将所述目标驱动代码输出至第二外接设备,以便所述第二外接设备将所述目标驱动代码转换为预设可读程序代码,并基于所述预设可读程序代码定位所发生异常的异常原因;
其中,所定位的异常原因包括:导致发生所述异常的外接设备的设备信息,和/或,所述目标驱动代码中导致发生所述异常的问题代码及问题类型中的至少部分信息。
可选的,电子设备的基板管理控制器通过预设接口获取相应的内存指针信息或驱动代码,和/或,通过所述预设接口向电子设备的所述预设处理器发送停止指令。
一种电子设备,包括:
存储器,用于至少存储一组计算机指令集;
控制器,用于调用并执行所述存储器中存储的所述指令集,通过执行所述指令集实现如上任一项所述的处理方法。
一种存储介质,其上存储有至少一组计算机指令集,计算机指令集被调用并执行时用于实现如上文任一项公开的处理方法。
综上,本申请公开的处理方法和电子设备,在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备内存对应的第一内存地址,确定驱动运行过程是否发生异常,若是,确定并存储驱动的当前运行进度在电子设备内存对应的第二内存地址,并根据第一、第二内存地址从电子设备内存获取与存储该驱动的相应驱动代码。由此可见,本申请在加载并运行外接设备驱动时,检测并响应驱动运行异常事件,通过运行异常时的相应内存地址定位,抓取运行异常时的相关驱动代码,后续可通过分析所抓取的运行异常时驱动代码进行问题点定位及问题原因分析,从而便于UEFI启动异常时快速分析与定位问题原因,并降低了问题根因分析的人工成本。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本申请提供的处理方法的一种流程示意图;
图2是本申请提供的从电子设备内存获取并存储目标驱动代码的流程图;
图3是本申请提供的处理方法的另一种流程示意图;
图4是本申请提供的处理方法的又一种流程示意图;
图5是本申请提供的电子设备与第二外接设备的连接示意图;
图6是本申请提供的电子设备的组成结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
系统BIOS(Basic Input Output Syatem,基本输入/输出系统)在启动过程中会加载外插卡等外接设备的UEFI(Unified Extensible Firmware Interface,统一可扩展固件接口)Driver,当外插卡的UEFI Driver出现运行异常情况相应发生设备死机等问题时,需要进行问题/异常原因定位,目前的解决方案,一般通过手动在问题机器上插入ITP(一个负责复制异常现象相关数据的硬件设备)来复制现象,完成复制后再基于所复制现象数据进行问题原因分析,如此十分浪费时间和人力,也不能保证100%能够复现现象。另外,如果是在客户端出现上述问题,难以使用ITP复现(原因是需要调度专门的服务人员到客户端使用ITP复现,且会中断客户端所使用的服务)。
为解决上述问题,本申请公开一种处理方法和电子设备,该处理方法可应用于电子设备,应用本申请方法的电子设备可以是但不限于众多通用或专用的计算装置环境或配置下的设备,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置等等。
参见图1提供的本申请处理方法的流程示意图,该处理方法包括如下各处理步骤:
步骤101、在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址。
可选的,第一外接设备为系统BIOS在启动过程中需加载的外接设备,可以是但不限于显卡、网卡等外插卡。
系统BIOS在启动过程中会通过CPU(Central Processing Unit,中央处理器)加载外插卡等第一外接设备的驱动,如第一外接设备的UEFI Driver,第一外接设备的驱动运行异常,会体现为设备在UEFI启动节点发生异常(如死机)。为便于在第一外接设备的驱动运行异常相应导致设备在UEFI启动节点发生异常时快速、高效地进行问题原因定位,本申请实施例首先在向电子设备的内存加载第一外接设备的驱动这一时间节点,获取并存储驱动入口在电子设备的内存对应的第一内存地址。
具体的,可在加载第一外接设备的驱动的时刻,从电子设备的预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为第一内存地址,并将第一内存地址存储至电子设备BMC(Baseboard Management Controller,基板管理控制器)上的存储部件。
可选的,预设指针寄存器为CPU中的指令指针寄存器IP,即CPU IP,BMC上的存储部件可以是设置于BMC上的FFDC(First Failure Data Capture,第一次失败数据捕获)器件。
步骤102、确定电子设备对所加载驱动的运行过程是否发生异常。
在完成第一外接设备的驱动向内存的加载后,CPU进一步基于加载于内存的驱动代码,运行第一外接设备的驱动,如果第一外接设备的驱动存在软件问题,如Dead Loop或Hang等软件问题,会导致驱动运行过程发生异常,本步骤相应确定驱动的运行过程是否发生异常。
具体的,本步骤通过确定在预设时长内是否完成对第一外接设备的驱动的运行过程,来确定电子设备对所加载驱动的运行过程是否发生异常。
其中,具体检测在预设时长内是否完成对第一外接设备的驱动的运行过程,相应退回到电子设备当前对应的主进程,如退回到系统BIOS,若是,则确定第一外接设备的驱动的运行过程未发生异常,反之,若否,则确定第一外接设备的驱动的运行过程发生异常。
上述预设时长,至少不低于第一外接设备的驱动在运行无异常情况下整体运行过程所需的时长。优选的,该预设时长高于第一外接设备的驱动在运行无异常情况下整体运行过程所需时长一定数值。
实施中,可在完成对第一外接设备驱动的加载时,启动一计时器(Timer),并触发计时器计时预设时长,如将计时时长设定为30秒~60秒等,并判定在计时结束时刻是否完成对第一外接设备的驱动的运行过程、退回到系统BIOS,若是,则第一外接设备的驱动的运行过程未发生异常,反之,则发生异常。
可选的,具体可由电子设备的BMC进行计时器设定及计时管理。
步骤103、若是,确定并存储上述驱动的当前运行进度在电子设备的内存对应的第二内存地址。
如果第一外接设备的驱动的运行过程发生异常,则进一步确定并存储第一外接设备的驱动的当前运行进度在电子设备内存对应的第二内存地址,具体的,可在检测到发生异常的时刻,从上述预设指针寄存器如CPU IP中获取其当前所存储的内存指针信息,并将获取的内存指针信息对应的内存地址作为第二内存地址。
可选的,同样可将获取的第二内存地址存放至BMC上的FFDC中。
反之,如果第一外接设备的驱动的运行过程未发生异常,则无需执行相应的异常原因分析处理,相应可清除已存储的第一内存地址,同时还可以清理计时器Timer。
进一步,可选的,具体可由系统BIOS通知BMC清理FFDC中存储的第一内存地址,以及清理计时器Timer。
步骤104、根据上述的第一内存地址和第二内存地址,从电子设备的内存获取并存储上述驱动的相应驱动代码,得到目标驱动代码,目标驱动代码用于确定所发生异常的异常原因。
在第一外接设备的驱动的运行过程发生异常情况下,当获得并存储第一内存地址和第二内存地址后,进一步根据第一内存地址和第二内存地址,抓取第一外接设备驱动运行异常时的相关驱动代码,以作为后续异常原因分析的数据基础。参见图2,该过程具体可实现为:
步骤201、根据第一内存地址和第二内存地址,确定目标内存区域。
所确定的目标内存区域,用于在抓取第一外接设备的驱动运行异常时的相关驱动代码时,进行驱动代码定位。
可选的,在一实施方式中,可直接确定以第一内存地址为起始地址以第二内存地址为结束地址的内存区域,作为目标内存区域。
但不限于此,在其他实施方式中,还可以在第二内存地址基础上进行一定偏移,即,将第二内存地址向后偏移预设偏移量,并确定以第一内存地址为起始地址以在第二内存地址基础上进行预设偏移量的上述偏移后所得的地址为结束地址的内存区域,作为目标内存区域。该实施方式下,通过将第二内存地址向后偏移预设偏移量,并以在第二内存地址基础上进行偏移后所得的地址为结束地址来确定目标内存区域,目的在于使得基于目标内存区域所定位并抓取的驱动代码相比于当前运行进度对应的已运行驱动代码有一定冗余,相应使得抓取的第一外接设备驱动运行异常时的相关驱动代码更为全面。
其中,对第二内存地址执行偏移时采用的偏移量,可根据经验设置,或结合第一外接设备的驱动代码数据量及当前运行进度适应性配置,以尽可能使得将第二内存地址偏移该偏移量后所得的地址不超出驱动代码末尾位置所对应地址。
步骤202、获取第一外接设备的驱动在目标内存区域中的驱动代码,作为目标驱动代码。
在确定目标内存区域后,基于目标内存区域进行运行异常时的相关驱动代码定位,并抓取第一外接设备的驱动在目标内存区域中的驱动代码,作为目标驱动代码。
步骤203、将目标驱动代码存储至电子设备基板管理控制器上的所述存储部件。
之后,将获得的目标驱动代码存储至电子设备BMC的相应存储部件,可选的,具体可存储至设置于BMC上的FFDC中。也即,本申请实施例优选采用设置于BMC上的FFDC存储所获得第一内存地址、第二内存地址以及目标驱动代码中的至少部分信息。
目标驱动代码即为第一外接设备驱动运行异常时的相关驱动代码,用于后续的异常原因分析。
实际应用本申请时,具体可由电子设备的BMC通过预设接口抓取相应的内存指针信息和/或驱动代码,可选的,具体可由BMC通过JTAG(Joint Test Action Group,联合测试工作组)接口抓取第一内存地址、第二内存地址以及第一外接设备的驱动运行异常时的相关驱动代码(即目标驱动代码),并将抓取的地址信息或驱动代码信息存储至FFDC,以便于后续通过解析FFDC并分析其中存储的目标驱动代码实现异常原因定位。
综上所述,本实施例的方法,在加载并运行外接设备驱动时,检测并响应驱动运行异常事件,通过运行异常时的相应内存地址定位,抓取运行异常时的相关驱动代码,后续可通过分析所抓取的运行异常时驱动代码进行问题点定位及问题原因分析,从而便于UEFI启动异常时快速分析与定位问题原因,并降低了问题根因分析的人工成本。
在一实施例中,参见图3提供的处理方法流程图,本申请公开的处理方法在确定第一外接设备的驱动的运行过程发生异常之后,还可以包括以下处理:
步骤105、向电子设备的预设处理器发送停止指令,以使预设处理器停止对第一外接设备的驱动的运行过程。
可选的,预设处理器为电子设备的CPU。
当检测到第一外接设备的驱动的运行过程发生异常时,表明第一外接设备的驱动如外插卡的UEFI Driver出现了Dead Loop或Hang等软件问题,响应于该情况,BMC通过上述预设接口如JTAG接口的线路,向CPU发送用于指示停止对第一外接设备驱动的运行过程的停止指令。
CPU接收并响应该停止指令,停止对第一外接设备的驱动的运行过程,从而降低对设备的性能消耗。
在一实施例中,参见图4提供的处理方法流程图,本申请公开的处理方法在得到目标驱动代码之后,还可以包括以下处理:
步骤106、将目标驱动代码输出至第二外接设备,以便第二外接将目标驱动代码转换为预设可读程序代码,并基于转换得到的预设可读程序代码定位所发生异常的异常原因。
参见图5(图5中NVD表示内存)示出的电子设备与第二外接设备的连接示意图,第二外接设备用于作为调试主机提供对电子设备BMC抓取的目标驱动代码(第一外接设备驱动运行异常时的相关驱动代码)的导出、转换、调试及此基础上的异常原因分析、定位功能,第二外接设备可以是但不限于具备显示装置的个人计算机或服务器计算机、便携式移动终端等设备,且可选的,第二外接设备可以基于网络管理端口(Mgmt)通过网络与发生异常的电子设备远程连接。
具体的,如图5所示,第二外接设备可通过插件(plugin)向电子设备的BMC发送导出指令,电子设备的BMC接收并响应导出指令,从FFDC调取目标驱动代码,并将其输出至第二外接设备,或者,电子设备的BMC还可以响应于抓取到第一外接设备驱动运行异常情况下的相关驱动代码(即目标驱动代码)而自动触发将目标驱动代码输出至第二外接设备,通过上述任意一种方式,实现将电子设备的BMC抓取的第一外接设备驱动运行异常情况下的目标驱动代码导出至第二外接设备。
可选的,第二外接设备在获得导出的目标驱动代码后,将其转换为预设可读程序代码,如将机器码形式的目标驱动代码转换为汇编码等,同时将转换得到的汇编码等可读程序代码进行可视化输出,以供相关人员通过分析、调试输出的可读程序代码定位第一外接设备驱动运行过程中所发生异常的异常原因。
其中,所定位的异常原因包括但不限于:导致发生所述异常的外接设备的设备信息,和/或,所述目标驱动代码中导致发生所述异常的问题代码及问题类型中的至少部分信息。
外接设备的设备信息,可以包括但不限于设备名称、设备ID、设备编号等中的任意一种或多种,通过对可读程序代码形式的目标驱动代码进行分析,识别发生上述异常的外接设备的名称、ID等信息,以此定位出具体是哪个第一外接设备(如显卡还是网卡)的驱动发生软件异常,除此之外,还通过对可读程序代码形式的目标驱动代码进行调试、分析等处理,确定出目标驱动代码中导致发生该异常的具体问题代码及问题代码所对应的具体异常类型,如Dead Loop或Hang等,从而实现对所发生异常的异常原因定位,以便于后续对所存在软件异常的修复处理,不需要现象复制就能确定问题点,且方便得到具体的source code级别的问题点。
在其他实施例中,可选的,电子设备的BMC在通过JTAG接口抓取并存储第一外接设备的驱动入口在电子设备内存对应的第一内存地址时,还可以抓取并存储外插卡等第一外接设备在电子设备所处插槽(slot)的插槽信息,如插槽ID、插槽编号等,以方便后续根据插槽与外插卡(如,显卡或网卡)等第一外接设备的对应关系,定位具体是哪个第一外接设备出现软件问题(即驱动异常),可有效避免因抓取的目标驱动代码数据信息不足而无法有效分析出发生异常的具体外接设备的情况发生。
本申请实施例还公开一种电子设备,具体可以是但不限于众多通用或专用的计算装置环境或配置下的设备,例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器装置等等。
电子设备的组成结构,如图6所示,至少包括:
存储器10,用于存放计算机指令集;
计算机指令集可以通过计算机程序的形式实现。
处理器20,用于通过执行计算机指令集,实现如上文任一方法实施例公开的处理方法。
处理器20可以为中央处理器(Central Processing Unit,CPU),特定应用集成电路(application-specific integrated circuit,ASIC),数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件等。
电子设备具备显示装置和/或具备显示接口、能外接显示装置。
可选的,电子设备还包括摄像头组件,和/或连接有外置摄像头组件。
除此之外,电子设备还可以包括通信接口、通信总线等组成部分。存储器、处理器和通信接口通过通信总线完成相互间的通信。
通信接口用于电子设备与其他设备之间的通信。通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(ExtendedIndustry Standard Architecture,EISA)总线等,该通信总线可以分为地址总线、数据总线、控制总线等。
另外,本申请实施例还公开一种存储介质,其上存储有至少一组计算机指令集,计算机指令集被调用并执行时用于实现如上任一实施例公开的处理方法。
综上所述,本申请实施例公开的处理方法和电子设备、存储介质,相比于传统技术,至少具备以下技术优势:
a、通过利用BMC借助JTAG接口抓取外接设备驱动运行异常时的CPU IP机器码信息,得到外接设备驱动运行异常时的相关驱动代码,并保存在FFDC等存储部件,使得后续可通过解析FFDC获取抓取的驱动代码进行异常原因定位,不需要现象复制就能确定问题点,便于快速、高效地进行问题原因定位,并降低了问题根因分析的人工成本;
b、由于可通过远程连接导出BMC抓取的外接设备驱动运行异常时的相关驱动代码,从而可同时适用于开发过程和客户端;
c、通过抓取并导出外接设备驱动运行异常时的相关驱动代码,可实现对外接设备驱动的软件问题进行源代码级别调试(source level debug)与分析,便于更精确地进行异常原因定位,方便得到具体的source code级别问题点。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
为了描述的方便,描述以上系统或装置时以功能分为各种模块或单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
最后,还需要说明的是,在本文中,诸如第一、第二、第三和第四等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。

Claims (10)

1.一种处理方法,包括:
在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址;
确定电子设备对所述驱动的运行过程是否发生异常;
若是,确定并存储所述驱动的当前运行进度在电子设备的内存对应的第二内存地址;
根据所述第一内存地址和所述第二内存地址,从电子设备的内存获取并存储所述驱动的相应驱动代码,得到目标驱动代码,所述目标驱动代码用于确定所发生异常的异常原因。
2.根据权利要求1所述的方法,所述在向电子设备的内存加载第一外接设备的驱动时,获取并存储驱动入口在电子设备的内存对应的第一内存地址,包括:
在加载所述第一外接设备的驱动的时刻,从电子设备的预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为所述第一内存地址;
将所述第一内存地址存储至电子设备基板管理控制器上的存储部件。
3.根据权利要求1所述的方法,所述确定电子设备对所述驱动的运行过程是否发生异常,包括:
确定在预设时长内是否完成对所述第一外接设备的驱动的运行过程;
若否,则确定所述驱动的运行过程发生异常;
若是,则确定所述驱动的运行过程未发生异常。
4.根据权利要求2所述的方法,所述确定并存储所述驱动的当前运行进度在电子设备的内存对应的第二内存地址,包括:
在发生所述异常的时刻,从所述预设指针寄存器获取所存储的内存指针信息,将获取的内存指针信息对应的内存地址作为所述第二内存地址;
将所述第二内存地址存储至电子设备基板管理控制器上的所述存储部件。
5.根据权利要求4所述的方法,所述根据所述第一内存地址和所述第二内存地址,从电子设备的内存获取并存储所述驱动的相应驱动代码,包括:
根据所述第一内存地址和所述第二内存地址,确定目标内存区域;
获取所述第一外接设备的驱动在所述目标内存区域中的驱动代码,作为所述目标驱动代码;
将所述目标驱动代码存储至电子设备基板管理控制器上的所述存储部件。
6.根据权利要求5所述的方法,所述根据所述第一内存地址和所述第二内存地址,确定目标内存区域,包括:
确定以所述第一内存地址为起始地址以所述第二内存地址为结束地址的内存区域,作为所述目标内存区域;
或,确定以所述第一内存地址为起始地址以在所述第二内存地址基础上进行预设偏移量的偏移后所得的地址为结束地址的内存区域,作为所述目标内存区域。
7.根据权利要求5所述的方法,所述存储部件为第一次失败数据捕获FFDC,基于所述FFDC存储所述第一内存地址、所述第二内存地址和所述目标驱动代码中的至少部分信息。
8.根据权利要求1所述的方法,还包括:
在确定发生所述异常之后,向电子设备的预设处理器发送停止指令,以使所述预设处理器停止对所述第一外接设备的驱动的运行过程;
和/或,
将所述目标驱动代码输出至第二外接设备,以便所述第二外接设备将所述目标驱动代码转换为预设可读程序代码,并基于所述预设可读程序代码定位所发生异常的异常原因;
其中,所定位的异常原因包括:导致发生所述异常的外接设备的设备信息,和/或,所述目标驱动代码中导致发生所述异常的问题代码及问题类型中的至少部分信息。
9.根据权利要求8所述的方法,其中,电子设备的基板管理控制器通过预设接口获取相应的内存指针信息或驱动代码,和/或,通过所述预设接口向电子设备的所述预设处理器发送停止指令。
10.一种电子设备,包括:
存储器,用于至少存储一组计算机指令集;
控制器,用于调用并执行所述存储器中存储的所述指令集,通过执行所述指令集实现如权利要求1-9任一项所述的处理方法。
CN202210581231.0A 2022-05-26 2022-05-26 一种处理方法和电子设备 Pending CN114936108A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210581231.0A CN114936108A (zh) 2022-05-26 2022-05-26 一种处理方法和电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210581231.0A CN114936108A (zh) 2022-05-26 2022-05-26 一种处理方法和电子设备

Publications (1)

Publication Number Publication Date
CN114936108A true CN114936108A (zh) 2022-08-23

Family

ID=82865531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210581231.0A Pending CN114936108A (zh) 2022-05-26 2022-05-26 一种处理方法和电子设备

Country Status (1)

Country Link
CN (1) CN114936108A (zh)

Similar Documents

Publication Publication Date Title
CN105843741B (zh) 应用程序的信息处理方法和装置
US9569325B2 (en) Method and system for automated test and result comparison
EP3121726A1 (en) Fault processing method, related device and computer
CN108446171B (zh) 电子装置、分布式系统执行任务分配方法及存储介质
EP3591485B1 (en) Method and device for monitoring for equipment failure
WO2023115999A1 (zh) 设备状态监控方法、装置、设备及计算机可读存储介质
CN114168222B (zh) 一种启动耗时的获取方法、装置、终端设备和存储介质
CN113505014B (zh) 一种故障诊断文件获取方法及装置
CN109559121B (zh) 交易路径调用异常分析方法、装置、设备及可读存储介质
CN109710479B (zh) 一种处理方法及第一设备、第二设备
CN111090593A (zh) 确定崩溃归属的方法、装置、电子设备及存储介质
CN103178977A (zh) 计算机系统及计算机系统的开机管理方法
CN112506693A (zh) 一种记录异常信息的方法、装置、存储介质和电子设备
CN114936108A (zh) 一种处理方法和电子设备
KR20150116020A (ko) 무선 네트워크를 이용한 컴퓨터 진단 및 복구 장치와 그 방법
CN111190791A (zh) 应用异常上报方法、装置和电子设备
CN115525392A (zh) 容器监控方法、装置、电子设备及存储介质
CN115587046A (zh) 代码异常的处理方法、装置、存储介质及计算机设备
CN115168146A (zh) 一种异常检测方法和装置
CN111414270B (zh) 一种异常处理方法及装置
CN114385457A (zh) 应用程序数据采集方法、装置、设备及存储介质
CN109376030B (zh) 用于捕获嵌入式操作系统异常的系统
CN111857689A (zh) 一种框架、框架的功能配置方法、终端及存储介质
CN111813872A (zh) 一种故障排查模型的生成方法、装置、设备
CN112463446B (zh) 一种PCIe设备恢复方法、系统及电子设备和存储介质

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