CN116431376B - 一种核心转储方法、系统、设备及计算机可读存储介质 - Google Patents

一种核心转储方法、系统、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN116431376B
CN116431376B CN202310680052.7A CN202310680052A CN116431376B CN 116431376 B CN116431376 B CN 116431376B CN 202310680052 A CN202310680052 A CN 202310680052A CN 116431376 B CN116431376 B CN 116431376B
Authority
CN
China
Prior art keywords
target
function
address
value
core dump
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
Application number
CN202310680052.7A
Other languages
English (en)
Other versions
CN116431376A (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.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology 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 Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202310680052.7A priority Critical patent/CN116431376B/zh
Publication of CN116431376A publication Critical patent/CN116431376A/zh
Application granted granted Critical
Publication of CN116431376B publication Critical patent/CN116431376B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/0709Error 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 distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • 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/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种核心转储方法、系统、设备及计算机可读存储介质,涉及云计算分布式存储系统技术领域,获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号;响应于崩溃级异常信号,对目标系统节点中的异常线程进行函数回溯,得到函数调用者地址;基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括文件名、函数名和源代码行数;确定调用函数的传参数和临时变量值;基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。本发明只对崩溃后的异常线程进行函数回溯,使得目标核心转储文件中只存储用于进行崩溃定位的关键信息,在精简核心转储文件的数据量的情况下保证了开发人员等对崩溃的处理准确度,适用性好。

Description

一种核心转储方法、系统、设备及计算机可读存储介质
技术领域
本发明涉及云计算分布式系统技术领域,更具体地说,涉及一种核心转储方法、系统、设备及计算机可读存储介质。
背景技术
在云计算分布式系统中,当系统节点发生崩溃后,需要进行核心转储(Core Dump)来保留现场系统异常信息,以便开发人员等后续依据该现场系统异常信息进行异常定位、维护,继而提升云计算分布式系统的稳定性,保证用户的正常业务与数据安全。
然而,进行核心转储的方法是生成系统节点的内存快照,保存系统节点异常时的内存、寄存器、堆栈等运行信息,但是该过程会将进程虚拟内存区域所有的信息全量转储出来,使得生成的核心转储文件过于庞大,严重消耗云计算分布式系统的资源,给云计算分布式系统的稳定性带来极大隐患,且该核心转储文件中只有很少一部分信息是开发人员定位问题所需要的,使用率差,导致现有核心转储方法的适用性差。
综上所述,如何提高核心转储方法的适用性是目前本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种核心转储方法,其能在一定程度上解决如何提高核心转储方法的适用性的技术问题。本发明还提供了一种核心转储系统、设备及计算机可读存储介质。
第一方面,本发明提供一种核心转储方法,应用于云计算分布式系统,包括:
获取所述云计算分布式系统中的目标系统节点发出的崩溃级异常信号;
响应于所述崩溃级异常信号,对所述目标系统节点中的异常线程进行函数回溯,得到所述异常线程中调用函数对应的函数调用者地址;
基于所述函数调用者地址确定函数调用堆栈,所述函数调用堆栈包括文件名、函数名和源代码行数;
确定所述调用函数的传参数和临时变量值;
基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件。
在一示例性实施例中,所述对所述目标系统节点中的异常线程进行函数回溯,得到所述异常线程中调用函数对应的函数调用者地址,包括:
确定函数调用回溯层数值;
将回溯函数和所述异常线程放置在同一线程中;
记录所述回溯函数的第一个临时变量地址;
基于第一个所述临时变量地址,计算所述回溯函数对应的EBP地址作为当前EBP地址;
基于当前EBP地址计算对应的所述函数调用者地址;
通过当前EBP地址,获取上一级调用者的EBP地址作为最新的当前EBP地址;
返回执行所述基于当前EBP地址计算对应的所述函数调用者地址及之后的步骤,直至所述上一级调用者的EBP地址为空或回溯次数达到所述函数调用回溯层数值。
在一示例性实施例中,所述基于第一个所述临时变量地址,计算所述回溯函数对应的EBP地址作为当前EBP地址,包括:
通过第一运算公式,基于第一个所述临时变量地址,计算所述回溯函数对应的EBP地址作为当前EBP地址;
所述第一运算公式包括:
其中,表示所述回溯函数对应的EBP地址;/>表示第一个所述临时变量地址;/>表示第一个所述临时变量地址与所述回溯函数对应的EBP地址间的偏移值。
在一示例性实施例中,所述基于当前EBP地址计算对应的所述函数调用者地址,包括:
将当前EBP地址的值加1得到所述函数调用者地址。
在一示例性实施例中,所述基于所述函数调用者地址确定函数调用堆栈,包括:
根据可执行映像,将所述函数调用者地址转换为对应的所述函数调用堆栈;
所述确定所述调用函数的传参数和临时变量值,包括:
根据所述函数调用者地址对应的所述文件名、所述函数名、所述源代码行数、当前EBP地址,确定所述调用函数的所述传参数和所述临时变量值;
其中,所述可执行映像中包含源代码行号与编译后的机器代码地址之间的行数、地址对应关系表。
在一示例性实施例中,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件,包括:
获取所述目标系统节点的崩溃异常产生时刻;
生成所述目标系统节点的核心转储标识;
基于所述崩溃异常产生时刻、所述核心转储标识、所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的所述目标核心转储文件。
在一示例性实施例中,所述生成所述目标系统节点的核心转储标识,包括:
获取所述函数调用堆栈中第一个写入的所述函数调用者地址对应的所述调用函数的目标函数名;
将所述目标函数名映射为目标数字;
基于所述目标数字生成所述目标系统节点的所述核心转储标识。
在一示例性实施例中,所述将所述目标函数名映射为目标数字,包括:
获取设置的常数值;
对于所述目标函数名中的每个目标字符,将所述目标字符转换为第一数值,基于所述常数值、所述第一数值及所述目标字符的前一字符的目标数值,确定所述目标字符的所述目标数值;
将所述目标函数名中的每个所述目标字符替换为对应的所述目标数值,得到所述目标数字。
在一示例性实施例中,所述将所述目标字符转换为第一数值,包括:
对所述目标字符进行ASCII转换,得到所述第一数值。
在一示例性实施例中,所述基于所述常数值、所述第一数值及所述目标字符的前一字符的目标数值,确定所述目标字符的所述目标数值,包括:
通过第二运算公式,基于所述常数值、所述第一数值及所述目标字符的前一字符的目标数值,确定所述目标字符的所述目标数值;
所述第二运算公式包括:
其中,表示所述目标字符的所述目标数值;/>表示所述目标字符的前一字符的所述目标数值;/>表示所述目标函数名中的第/>个所述目标字符;表示所述第一数值;/>、/>表示所述常数值;/>表示求余运算;且第一个所述目标字符的前一字符的所述目标数值为0。
在一示例性实施例中,所述基于所述目标数字生成所述目标系统节点的所述核心转储标识,包括:
获取所述函数调用堆栈中第一个写入的所述函数调用者地址对应的所述调用函数的第一源代码行数;
获取所述函数调用堆栈中中间写入的所述函数调用者地址对应的所述调用函数的第二源代码行数;
将所述目标数字、所述第一源代码行数和所述第二源代码行数的和值作为所述核心转储标识。
在一示例性实施例中,所述基于所述崩溃异常产生时刻、所述核心转储标识、所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的所述目标核心转储文件之后,还包括:
判断预设记录表中是否已有所述核心转储标识;
若所述预设记录表中已有所述核心转储标识,则在所述预设记录表中对应记录所述崩溃异常产生时刻;
若所述预设记录表中未有所述核心转储标识,则在所述预设记录表中存储所述核心转储标识及所述崩溃异常产生时刻。
在一示例性实施例中,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件之后,还包括:
确定所述目标系统节点连续两次崩溃异常的时间差值;
若所述时间差值小于预设阈值,则上报第一级崩溃警告;
若所述时间差值大于等于所述预设阈值,则上报第二级崩溃警告;
其中,所述第一级崩溃警告的严重级高于所述第二级崩溃警告的严重级。
在一示例性实施例中,所述获取所述云计算分布式系统中的目标系统节点发出的崩溃级异常信号,包括:
获取所述云计算分布式系统中的所述目标系统节点发出的所述崩溃级异常信号,所述崩溃级异常信号包括无效内存引用信号、中止信号、总线错误信号、非法指令信号、算术运算异常信号。
在一示例性实施例中,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件之后,还包括:
将所述目标核心转储文件存储于所述云计算分布式系统的主系统节点中。
在一示例性实施例中,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件之后,还包括:
对所述目标核心转储文件进行精简、去重操作。
在一示例性实施例中,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件之后,还包括:
对所述目标核心转储文件进行加密。
第二方面,本发明提供一种核心转储系统,应用于云计算分布式系统,包括:
异常捕获模块,用于获取所述云计算分布式系统中的目标系统节点发出的崩溃级异常信号;
函数调用回溯模块,用于响应于所述崩溃级异常信号,对所述目标系统节点中的异常线程进行函数回溯,得到所述异常线程中调用函数对应的函数调用者地址;基于所述函数调用者地址确定函数调用堆栈,所述函数调用堆栈包括文件名、函数名和源代码行数;确定所述调用函数的传参数和临时变量值;
转储文件生成模块,用于基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件。
第三方面,本发明提供一种核心转储设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上任一所述核心转储方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述核心转储方法的步骤。
本发明提供的一种核心转储方法,应用于云计算分布式系统,获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号;响应于崩溃级异常信号,对目标系统节点中的异常线程进行函数回溯,得到异常线程中调用函数对应的函数调用者地址;基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括文件名、函数名和源代码行数;确定调用函数的传参数和临时变量值;基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。本发明的有益效果在于:在响应崩溃级异常信号后,只对异常线程进行函数回溯,得到异常线程中调用函数对应的文件名、函数名和源代码行数,并在确定调用函数的传参数和临时变量值之后,基于函数调用堆栈、传参数和临时变量值生成目标核心转储文件,使得目标核心转储文件中只存储用于进行崩溃定位的关键信息,在精简核心转储文件的数据量的情况下保证了开发人员等对崩溃的处理准确度,适用性好。本发明提供的一种核心转储系统、设备及计算机可读存储介质也解决了相应技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种核心转储方法的第一示意图;
图2为本发明实施例提供的一种核心转储方法的第二示意图;
图3为本发明实施例提供的一种核心转储方法的第三示意图;
图4为本发明实施例提供的一种核心转储方法的第四示意图;
图5为本发明实施例提供的一种核心转储系统的结构示意图;
图6为本发明实施例提供的一种核心转储系统中各模块间的交互示意图;
图7为本发明实施例提供的一种核心转储设备的结构示意图;
图8为本发明实施例提供的一种核心转储设备的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例提供的一种核心转储方法的第一示意图。
本发明实施例提供的一种核心转储方法,应用于云计算分布式系统,可以包括以下步骤:
步骤S101:获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号。
实际应用中,云计算分布式系统中的系统节点发生异常崩溃后,便会成为目标系统节点,且目标系统节点在崩溃后会中断系统主进程,发出崩溃级异常信号,以便指示云计算分布式系统执行核心转储方法。
可以理解的是,目标系统发出的崩溃级异常信号的类型可以根据应用场景来确定,比如目标系统节点发出的崩溃级异常信号可以包括无效内存引用信号、中止信号、总线错误信号、非法指令信号、算术运算异常信号等。且在具体应用场景中,不同的崩溃级异常信号还可以用不同的标识进行简便表述,以便加快信号传输效率,比如无效内容引用信号可以用值为11的SIGSEGV表示,中止信号可以用值为6的SIGABRT表示、总线错误信号可以用值为7的SIGBUS表示、非法指令信号可以用值为4的SIGILL表示、算术运算异常信号可以为值为8的SIGFPE表示等,本发明在此不做具体限定。
步骤S102:响应于崩溃级异常信号,对目标系统节点中的异常线程进行函数回溯,得到异常线程中调用函数对应的函数调用者地址。
步骤S103:基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括文件名、函数名和源代码行数。
步骤S104:确定调用函数的传参数和临时变量值。
实际应用中,考虑到系统节点的崩溃异常由函数调用信息所反映,所以为了精简核心转储文件的数据量,降低核心转储文件对云计算分布式系统的稳定性影响,同时为了便于开发人员等从核心转储文件中分析崩溃异常等信息,可以在响应崩溃级异常信号后,通过对目标系统节点中的异常线程进行函数回溯来生成相应的目标核心转储文件,也即可以对目标系统节点中的异常线程进行函数回溯,先得到函数调用堆栈异常线程中调用函数对应的函数调用者地址,再基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括与调用函数对应的文件名、函数名和源代码行数,最后确定调用函数的传参数和临时变量值。
步骤S105:基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。
实际应用中,在得到函数调用堆栈、传参数和临时变量值之后,便可以生成目标系统节点的目标核心转储文件,具体的生成方式可以根据应用场景来确定,比如可以按照函数调用堆栈、传参数和临时变量值各自的预设格式进行存储,得到目标核心转储文件等。
本发明提供的一种核心转储方法,应用于云计算分布式系统,获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号;响应于崩溃级异常信号,对目标系统节点中的异常线程进行函数回溯,得到异常线程中调用函数对应的函数调用者地址;基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括文件名、函数名和源代码行数;确定调用函数的传参数和临时变量值;基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。本发明的有益效果在于:在响应崩溃级异常信号后,只对异常线程进行函数回溯,得到异常线程中调用函数对应的文件名、函数名和源代码行数,并在确定调用函数的传参数和临时变量值之后,基于函数调用堆栈、传参数和临时变量值生成目标核心转储文件,使得目标核心转储文件中只存储用于进行崩溃定位的关键信息,在精简核心转储文件的数据量的情况下保证了开发人员等对崩溃的处理准确度,适用性好。
请参阅图2,图2为本发明实施例提供的一种核心转储方法的第二示意图。
在上述实施例基础上,本发明实施例提供的一种核心转储方法,应用于云计算分布式系统,可以包括以下步骤:
步骤S201:获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号。
步骤S202:响应于崩溃级异常信号,确定函数调用回溯层数值。
实际应用中,在对目标系统节点中的异常线程进行函数回溯,得到异常线程中调用函数对应的函数调用者地址的过程中,可以先确定函数调用回溯层数值,以便后续基于该调用回溯层数值确定函数调用堆栈的层数,也即确定函数调用堆栈中存储的函数调用者地址的个数值。
可以理解的是,调用回溯层数值可以根据经验值确定,也可以根据目标系统节点的异常线程的类型来确定等,本发明在此不做具体限定。
步骤S203:将回溯函数和异常线程放置在同一线程中。
实际应用中,在确定函数调用回溯层数值之后,便可以将用于进行函数回溯的回溯函数和异常线程放置在同一线程中,以便后续可以应用该回溯函数对异常线程进行函数回溯。
步骤S204:记录回溯函数的第一个临时变量地址。
实际应用中,在基于回溯函数对异常线程进行回溯函数的过程中,可以先记录回溯函数的第一个临时变量地址,具体的,可以根据对回溯函数的架构定义来记录该第一个临时变量地址等,以便后续基于该第一个临时变量地址回溯出相应的函数调用者地址。
步骤S205:基于第一个临时变量地址,计算回溯函数对应的EBP地址作为当前EBP地址。
实际应用中,在记录回溯函数的第一个临时变量地址之后,便可以基于第一个临时变量地址,计算回溯函数对应的EBP地址作为当前EBP地址,由于EBP地址表示函数调用者地址和其调用函数之间的地址分界线,所以后续可以基于该当前EBP地址来确定对应的函数调用者地址。
可以理解的是,第一个临时变量地址与回溯函数对应的EBP地址间存在关联,所以可以通过该关联来基于第一个临时变量地址,计算回溯函数对应的EBP地址作为当前EBP地址,比如可以通过第一运算公式,基于第一个临时变量地址,计算回溯函数对应的EBP地址作为当前EBP地址;
第一运算公式包括:
其中,表示回溯函数对应的EBP地址;/>表示第一个临时变量地址;表示第一个临时变量地址与回溯函数对应的EBP地址间的偏移值。
步骤S206:基于当前EBP地址计算对应的函数调用者地址。
实际应用中,在基于第一个临时变量地址,计算回溯函数对应的EBP地址作为当前EBP地址之后,便可以基于当前EBP地址计算对应的函数调用者地址,并保存得到的函数调用者地址。可以理解的是,当前EBP地址与对应的函数调用者地址间也存在关联,比如当前EBP地址与对应的函数调用者地址的差值为1,所以在基于当前EBP地址计算对应的函数调用者地址的过程中,可以将当前EBP地址的值加1来快速得到函数调用者地址。
步骤S207:通过当前EBP地址,获取上一级调用者的EBP地址作为最新的当前EBP地址。
实际应用中,由于当前EBP地址与上一级调用者的EBP地址间存在关联,所以可以通过当前EBP地址来获取上一级调用者的EBP地址,并将该上一级调用者的EBP地址作为最新的当前EBP地址以便确定最新的函数调用者地址。
可以理解的是,由于当前EBP地址与上一级调用者的EBP地址通过相邻,所以可以将与当前EBP地址相邻的EBP地址作为上一级调用者的EBP地址。
步骤S208:返回执行基于当前EBP地址计算对应的函数调用者地址及之后的步骤,直至上一级调用者的EBP地址为空或回溯次数达到函数调用回溯层数值。
实际应用中,在更新当前EBP地址后,便可以返回执行基于当前EBP地址计算对应的函数调用者地址及之后的步骤以更新当前函数调用者地址。在此过程中,每更新一次当前EBP地址得到一个函数调用者地址,便进行了一次函数回溯,不难理解,当上一级调用者的EBP地址为空时,不存在新的函数调用者地址,此时便可以主动结束函数回溯过程;当回溯次数达到函数调用回溯层数值时,回溯到的函数调用堆栈便已满足用户需求,此时也可以结束函数回溯过程。
步骤S209:基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括文件名、函数名和源代码行数。
步骤S210:确定调用函数的传参数和临时变量值。
实际应用中,在基于函数调用者地址确定函数调用堆栈的过程中,由于会通过可执行映像保存源代码行号与编译后的机器代码地址之间的行数、地址对应关系表,所以可以根据可执行映像,将函数调用者地址转换为对应的文件名、函数名和源代码行数;相应的,在确定调用函数的传参数和临时变量值的过程中,可以根据函数调用者地址对应的文件名、函数名、源代码行数、当前EBP地址,来快速确定调用函数的传参数和临时变量值。
步骤S210:基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。
请参阅图3,图3为本发明实施例提供的一种核心转储方法的第三示意图。
在上述实施例基础上,本发明实施例提供的一种核心转储方法,应用于云计算分布式系统,可以包括以下步骤:
步骤S301:获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号。
步骤S302:响应于崩溃级异常信号,对目标系统节点中的异常线程进行函数回溯,得到异常线程中调用函数对应的函数调用者地址。
步骤S303:基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括文件名、函数名和源代码行数。
步骤S304:确定调用函数的传参数和临时变量值。
步骤S305:获取目标系统节点的崩溃异常产生时刻。
步骤S306:生成目标系统节点的核心转储标识。
步骤S307:基于崩溃异常产生时刻、核心转储标识、函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。
实际应用中,在基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件的过程中,考虑到崩溃类型不同时,生成的核心转储文件间也不同,为了准确区分不同的核心转储文件,可以获取目标系统节点的崩溃异常产生时刻;生成目标系统节点的核心转储标识;基于崩溃异常产生时刻、核心转储标识、函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。这样,便可以借助崩溃异常产生时刻及核心转储标识来快速、准确的区分不同的核心转储文件。
具体应用场景中,当系统节点的崩溃异常信息不同时,回溯到的调用函数也不同,比如函数名、行数等均不同,所以在生成目标系统节点的核心转储标识的过程中,可以应用调用函数的函数名等信息来生成特定的标识,比如可以获取函数调用堆栈中第一个写入或中间写入等的函数调用者地址对应的调用函数的目标函数名;将目标函数名映射为目标数字;基于目标数字生成目标系统节点的核心转储标识。
具体应用场景中,在将目标函数名映射为目标数字的过程中,可以获取设置的常数值;对于目标函数名中的每个目标字符,将目标字符转换为第一数值,基于常数值、第一数值及目标字符的前一字符的目标数值,确定目标字符的目标数值;将目标函数名中的每个目标字符替换为对应的目标数值,得到目标数字;以在精简操作的情况下将不同的函数名映射为不同的目标数字。
具体应用场景中,在将目标字符转换为第一数值的过程中,可以对目标字符进行ASCII转换,以快速得到第一数值。而在基于常数值、第一数值及目标字符的前一字符的目标数值,确定目标字符的目标数值的过程中,可以通过第二运算公式,基于常数值、第一数值及目标字符的前一字符的目标数值,确定目标字符的目标数值;
第二运算公式包括:
其中,表示目标字符的目标数值;/>表示目标字符的前一字符的目标数值;/>表示目标函数名中的第/>个目标字符;/>表示第一数值;/>表示常数值;/>表示求余运算;且第一个目标字符的前一字符的目标数值为0。
具体应用场景中,在基于目标数字生成目标系统节点的核心转储标识的过程中,虽然目标数字可以用于区分不同的核心转储文件,但为了进一步保证不同核心转储文件间的区别,可以在生成目标数字的基础上,获取函数调用堆栈中第一个写入的函数调用者地址对应的调用函数的第一源代码行数;获取函数调用堆栈中中间写入的函数调用者地址对应的调用函数的第二源代码行数;将目标数字、第一源代码行数和第二源代码行数的和值作为核心转储标识。
可以理解的是,为了便于对不同的核心转储文件进行管理,可以通过预设记录表来记录不同的核心转储文件的标识、产生时刻等,相应的,在基于崩溃异常产生时刻、核心转储标识、函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,当需要将目标核心转储文件的信息记录在该预设记录表中时,还可以判断预设记录表中是否已有核心转储标识;若预设记录表中已有核心转储标识,则在预设记录表中对应记录崩溃异常产生时刻;若预设记录表中未有核心转储标识,则在预设记录表中存储核心转储标识及崩溃异常产生时刻。
请参阅图4,图4为本发明实施例提供的一种核心转储方法的第四示意图。
在上述实施例基础上,本发明实施例提供的一种核心转储方法,应用于云计算分布式系统,可以包括以下步骤:
步骤S401:获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号。
步骤S402:响应于崩溃级异常信号,对目标系统节点中的异常线程进行函数回溯,得到异常线程中调用函数对应的函数调用者地址。
步骤S403:基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括文件名、函数名和源代码行数。
步骤S404:确定调用函数的传参数和临时变量值。
步骤S405:基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。
步骤S406:确定目标系统节点连续两次崩溃异常的时间差值;若时间差值小于预设阈值,则上报第一级崩溃警告;若时间差值大于等于预设阈值,则上报第二级崩溃警告;其中,第一级崩溃警告的严重级高于第二级崩溃警告的严重级。
实际应用中,在基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,可以根据目标转储文件来对目标系统节点进行预警,以便开发人员等可以针对性的对目标系统节点进行崩溃处理,在此过程中,考虑到一个系统节点连续发生异常时,意味着该系统节点刚从异常中恢复便又再次发生异常导致系统崩溃,此种场景会造成系统无法自主恢复,导致系统节点不可用,为了避免此类异常对云计算分布式系统造成较大异常,还可以确定目标系统节点连续两次崩溃异常的时间差值;若时间差值小于预设阈值,则上报第一级崩溃警告;若时间差值大于等于预设阈值,则上报第二级崩溃警告;其中,第一级崩溃警告的严重级高于第二级崩溃警告的严重级。可以理解的是,不同崩溃警告的表达方式可以根据应用场景来确定,比如可以用更深颜色的指示灯来表达更严重的崩溃警告等。
实际应用中,在基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,为了便于开发人员等对云计算系统中的崩溃信息进行整体分析等,还可以将目标核心转储文件存储于云计算分布式系统的主系统节点中,这样,所有的核心转储文件均保存在主系统节点中,用户只需读取系统主节点便可以快速获取到所有的核心转储文件。
实际应用中,在基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,考虑到目标核心转储文件中可能存在重复内容,为了进一步精简目标核心转储文件,还可以对目标核心转储文件进行精简、去重操作。
可以理解的是,在基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,为了安全保存目标核心转储文件,还可以对目标核心转储文件进行加密,在此过程中,可以根据云计算分布式系统服务名称、当前时间、异常线程ID来对加密后的目标核心转储文件进行命名等。
请参阅图5,图5为本发明实施例提供的一种核心转储系统的结构示意图。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,可以包括:
异常捕获模块101,用于获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号;
函数调用回溯模块102,用于响应于崩溃级异常信号,对目标系统节点中的异常线程进行函数回溯,得到异常线程中调用函数对应的函数调用者地址;基于函数调用者地址确定函数调用堆栈,函数调用堆栈包括文件名、函数名和源代码行数;确定调用函数的传参数和临时变量值;
转储文件生成模块103,用于基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,函数调用回溯模块可以具体用于:确定函数调用回溯层数值;将回溯函数和异常线程放置在同一线程中;记录回溯函数的第一个临时变量地址;基于第一个临时变量地址,计算回溯函数对应的EBP地址作为当前EBP地址;基于当前EBP地址计算对应的函数调用者地址;通过当前EBP地址,获取上一级调用者的EBP地址作为最新的当前EBP地址;返回执行基于当前EBP地址计算对应的函数调用者地址及之后的步骤,直至上一级调用者的EBP地址为空或回溯次数达到函数调用回溯层数值。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,函数调用回溯模块可以具体用于:通过第一运算公式,基于第一个临时变量地址,计算回溯函数对应的EBP地址作为当前EBP地址;
第一运算公式包括:
其中,表示回溯函数对应的EBP地址;/>表示第一个临时变量地址;表示第一个临时变量地址与回溯函数对应的EBP地址间的偏移值。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,函数调用回溯模块可以具体用于:将当前EBP地址的值加1得到函数调用者地址。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,函数调用回溯模块可以具体用于:根据可执行映像,将函数调用者地址转换为对应的函数调用堆栈;根据函数调用者地址对应的文件名、函数名、源代码行数、当前EBP地址,确定调用函数的传参数和临时变量值;其中,可执行映像中包含源代码行号与编译后的机器代码地址之间的行数、地址对应关系表。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,转储文件生成模块可以具体用于:获取目标系统节点的崩溃异常产生时刻;生成目标系统节点的核心转储标识;基于崩溃异常产生时刻、核心转储标识、函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,转储文件生成模块可以具体用于:获取函数调用堆栈中第一个写入的函数调用者地址对应的调用函数的目标函数名;将目标函数名映射为目标数字;基于目标数字生成目标系统节点的核心转储标识。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,转储文件生成模块可以具体用于:获取设置的常数值;对于目标函数名中的每个目标字符,将目标字符转换为第一数值,基于常数值、第一数值及目标字符的前一字符的目标数值,确定目标字符的目标数值;将目标函数名中的每个目标字符替换为对应的目标数值,得到目标数字。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,转储文件生成模块可以具体用于:对目标字符进行ASCII转换,得到第一数值。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,转储文件生成模块可以具体用于:通过第二运算公式,基于常数值、第一数值及目标字符的前一字符的目标数值,确定目标字符的目标数值;
第二运算公式包括:
其中,表示目标字符的目标数值;/>表示目标字符的前一字符的目标数值;/>表示目标函数名中的第/>个目标字符;/>表示第一数值;/>表示常数值;/>表示求余运算;且第一个目标字符的前一字符的目标数值为0。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,转储文件生成模块可以具体用于:获取函数调用堆栈中第一个写入的函数调用者地址对应的调用函数的第一源代码行数;获取函数调用堆栈中中间写入的函数调用者地址对应的调用函数的第二源代码行数;将目标数字、第一源代码行数和第二源代码行数的和值作为核心转储标识。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,还可以包括:
记录模块,用于转储文件生成模块基于崩溃异常产生时刻、核心转储标识、函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,判断预设记录表中是否已有核心转储标识;若预设记录表中已有核心转储标识,则在预设记录表中对应记录崩溃异常产生时刻;若预设记录表中未有核心转储标识,则在预设记录表中存储核心转储标识及崩溃异常产生时刻。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,还可以包括:
连续异常判定模块,用于转储文件生成模块基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,确定目标系统节点连续两次崩溃异常的时间差值;
系统异常上报模块,用于若时间差值小于预设阈值,则上报第一级崩溃警告;若时间差值大于等于预设阈值,则上报第二级崩溃警告;其中,第一级崩溃警告的严重级高于第二级崩溃警告的严重级。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,异常捕获模块可以具体用于:获取云计算分布式系统中的目标系统节点发出的崩溃级异常信号,崩溃级异常信号包括无效内存引用信号、中止信号、总线错误信号、非法指令信号、算术运算异常信号。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,还可以包括:
堆栈转储模块,用于转储文件生成模块基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,将目标核心转储文件存储于云计算分布式系统的主系统节点中。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,还可以包括:
处理模块,用于转储文件生成模块基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,对目标核心转储文件进行精简、去重操作。
本发明实施例提供的一种核心转储系统,应用于云计算分布式系统,还可以包括:
加密模块,用于转储文件生成模块基于函数调用堆栈、传参数和临时变量值,生成目标系统节点的目标核心转储文件之后,对目标核心转储文件进行加密。
需要说明的是,在应用场景中,可以根据需要灵活调整本发明中核心转储系统的架构,比如可以在云计算分布式系统的每个系统节点上均部署一套本发明的核心转储系统,且核心转储系统的各个模块间的数据流向可以如图6所示等。
本发明还提供了一种核心转储设备及计算机可读存储介质,其均具有本发明实施例提供的一种核心转储方法具有的对应效果。请参阅图7,图7为本发明实施例提供的一种核心转储设备的结构示意图。
本发明实施例提供的一种核心转储设备,包括存储器201和处理器202,存储器201中存储有计算机程序,处理器202执行计算机程序时实现如上任一实施例所描述核心转储方法的步骤。
请参阅图8,本发明实施例提供的另一种核心转储设备中还可以包括:与处理器202连接的输入端口203,用于传输外界输入的命令至处理器202;与处理器202连接的显示单元204,用于显示处理器202的处理结果至外界;与处理器202连接的通信模块205,用于实现核心转储设备与外界的通信。显示单元204可以为显示面板、激光扫描使显示器等;通信模块205所采用的通信方式包括但不局限于移动高清链接技术(HML)、通用串行总线(USB)、高清多媒体接口(HDMI)、无线连接:无线保真技术(WiFi)、蓝牙通信技术、低功耗蓝牙通信技术、基于IEEE802.11s的通信技术。
本发明实施例提供的一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,计算机程序被处理器执行时实现如上任一实施例所描述核心转储方法的步骤。
本发明所涉及的计算机可读存储介质包括随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质。
本发明实施例提供的核心转储系统、设备及计算机可读存储介质中相关部分的说明请参见本发明实施例提供的核心转储方法中对应部分的详细说明,在此不再赘述。另外,本发明实施例提供的上述技术方案中与现有技术中对应技术方案实现原理一致的部分并未详细说明,以免过多赘述。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (16)

1.一种核心转储方法,其特征在于,应用于云计算分布式系统,包括:
获取所述云计算分布式系统中的目标系统节点发出的崩溃级异常信号;
响应于所述崩溃级异常信号,对所述目标系统节点中的异常线程进行函数回溯,得到所述异常线程中调用函数对应的函数调用者地址;
基于所述函数调用者地址确定函数调用堆栈,所述函数调用堆栈包括文件名、函数名和源代码行数;
确定所述调用函数的传参数和临时变量值;
基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件;
其中,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件,包括:
获取所述目标系统节点的崩溃异常产生时刻;
获取所述函数调用堆栈中第一个写入的所述函数调用者地址对应的所述调用函数的目标函数名;
获取设置的常数值;
对于所述目标函数名中的每个目标字符,将所述目标字符转换为第一数值,通过第二运算公式,基于所述常数值、所述第一数值及所述目标字符的前一字符的目标数值,确定所述目标字符的目标数值;
将所述目标函数名中的每个所述目标字符替换为对应的所述目标数值,得到目标数字;
基于所述目标数字生成所述目标系统节点的核心转储标识;
基于所述崩溃异常产生时刻、所述核心转储标识、所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的所述目标核心转储文件;
所述第二运算公式包括:
其中,表示所述目标字符的所述目标数值;/>表示所述目标字符的前一字符的所述目标数值;/>表示所述目标函数名中的第/>个所述目标字符;/>表示所述第一数值;/>、/>表示所述常数值;/>表示求余运算;且第一个所述目标字符的前一字符的所述目标数值为0。
2.根据权利要求1所述的方法,其特征在于,所述对所述目标系统节点中的异常线程进行函数回溯,得到所述异常线程中调用函数对应的函数调用者地址,包括:
确定函数调用回溯层数值;
将回溯函数和所述异常线程放置在同一线程中;
记录所述回溯函数的第一个临时变量地址;
基于第一个所述临时变量地址,计算所述回溯函数对应的EBP地址作为当前EBP地址;
基于当前EBP地址计算对应的所述函数调用者地址;
通过当前EBP地址,获取上一级调用者的EBP地址作为最新的当前EBP地址;
返回执行所述基于当前EBP地址计算对应的所述函数调用者地址及之后的步骤,直至所述上一级调用者的EBP地址为空或回溯次数达到所述函数调用回溯层数值。
3.根据权利要求2所述的方法,其特征在于,所述基于第一个所述临时变量地址,计算所述回溯函数对应的EBP地址作为当前EBP地址,包括:
通过第一运算公式,基于第一个所述临时变量地址,计算所述回溯函数对应的EBP地址作为当前EBP地址;
所述第一运算公式包括:
其中,表示所述回溯函数对应的EBP地址;/>表示第一个所述临时变量地址;/>表示第一个所述临时变量地址与所述回溯函数对应的EBP地址间的偏移值。
4.根据权利要求3所述的方法,其特征在于,所述基于当前EBP地址计算对应的所述函数调用者地址,包括:
将当前EBP地址的值加1得到所述函数调用者地址。
5.根据权利要求2所述的方法,其特征在于,所述基于所述函数调用者地址确定函数调用堆栈,包括:
根据可执行映像,将所述函数调用者地址转换为对应的所述函数调用堆栈;
所述确定所述调用函数的传参数和临时变量值,包括:
根据所述函数调用者地址对应的所述文件名、所述函数名、所述源代码行数、当前EBP地址,确定所述调用函数的所述传参数和所述临时变量值;
其中,所述可执行映像中包含源代码行号与编译后的机器代码地址之间的行数、地址对应关系表。
6.根据权利要求1所述的方法,其特征在于,所述将所述目标字符转换为第一数值,包括:
对所述目标字符进行ASCII转换,得到所述第一数值。
7.根据权利要求1所述的方法,其特征在于,所述基于所述目标数字生成所述目标系统节点的所述核心转储标识,包括:
获取所述函数调用堆栈中第一个写入的所述函数调用者地址对应的所述调用函数的第一源代码行数;
获取所述函数调用堆栈中中间写入的所述函数调用者地址对应的所述调用函数的第二源代码行数;
将所述目标数字、所述第一源代码行数和所述第二源代码行数的和值作为所述核心转储标识。
8.根据权利要求1所述的方法,其特征在于,所述基于所述崩溃异常产生时刻、所述核心转储标识、所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的所述目标核心转储文件之后,还包括:
判断预设记录表中是否已有所述核心转储标识;
若所述预设记录表中已有所述核心转储标识,则在所述预设记录表中对应记录所述崩溃异常产生时刻;
若所述预设记录表中未有所述核心转储标识,则在所述预设记录表中存储所述核心转储标识及所述崩溃异常产生时刻。
9.根据权利要求1所述的方法,其特征在于,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件之后,还包括:
确定所述目标系统节点连续两次崩溃异常的时间差值;
若所述时间差值小于预设阈值,则上报第一级崩溃警告;
若所述时间差值大于等于所述预设阈值,则上报第二级崩溃警告;
其中,所述第一级崩溃警告的严重级高于所述第二级崩溃警告的严重级。
10.根据权利要求1所述的方法,其特征在于,所述获取所述云计算分布式系统中的目标系统节点发出的崩溃级异常信号,包括:
获取所述云计算分布式系统中的所述目标系统节点发出的所述崩溃级异常信号,所述崩溃级异常信号包括无效内存引用信号、中止信号、总线错误信号、非法指令信号、算术运算异常信号。
11.根据权利要求1所述的方法,其特征在于,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件之后,还包括:
将所述目标核心转储文件存储于所述云计算分布式系统的主系统节点中。
12.根据权利要求1所述的方法,其特征在于,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件之后,还包括:
对所述目标核心转储文件进行精简、去重操作。
13.根据权利要求1所述的方法,其特征在于,所述基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件之后,还包括:
对所述目标核心转储文件进行加密。
14.一种核心转储系统,其特征在于,应用于云计算分布式系统,包括:
异常捕获模块,用于获取所述云计算分布式系统中的目标系统节点发出的崩溃级异常信号;
函数调用回溯模块,用于响应于所述崩溃级异常信号,对所述目标系统节点中的异常线程进行函数回溯,得到所述异常线程中调用函数对应的函数调用者地址;基于所述函数调用者地址确定函数调用堆栈,所述函数调用堆栈包括文件名、函数名和源代码行数;确定所述调用函数的传参数和临时变量值;
转储文件生成模块,用于基于所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的目标核心转储文件;
其中,所述转储文件生成模块用于:获取所述目标系统节点的崩溃异常产生时刻;获取所述函数调用堆栈中第一个写入的所述函数调用者地址对应的所述调用函数的目标函数名;获取设置的常数值;对于所述目标函数名中的每个目标字符,将所述目标字符转换为第一数值,通过第二运算公式,基于所述常数值、所述第一数值及所述目标字符的前一字符的目标数值,确定所述目标字符的目标数值;将所述目标函数名中的每个所述目标字符替换为对应的所述目标数值,得到目标数字;基于所述目标数字生成所述目标系统节点的核心转储标识;基于所述崩溃异常产生时刻、所述核心转储标识、所述函数调用堆栈、所述传参数和所述临时变量值,生成所述目标系统节点的所述目标核心转储文件;
所述第二运算公式包括:
其中,表示所述目标字符的所述目标数值;/>表示所述目标字符的前一字符的所述目标数值;/>表示所述目标函数名中的第/>个所述目标字符;/>表示所述第一数值;/>、/>表示所述常数值;/>表示求余运算;且第一个所述目标字符的前一字符的所述目标数值为0。
15.一种核心转储设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至13任一项所述核心转储方法的步骤。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至13任一项所述核心转储方法的步骤。
CN202310680052.7A 2023-06-09 2023-06-09 一种核心转储方法、系统、设备及计算机可读存储介质 Active CN116431376B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310680052.7A CN116431376B (zh) 2023-06-09 2023-06-09 一种核心转储方法、系统、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310680052.7A CN116431376B (zh) 2023-06-09 2023-06-09 一种核心转储方法、系统、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN116431376A CN116431376A (zh) 2023-07-14
CN116431376B true CN116431376B (zh) 2023-09-05

Family

ID=87085783

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310680052.7A Active CN116431376B (zh) 2023-06-09 2023-06-09 一种核心转储方法、系统、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN116431376B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法
CN110262918A (zh) * 2019-06-19 2019-09-20 深圳市网心科技有限公司 进程崩溃分析方法及装置、分布式设备及存储介质
CN114138531A (zh) * 2021-09-23 2022-03-04 统信软件技术有限公司 一种核心转储文件的生成方法、计算设备及存储介质
CN114328073A (zh) * 2020-10-10 2022-04-12 深圳市腾讯计算机系统有限公司 线程监控方法、装置、设备及存储介质
CN115509790A (zh) * 2022-10-08 2022-12-23 浙江大华技术股份有限公司 异常信息的获取方法、装置、存储介质及电子装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111556280A (zh) * 2019-02-12 2020-08-18 昆山纬绩资通有限公司 设备状态监控方法与系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法
CN110262918A (zh) * 2019-06-19 2019-09-20 深圳市网心科技有限公司 进程崩溃分析方法及装置、分布式设备及存储介质
CN114328073A (zh) * 2020-10-10 2022-04-12 深圳市腾讯计算机系统有限公司 线程监控方法、装置、设备及存储介质
CN114138531A (zh) * 2021-09-23 2022-03-04 统信软件技术有限公司 一种核心转储文件的生成方法、计算设备及存储介质
CN115509790A (zh) * 2022-10-08 2022-12-23 浙江大华技术股份有限公司 异常信息的获取方法、装置、存储介质及电子装置

Also Published As

Publication number Publication date
CN116431376A (zh) 2023-07-14

Similar Documents

Publication Publication Date Title
CN108900353B (zh) 故障告警方法及终端设备
CN103164523A (zh) 数据一致性检查方法、装置及系统
CN109150642B (zh) 应用内存错误检测方法、检测装置及存储介质
CN107608609B (zh) 一种事件对象发送方法与装置
JP6987340B2 (ja) データベースのデータ変更要求処理方法及び装置
CN108874441B (zh) 一种板卡配置方法、装置、服务器和存储介质
CN114282071A (zh) 基于图数据库的请求处理方法、装置、设备及存储介质
CN111399857A (zh) 一种fru数据烧录方法、系统、设备及计算机存储介质
CN111694703A (zh) 缓存区管理方法、装置和计算机设备
CN116431376B (zh) 一种核心转储方法、系统、设备及计算机可读存储介质
CN112052157B (zh) 测试报文的构造方法、装置及系统
CN111046393B (zh) 漏洞信息上传方法、装置、终端设备及存储介质
CN112559335A (zh) 测试方法、装置、设备和存储介质
CN108108258B (zh) 一种内存泄露的修复方法和装置
CN115098297B (zh) 一种云原生存储数据卷的一致性快照生成方法和系统
CN111367934A (zh) 数据一致性的检验方法、装置、服务器和介质
CN111159298A (zh) 业务请求处理方法、装置、电子设备及存储介质
CN111435323A (zh) 信息的传输方法、装置、终端、服务器及存储介质
CN115113798B (zh) 一种应用于分布式存储的数据迁移方法、系统及设备
CN109634636B (zh) 应用处理方法、装置、设备和介质
JP2017045106A (ja) 情報処理装置及び情報処理プログラム
CN111680112B (zh) 一种数据分析方法及装置
CN117034210B (zh) 一种事件画像的生成方法、装置、存储介质及电子设备
CN111726373B (zh) 通信链路构建方法、装置和设备
CN113836154A (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