CN117149667B - 异常数据获取方法、装置、设备和计算机可读存储介质 - Google Patents
异常数据获取方法、装置、设备和计算机可读存储介质 Download PDFInfo
- Publication number
- CN117149667B CN117149667B CN202311430335.2A CN202311430335A CN117149667B CN 117149667 B CN117149667 B CN 117149667B CN 202311430335 A CN202311430335 A CN 202311430335A CN 117149667 B CN117149667 B CN 117149667B
- Authority
- CN
- China
- Prior art keywords
- thread
- abnormal data
- data
- file
- exception
- 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
- 230000002159 abnormal effect Effects 0.000 title claims abstract description 163
- 238000000034 method Methods 0.000 title claims abstract description 73
- 230000005856 abnormality Effects 0.000 claims abstract description 28
- 238000013481 data capture Methods 0.000 claims description 53
- 230000006870 function Effects 0.000 claims description 31
- 238000012545 processing Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 14
- 238000004891 communication Methods 0.000 claims description 11
- 230000015556 catabolic process Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 4
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000007488 abnormal function Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/366—Software debugging using diagnostics
Abstract
本申请实施例公开了一种异常数据获取方法、装置、设备和计算机可读存储介质,所述异常数据获取方法包括:基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据;将所述异常数据写入文件中,得到异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。如此,可以快速捕获表征执行程序在运行崩溃时存在异常的函数的调用情况的异常数据,帮助开发人员快速定位异常、分清职责归属。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及一种异常数据获取方法、装置、设备和计算机可读存储介质。
背景技术
发行版本下的软件在运行崩溃时,只能通过对软件对应的源码进行分析来定位异常所在,耗时长且处理效率低。
发明内容
为解决上述技术问题,本申请实施例期望提供一种异常数据获取方法、装置、设备和计算机可读存储介质,解决了相关技术中的耗时长且处理效率低的问题。
本申请的技术方案是这样实现的:
一种异常数据获取方法,所述异常数据获取方法包括:
基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据;将所述异常数据写入文件中,得到异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。
可以理解,通过目标获取策略,可以快速捕获表征执行程序在运行崩溃时存在异常的函数的调用情况的异常数据;将异常数据写入文件中,可以帮助开发人员快速定位异常、分清职责归属。
在一些实施例中,所述异常数据获取方法还包括:确定所述目标获取策略;将所述目标获取策略融入业务软件对应的初始程序;调整所述初始程序的工程属性,得到所述执行程序,以使所述执行程序在运行崩溃时产生运行崩溃文件。
可以理解,调整初始程序的工程属性,可以使发行版本下的执行程序在运行崩溃时产生运行崩溃文件,以便进行异常捕获;将预先设置好的目标获取策略融入初始程序,可以在捕获异常后,定位并捕获包括调用堆栈数据的异常数据。
在一些实施例中,所述确定所述目标获取策略,包括:确定所述执行程序对应的线程类型;确定不同的所述线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口;所述异常捕获逻辑用于检测所述执行程序是否运行崩溃;所述写入接口用于将捕获的异常数据写入文件中;基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定所述目标获取策略。
可以理解,数据捕获逻辑是针对不同线程类型设置的,那么基于不同的线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口确定目标获取策略,可以通过目标获取策略针对性地对不同类型的线程进行异常数据的捕获,提高异常数据捕获的准确性。
在一些实施例中,所述线程类型包括第一类线程和第二类线程;所述基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定所述目标获取策略,包括:基于所述第一类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第一类线程对应的第一捕获策略;基于所述第二类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第二类线程对应的第二捕获策略;基于所述第一捕获策略、所述第二捕获策略和所述写入接口,确定所述目标获取策略。
可以理解,将第一类线程对应的第一捕获策略、第二类线程对应的第二捕获策略和写入接口进行融合,得到目标获取策略;如此,可以实现对不同类型的线程进行异常捕获、异常数据的定位和捕获、以及将捕获的异常数据写入文件中。
在一些实施例中,所述第二类线程包括第一线程和第二线程;所述第一线程包含于所述执行程序对应的线程池,所述第二线程不包含于所述线程池;所述基于所述第二类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第二类线程对应的第二捕获策略,包括:将所述第一线程的数据捕获逻辑确定为第一数据捕获逻辑,并基于所述第一数据捕获逻辑和所述异常捕获逻辑,确定所述第一线程的捕获策略;将所述第二线程的数据捕获逻辑确定为第二数据捕获逻辑,并基于所述第二数据捕获逻辑和所述异常捕获逻辑,确定所述第二线程的捕获策略。
可以理解,针对同一类中的不同线程设置不同的数据捕获逻辑,可以兼容同一类线程所在的不同场景,提高异常捕获的适用性。
在一些实施例中,所述基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据,包括:基于所述目标获取策略中的异常捕获逻辑,确定所述执行程序在运行崩溃时产生的运行崩溃文件;基于所述运行崩溃文件和所述目标获取策略,捕获所述异常数据。
可以理解,先进行异常捕获,然后确定异常的线程对应的捕获逻辑,以捕获异常的线程的调用堆栈数据;如此,可以打印异常的线程的调用堆栈数据。
在一些实施例中,所述执行程序对应的线程类型包括第一类线程和第二类线程;所述基于所述运行崩溃文件和所述目标获取策略,捕获所述异常数据,包括:在所述运行崩溃文件表征所述执行程序中的第一类线程异常的情况下,基于所述目标获取策略中的第一捕获策略,捕获所述异常数据;在所述运行崩溃文件表征所述执行程序中的第二类线程异常的情况下,基于所述目标获取策略中的第二捕获策略,捕获所述异常数据。
可以理解,第一类线程异常时,采用第一捕获策略打印调用堆栈数据;第二类线程异常时,采用第二捕获策略打印调用堆栈数据;如此,针对不同类的线程,采用不同的捕获策略,可以提高异常捕获的准确性。
在一些实施例中,所述第二类线程包括第一线程和第二线程;所述第一线程包含于所述执行程序对应的线程池,所述第二线程不包含于所述线程池;所述在所述运行崩溃文件表征所述执行程序中的第二类线程异常的情况下,基于所述目标获取策略中的第二捕获策略,捕获所述异常数据,包括:在所述运行崩溃文件表征所述执行程序中的第一线程异常的情况下,基于所述第二捕获策略中的第一线程的捕获策略,捕获所述异常数据;在所述运行崩溃文件表征所述执行程序中的第二线程异常的情况下,基于所述第二捕获策略中的第二线程的捕获策略,捕获所述异常数据。
可以理解,针对同一类中的不同线程,采用不同的捕获策略,可以提高异常捕获的准确性。
在一些实施例中,所述异常数据包括调用堆栈数据;所述将所述异常数据写入文件中,得到所述异常数据文件,包括:基于所述目标获取策略中的写入接口,将所述调用堆栈数据写入文件中,得到所述异常数据文件。
可以理解,将调用堆栈数据写入到文件中,便于帮助开发人员快速定位异常、分清职责归属。
在一些实施例中,在所述执行程序的崩溃之处在所述执行程序对应的算法的情况下,所述异常数据文件中的第一行记录有所述算法的代码路径、所述异常数据文件中的除所述第一行之外的其它行记录有所述执行程序对应的软件的代码路径;在所述执行程序的崩溃之处在所述执行程序对应的软件的情况下,所述异常数据文件中的所有行记录有所述软件的代码路径。
可以理解,针对崩溃之处的不同,会得到包含不同数据的异常数据文件,以使软件开发人员、算法人员以及其他人员,清晰准确地分清职责归属。
在一些实施例中,所述调整所述初始程序的工程属性,包括:将所述工程属性中的调试信息格式设置为程序数据库;或者,将所述工程属性中的生成调试信息选项设置为生成调试信息。
可以理解,调整初始程序的工程属性,使发行版本下的执行程序在运行崩溃时产生运行崩溃文件,以便于在崩溃时可以通过Windows API函数查找到。
另一方面,本申请实施例提供一种异常数据获取装置,所述异常数据获取装置包括:处理模块,用于基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据;写入模块,用于将所述异常数据写入文件中,得到所述异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。
一种计算机设备,所述设备包括:处理器、存储器和通信总线;
所述通信总线用于实现所述处理器和所述存储器之间的通信连接;
所述处理器用于执行所述存储器中的计算机程序,以实现上述方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述方法的步骤。
本申请的实施例所提供的异常数据获取方法、装置、设备和计算机可读存储介质,可以基于预先配置于执行程序中的目标获取策略,捕获执行程序在运行崩溃时产生的异常数据;将异常数据写入文件中,得到异常数据文件;其中,异常数据文件表征执行程序在运行时存在异常的函数的调用情况。这样,通过目标获取策略,可以快速捕获表征执行程序在运行崩溃时存在异常的函数的调用情况的异常数据;将异常数据写入文件中,可以帮助开发人员快速定位异常、分清职责归属。
附图说明
图1为本申请实施例提供的一种异常数据获取方法的流程示意图一;
图2为本申请实施例提供的一种异常数据获取方法的流程示意图二;
图3为本申请实施例提供的一种确定异常数据获取方法中的目标获取策略的流程示意图;
图4为本申请实施例提供的一种异常数据获取装置的结构示意图;
图5为本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
应理解,说明书通篇中提到的“本申请实施例”或“前述实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“本申请实施例中”或“在前述实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在未做特殊说明的情况下,电子设备执行本申请实施例中的任一步骤,可以是电子设备的处理器执行该步骤。还值得注意的是,本申请实施例并不限定电子设备执行下述步骤的先后顺序。另外,不同实施例中对数据进行处理所采用的方式可以是相同的方法或不同的方法。还需说明的是,本申请实施例中的任一步骤是电子设备可以独立执行的,即电子设备执行下述实施例中的任一步骤时,可以不依赖于其它步骤的执行。
应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。
本申请实施例提供一种异常数据获取方法,该异常数据获取方法可以应用于计算机设备的处理器中,参照图1所示,该方法包括如下步骤101至步骤102:
步骤101、基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据。
这里,执行程序可以为发行版本下的业务软件的程序;示例性地,执行程序可以为发行版本下的业务软件的代码。业务软件可以为用于处理业务的软件;示例性地,业务软件可以为基于C++实现的软件应用程序(Application,APP)。目标获取策略用于进行异常定位,以及进行执行程序在运行崩溃时的函数调用情况的定位和捕获,并将其以文件的形式进行体现。异常数据用于表征执行程序在运行时存在异常的函数的调用情况;示例性地,异常数据可以为调用堆栈数据。
在一种可行的实现方式中,可以先采用目标获取策略,确定执行程序在业务处理过程中是否运行崩溃;在确定执行程序在业务处理过程中运行崩溃的情况下,采用目标获取策略,进行异常的函数的调用情况的定位和捕获,将捕获的数据作为异常数据。
步骤102、将所述异常数据写入文件中,得到异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。
这里,异常数据文件用于表征执行程序在运行时存在异常的函数的调用情况;示例性地,异常数据文件可以包括但不限于:调用堆栈文件和dump文件。其中,调用堆栈文件可以包括调用堆栈中的所有数据,如:可以包括执行程序对应的整个代码流中存在异常的函数、异常函数所在的行数、异常函数名称、以及异常函数方法等;dump文件可以包括线程数据、模块数据、以及异常数据等。
在一种可行的实现方式中,可以将异常数据文件写入文本格式为txt的文件中,得到异常数据文件。
需要说明的是,发行版本下无法准确定位异常所在;因此,为准确定位异常,本申请实施例专门设置了目标获取策略,以捕获表征执行程序在运行崩溃时存在异常的函数的调用情况的异常数据;并且,为便于帮助开发人员快速定位异常、分清职责归属,将异常数据写入文件中。
可以理解,通过目标获取策略,可以快速捕获表征执行程序在运行崩溃时存在异常的函数的调用情况的异常数据;将异常数据写入文件中,可以帮助开发人员快速定位异常、分清职责归属。
本申请实施例提供一种异常数据获取方法,该异常数据获取方法可以应用于计算机设备的处理器中,参照图2所示,该方法包括如下步骤201至步骤205:
步骤201、确定所述目标获取策略。
在一种可行的实现方式中,可以根据异常捕获逻辑、数据捕获逻辑和写入接口,确定目标获取策略。其中,异常捕获逻辑用于进行异常捕获;数据捕获逻辑用于进行异常数据(调用堆栈数据)的定位和捕获;写入接口用于将捕获的异常数据写入文件中。
步骤202、将所述目标获取策略融入业务软件对应的初始程序。
这里,初始程序可以指的是准备发行的业务软件的代码。
一般,发行版本下的执行代码不具有捕获调用堆栈数据的能力。因此,可以将设置好的目标获取策略,融入发行版本下的代码,以得到具有捕获调用堆栈能力的初始程序。
步骤203、调整所述初始程序的工程属性,得到所述执行程序,以使所述执行程序在运行崩溃时产生运行崩溃文件。
这里,工程属性指的可以是初始程序的各项属性;示例性地,工程属性可以包括调试信息格式和生成调试信息选项,还可以包括针对链接器的属性、针对清单工具的属性、针对事件的属性、以及自定义属性等。运行崩溃文件用于表征执行代码的路径、以及基础数据;运行崩溃文件可以包括函数名、变量名、源代码文件名、行号等。示例性地,运行崩溃文件可以为程序数据库文件(Program Database File,PDB文件)。
调整初始程序的工程属性,是为了使发行版本下的执行程序在运行崩溃时产生运行崩溃文件(PDB文件),以便于在崩溃时可以通过Windows API函数查找到。
在一种实施方式中,步骤203中的“调整所述初始程序的工程属性”的具体实现方式可以为:将所述工程属性中的调试信息格式设置为程序数据库;或者,将所述工程属性中的生成调试信息选项设置为生成调试信息。
在一种可行的实现方式中,可以将工程属性中的调试信息格式设置为程序数据库(/Zi);或者,还可以将工程属性中的生成调试信息选项设置为生成调试信息(/DEBUG)。
可以理解,调整初始程序的工程属性,可以使发行版本下的执行程序在运行崩溃时产生运行崩溃文件,以便于在崩溃时可以通过Windows API函数查找到。
步骤204、基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据。
步骤205、将所述异常数据写入文件中,得到异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。
这里,上述步骤204至步骤205分别对应于前述步骤101至步骤102,在实施时可以参照前述步骤101至步骤102的具体实施方式。
可以理解,调整初始程序的工程属性,可以使发行版本下的执行程序在运行崩溃时产生运行崩溃文件,以便进行异常捕获;将预先设置好的目标获取策略融入初始程序,可以在捕获异常后,定位并捕获调用堆栈数据。
在一些实施例中,上述步骤201可以通过如下步骤2011至步骤2013来实现:
步骤2011、确定所述执行程序对应的线程类型。
这里,线程类型可以包括第一类线程和第二类线程;示例性地,第一类线程指的可以是主线程,第二类线程指的可以是子线程。进一步地,可以根据场景的不同,将第二类线程划分为第一线程和第二线程;示例性地,可以根据子线程与线程池之间的关系,将第二类划分为第一线程和第二线程,第一线程指的可以是包含于业务软件的线程池的子线程,第二线程指的可以是不包含于业务软件的线程池的子线程。
步骤2012、确定不同的所述线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口;所述异常捕获逻辑用于检测所述执行程序是否运行崩溃;所述写入接口用于将捕获的异常数据写入文件中。
这里,数据捕获逻辑用于在业务崩溃时打印调用堆栈数据。不同类型的线程存在不同的数据处理逻辑,那么针对不同类型的线程设置不同的数据捕获逻辑,这样针对性进行异常数据的捕获,可以提高异常数据捕获的准确性。异常捕获逻辑用于检测执行程序是否运行崩溃。写入接口用于将捕获的异常数据写入文件中。
在一种可行的实现方式中,可以分别确定不同线程类型对应的数据捕获策略;确定不同线程类型对应的同一异常捕获逻辑;确定不同线程类型对应的同一写入接口。示例性地,异常捕获逻辑可以为CatlCaptureDump函数,写入接口可以为CatlMiniDump。
步骤2013、基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定所述目标获取策略。
在一种可行的实现方式中,可以将不同的线程类型对应的数据捕获逻辑与异常捕获逻辑进行融合,得到不同线程类型对应的捕获逻辑;将不同线程类型对应的捕获逻辑与写入接口进行融合,得到目标获取策略。
将不同的线程类型对应的数据捕获逻辑与异常捕获逻辑进行融合,得到不同线程类型对应的捕获逻辑,是为了使不同线程类型对应的捕获逻辑不仅包含数据捕获逻辑的功能,还包括异常捕获逻辑的功能;如此,在不同线程类型出现异常时,可以通过不同线程类型的对应的捕获逻辑进行异常捕获、以及异常数据的定位和捕获。将不同线程类型对应的捕获逻辑与写入接口进行融合,是为了在通过不同线程类型对应的捕获逻辑捕获到异常数据之后,可以调用写入接口,将异常数据写入文件中,得到异常数据文件。
可以理解,数据捕获逻辑是针对不同线程类型设置的,那么基于不同的线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口确定目标获取策略,可以通过目标获取策略针对性地对不同类型的线程进行异常数据的捕获,提高异常数据捕获的准确性。
在一些实施例中,在线程类型包括第一类线程和第二类线程的情况下,步骤2013可以通过如下步骤2013a至步骤2013c来实现:
步骤2013a、基于所述第一类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第一类线程对应的第一捕获策略。
这里,第一捕获策略包括执行程序在业务处理过程中运行崩溃的异常捕获、以及第一类线程的异常数据的定位和捕获。
在一种可行的实现方式中,第一类线程对应的数据捕获逻辑可以为Qt(Qt公司开发的应用程序开发框架)中的Qapplication,异常捕获逻辑可以为CatlCaptureDump;此时,可以基于Qapplication和CatlCaptureDump确定第一捕获策略。其中,CatlCaptureDump是基于Windows的__try{}__except{}实现异常的捕获。
步骤2013b、基于所述第二类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第二类线程对应的第二捕获策略。
这里,第二捕获策略包括执行程序在业务处理过程中运行崩溃的异常捕获,以及第二类线程的异常数据的定位和捕获。
在一种可行的实现方式中,第二类线程对应的数据捕获逻辑可以为Qt中的Qrunnable或QThread,异常捕获逻辑可以为CatlCaptureDump;此时,可以基于CatlCaptureDump和Qrunnable确定第二捕获策略、或基于CatlCaptureDump和QThread确定第二捕获策略。
步骤2013c、基于所述第一捕获策略、所述第二捕获策略和所述写入接口,确定所述目标获取策略。
在一种可行的实现方式中,由于第一捕获策略和第二捕获策略中均包括异常捕获逻辑,因此可以通过异常捕获逻辑,将第一捕获策略、第二捕获策略和写入接口进行融合,得到目标获取策略。
可以理解,第一捕获策略和第二捕获策略中均包括异常捕获逻辑,可以通过异常捕获逻辑,将第一类线程对应的第一捕获策略、第二类线程对应的第二捕获策略和写入接口进行融合,得到目标获取策略;如此,可以实现对不同类型的线程进行异常捕获、异常数据的定位和捕获、以及将捕获的异常数据写入文件中。
在一些实施例中,第二类线程包括第一线程和第二线程;第一线程包含于执行程序对应的线程池,第二线程不包含于线程池;这种情况下,步骤2013b可以通过如下步骤A至步骤B来实现:
步骤A、将所述第一线程的数据捕获逻辑确定为第一数据捕获逻辑,并基于所述第一数据捕获逻辑和所述异常捕获逻辑,确定所述第一线程的捕获策略。
这里,第一线程的数据捕获逻辑可以为Qt中的Qrunnable。此时,可以基于Qrunnable和CatlCaptureDump确定第一线程的捕获策略;第一线程的捕获策略可以为CatlRunnable。
步骤B、将所述第二线程的数据捕获逻辑确定为第二数据捕获逻辑,并基于所述第二数据捕获逻辑和所述异常捕获逻辑,确定所述第二线程的捕获策略。
这里,第二线程的数据捕获逻辑可以为Qt中的Qrunnable。此时,可以基于QThread和CatlCaptureDump确定第二线程的捕获策略;第二线程的捕获策略可以为CatlThread。
实现时,如图3所示,可以采用Qt开发业务软件,基于Qthread35和CatlCaptureDump36确定CatlThread32,将使用Qthread35的均替换为CatlThread32,以在业务软件运行崩溃时打印不包含于线程池中的子线程的调用堆栈数据(异常数据)。基于Qrunnable37和CatlCaptureDump36确定CatlRunnable33,将使用Qrunnable37的均替换为CatlRunnable33,以在业务软件运行崩溃时打印包含于线程池中的子线程的调用堆栈数据。基于Qapplication34和CatlCaptureDump36确定CatlApplication31,将使用Qapplication34的均替换为CatlApplication31,以在业务软件运行崩溃时打印主线程的调用堆栈数据。通过CatlCaptureDump36将CatlThread32、CatlRunnable33、CatlApplication31和CatlMiniDump38融合起来得到目标获取策略,以在捕获调用堆栈数据后,通过调用CatlMiniDump38,将捕获的调用堆栈数据写入文件中。示例性地,在业务软件的界面崩溃时,可以采用目标获取策略中的CatlApplication31打印调用堆栈数据;在诸如H5(第五代超文本标记语言,Hyper Text Mark-up Language5)刷新异常等业务逻辑崩溃时,可以采用CatlThread32打印调用堆栈数据;进一步地,为解决线程卡的问题,设置了线程池,那么在业务逻辑崩溃时,可以采用CatlRunnable33打印调用堆栈数据。
需要说明的是,如果业务软件中没有设置线程池,那么可以基于CatlApplication31、CatlThread32和CatlMiniDump38确定目标获取策略;如果业务软件中设置有线程池,且所有子线程均包含于线程池中,那么可以基于CatlApplication31、CatlRunnable33和CatlMiniDump38确定目标获取策略;如果业务软件中设置有线程池,且不是所有的子线程均包含于线程池中,那么可以基于CatlApplication31、CatlRunnable33、CatlThread32和CatlMiniDump38确定目标获取策略。
可以理解,针对同一类中的线程设置不同的数据捕获逻辑,可以兼容同一类线程所在的不同场景,提高异常数据捕获的适用性。
在一些实施例中,上述步骤204可以通过如下步骤2041至步骤2042来实现:
步骤2041、基于所述目标获取策略中的异常捕获逻辑,确定所述执行程序在运行崩溃时产生的运行崩溃文件。
在一种可行的实现方式中,可以基于通过CatlCaptureDump(异常捕获逻辑),采用Windows的__try{}__except{}进行异常捕获,得到pdb文件(运行崩溃文件)。
步骤2042、基于所述运行崩溃文件和所述目标获取策略,捕获所述异常数据。
在一种可行的实现方式中,可以基于运行崩溃文件确定异常线程的线程类型;从目标获取策略中确定该异常的线程对应的捕获策略,以捕获异常的线程的调用堆栈数据(异常数据)。
可以理解,先进行异常捕获,然后确定异常的线程对应的捕获逻辑,以捕获异常的线程的调用堆栈数据;如此,可以打印异常的线程的调用堆栈数据。
在一些实施例中,上述步骤2042可以通过如下步骤2042a至步骤2042b来实现:
步骤2042a、在所述运行崩溃文件表征所述执行程序中的第一类线程异常的情况下,基于所述目标获取策略中的第一捕获策略,捕获所述异常数据。
在一种可行的实现方式中,在pdb文件表征主线程异常的情况下,基于CatlApplication,捕获调用堆栈数据。
步骤2042b、在所述运行崩溃文件表征所述执行程序中的第二类线程异常的情况下,基于所述目标获取策略中的第二捕获策略,捕获所述异常数据。
在一种实施方式中,第二类线程包括第一线程和第二线程;第一线程包含于执行程序对应的线程池,第二线程不包含于线程池;步骤2042b的具体实现方式可以为:在所述运行崩溃文件表征所述执行程序中的第一线程异常的情况下,基于所述第二捕获策略中的第一线程的捕获策略,捕获所述异常数据;在所述运行崩溃文件表征所述执行程序中的第二线程的情况下,基于所述第二捕获策略中的第二线程的捕获策略,捕获所述异常数据。
在一种可行的实现方式中,在pdb文件表征不包含于线程池中的子线程异常的情况下,基于CatlThread,捕获调用堆栈数据;进一步地,在pdb文件表征线程池中的子线程异常的情况下,基CatlRunnable,捕获调用堆栈数据。
可以理解,第一类线程异常时,采用第一捕获策略打印调用堆栈数据;第二类线程异常时,采用第二捕获策略打印调用堆栈数据;如此,针对不同的线程,采用不同的捕获策略,可以提高异常捕获的准确性。
在一些实施例中,上述步骤205的具体实现方式可以为:基于所述目标获取策略中的写入接口,将所述调用堆栈数据写入文件中,得到所述异常数据文件。
这里,写入接口用于将捕获的异常数据写入文件中;示例性地,写入接口可以为CatlMiniDump。
在一种可行的实现方式中,可以通过目标获取策略中的CatlMiniDump,将异常数据文件写入txt文件中,得到异常数据文件。如此,便于帮助开发人员快速定位异常、分清职责归属。
在一些实施例中,在所述执行程序的崩溃之处在所述执行程序对应的算法的情况下,所述异常数据文件中的第一行记录有所述算法的代码路径、所述异常数据文件中的除所述第一行之外的其它行记录有所述执行程序对应的软件的代码路径;在所述执行程序的崩溃之处在所述执行程序对应的软件的情况下,所述异常数据文件中的所有行记录有所述软件的代码路径。
实现时,如果程序崩溃在算法中,则异常数据文件中的第一行记录的是算法的代码路径,其余行记录的是软件的代码路径。如果程序崩溃在软件中,则异常数据文件中的所有行记录的是软件的代码路径。如此,无论是软件开发人员还是算法人员或是其他人员,通过打开异常数据文件,都可以清晰地分辨崩溃的异常所在,以及异常所属团队。
图4为本申请实施例提供的一种异常数据获取装置的组成结构示意图,如图4所示,异常数据获取装置400包括:处理模块410和写入模块420,其中:
处理模块410,用于基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据;
写入模块420,用于将所述异常数据写入文件中,得到异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。
在一些实施例中,处理模块410具体用于:确定所述目标获取策略;将所述目标获取策略融入业务软件对应的初始程序;调整所述初始程序的工程属性,得到所述执行程序,以使所述执行程序在运行崩溃时产生运行崩溃文件。
在一些实施例中,处理模块410具体用于:确定所述执行程序对应的线程类型;确定不同的所述线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口;所述异常捕获逻辑用于检测所述执行程序是否运行崩溃;所述写入接口用于将捕获的异常数据写入文件中;基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定所述目标获取策略。
在一些实施例中,所述线程类型包括第一类线程和第二类线程;处理模块410具体用于:基于所述第一类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第一类线程对应的第一捕获策略;基于所述第二类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第二类线程对应的第二捕获策略;基于所述第一捕获策略、所述第二捕获策略和所述写入接口,确定所述目标获取策略。
在一些实施例中,所述第二类线程包括第一线程和第二线程;所述第一线程包含于所述执行程序对应的线程池,所述第二线程不包含于所述线程池;处理模块410具体用于:将所述第一线程的数据捕获逻辑确定为第一数据捕获逻辑,并基于所述第一数据捕获逻辑和所述异常捕获逻辑,确定所述第一线程的捕获策略;将所述第二线程的数据捕获逻辑确定为第二数据捕获逻辑,并基于所述第二数据捕获逻辑和所述异常捕获逻辑,确定所述第二线程的捕获策略。
在一些实施例中,处理模块410具体用于:基于所述目标获取策略中的异常捕获逻辑,确定所述执行程序在运行崩溃时产生的运行崩溃文件;基于所述运行崩溃文件和所述目标获取策略,捕获所述异常数据。
在一些实施例中,所述执行程序对应的线程类型包括第一类线程和第二类线程;处理模块410具体用于:在所述运行崩溃文件表征所述执行程序中的第一类线程异常的情况下,基于所述目标获取策略中的第一捕获策略,捕获所述异常数据;在所述运行崩溃文件表征所述执行程序中的第二类线程异常的情况下,基于所述目标获取策略中的第二捕获策略,捕获所述异常数据。
在一些实施例中,所述第二类线程包括第一线程和第二线程;所述第一线程包含于所述执行程序对应的线程池,所述第二线程不包含于所述线程池;处理模块410具体用于:在所述运行崩溃文件表征所述执行程序中的第一线程异常的情况下,基于所述第二捕获策略中的第一线程的捕获策略,捕获所述异常数据;在所述运行崩溃文件表征所述执行程序中的第二线程异常的情况下,基于所述第二捕获策略中的第二类子线程的捕获策略,捕获所述异常数据。
在一些实施例中,所述异常数据包括调用堆栈数据;写入模块420具体用于:基于所述目标获取策略中的写入接口,将所述调用堆栈数据写入到文本格式为txt的文件中,得到所述异常数据文件。
在一些实施例中,在所述执行程序的崩溃之处在所述执行程序对应的算法的情况下,所述异常数据文件中的第一行记录有所述算法的代码路径、所述异常数据文件中的除所述第一行之外的其它行记录有所述执行程序对应的软件的代码路径;在所述执行程序的崩溃之处在所述执行程序对应的软件的情况下,所述异常数据文件中的所有行记录有所述软件的代码路径。
在一些实施例中,处理模块410具体用于:将所述工程属性中的调试信息格式设置为程序数据库;或者,将所述工程属性中的生成调试信息选项设置为生成调试信息。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本申请实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的异常数据获取方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read OnlyMemory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本申请实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述方法中的部分或全部步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图5为本申请实施例中计算机设备的一种硬件实体示意图,如图5所示,该计算机设备500的硬件实体包括:处理器501、通信接口502和存储器503,其中:
处理器501通常控制计算机设备500的总体操作。
通信接口502可以使计算机设备通过网络与其他终端或服务器通信。
存储器503配置为存储由处理器501可执行的指令和应用,还可以缓存待处理器501以及计算机设备500中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器501、通信接口502和存储器503之间可以通过总线504进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (13)
1.一种异常数据获取方法,其特征在于,所述异常数据获取方法包括:
确定执行程序对应的线程类型;
确定不同的所述线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口;所述数据捕获逻辑用于在运行崩溃时打印调用堆栈数据,所述异常捕获逻辑用于检测所述执行程序是否运行崩溃,所述写入接口用于将捕获的异常数据写入文件中;
基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定目标获取策略,并将所述目标获取策略预先配置于执行程序中;
基于所述目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据;
将所述异常数据写入文件中,得到异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。
2.根据权利要求1所述的异常数据获取方法,其特征在于,所述将所述目标获取策略预先配置于执行程序中,包括:
将所述目标获取策略融入业务软件对应的初始程序;
调整所述初始程序的工程属性,得到所述执行程序,以使所述执行程序在运行崩溃时产生运行崩溃文件。
3.根据权利要求1所述的异常数据获取方法,其特征在于,所述线程类型包括第一类线程和第二类线程;
所述基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定所述目标获取策略,包括:
基于所述第一类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第一类线程对应的第一捕获策略;
基于所述第二类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第二类线程对应的第二捕获策略;
基于所述第一捕获策略、所述第二捕获策略和所述写入接口,确定所述目标获取策略。
4.根据权利要求3所述的异常数据获取方法,其特征在于,所述第二类线程包括第一线程和第二线程;所述第一线程包含于所述执行程序对应的线程池,所述第二线程不包含于所述线程池;
所述基于所述第二类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第二类线程对应的第二捕获策略,包括:
将所述第一线程的数据捕获逻辑确定为第一数据捕获逻辑,并基于所述第一数据捕获逻辑和所述异常捕获逻辑,确定所述第一线程的捕获策略;
将所述第二线程的数据捕获逻辑确定为第二数据捕获逻辑,并基于所述第二数据捕获逻辑和所述异常捕获逻辑,确定所述第二线程的捕获策略。
5.根据权利要求1至4中任一项所述的异常数据获取方法,其特征在于,基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据,包括:
基于所述目标获取策略中的异常捕获逻辑,确定所述执行程序在运行崩溃时产生的运行崩溃文件;
基于所述运行崩溃文件和所述目标获取策略,捕获所述异常数据。
6.根据权利要求5所述的异常数据获取方法,其特征在于,所述执行程序对应的线程类型包括第一类线程和第二类线程;
所述基于所述运行崩溃文件和所述目标获取策略,捕获所述异常数据,包括:
在所述运行崩溃文件表征所述执行程序中的第一类线程异常的情况下,基于所述目标获取策略中的第一捕获策略,捕获所述异常数据;
在所述运行崩溃文件表征所述执行程序中的第二类线程异常的情况下,基于所述目标获取策略中的第二捕获策略,捕获所述异常数据。
7.根据权利要求6所述的异常数据获取方法,其特征在于,所述第二类线程包括第一线程和第二线程;所述第一线程包含于所述执行程序对应的线程池,所述第二线程不包含于所述线程池;
所述在所述运行崩溃文件表征所述执行程序中的第二类线程异常的情况下,基于所述目标获取策略中的第二捕获策略,捕获所述异常数据,包括:
在所述运行崩溃文件表征所述执行程序中的第一线程异常的情况下,基于所述第二捕获策略中的第一线程的捕获策略,捕获所述异常数据;
在所述运行崩溃文件表征所述执行程序中的第二线程异常的情况下,基于所述第二捕获策略中的第二线程的捕获策略,捕获所述异常数据。
8.根据权利要求6或7所述的异常数据获取方法,其特征在于,所述异常数据包括调用堆栈数据;
所述将所述异常数据写入文件中,得到所述异常数据文件,包括:
基于所述目标获取策略中的写入接口,将所述调用堆栈数据写入文件中,得到所述异常数据文件。
9.根据权利要求6或7所述的异常数据获取方法,其特征在于,
在所述执行程序的崩溃之处在所述执行程序对应的算法的情况下,所述异常数据文件中的第一行记录有所述算法的代码路径、所述异常数据文件中的除所述第一行之外的其它行记录有所述执行程序对应的软件的代码路径;
在所述执行程序的崩溃之处在所述执行程序对应的软件的情况下,所述异常数据文件中的所有行记录有所述软件的代码路径。
10.根据权利要求2所述的异常数据获取方法,其特征在于,所述调整所述初始程序的工程属性,包括:
将所述工程属性中的调试信息格式设置为程序数据库;或者,
将所述工程属性中的生成调试信息选项设置为生成调试信息。
11.一种异常数据获取装置,其特征在于,所述异常数据获取装置包括:
处理模块,用于确定执行程序对应的线程类型;确定不同的所述线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口;基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定目标获取策略,并将所述目标获取策略预先配置于执行程序中;基于所述目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据;所述数据捕获逻辑用于在运行崩溃时打印调用堆栈数据,所述异常捕获逻辑用于检测所述执行程序是否运行崩溃,所述写入接口用于将捕获的异常数据写入文件中;
写入模块,用于将所述异常数据写入文件中,得到异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。
12.一种计算机设备,其特征在于,所述设备包括:处理器、存储器和通信总线;
所述通信总线用于实现所述处理器和所述存储器之间的通信连接;
所述处理器用于执行所述存储器中的计算机程序,以实现如权利要求1~10任一项所述异常数据获取方法的步骤。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1~10中任一项所述异常数据获取方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311430335.2A CN117149667B (zh) | 2023-10-31 | 2023-10-31 | 异常数据获取方法、装置、设备和计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311430335.2A CN117149667B (zh) | 2023-10-31 | 2023-10-31 | 异常数据获取方法、装置、设备和计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117149667A CN117149667A (zh) | 2023-12-01 |
CN117149667B true CN117149667B (zh) | 2024-04-05 |
Family
ID=88906625
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311430335.2A Active CN117149667B (zh) | 2023-10-31 | 2023-10-31 | 异常数据获取方法、装置、设备和计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149667B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255719A (zh) * | 2018-01-11 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 一种应用程序dump文件获取方法、装置及电子设备 |
CN110032502A (zh) * | 2018-01-11 | 2019-07-19 | 武汉斗鱼网络科技有限公司 | 一种异常处理的方法、装置及电子设备 |
CN111443997A (zh) * | 2020-03-11 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 一种数据异常识别方法及装置 |
CN112181769A (zh) * | 2020-09-28 | 2021-01-05 | 平安普惠企业管理有限公司 | 应用异常数据采集方法、装置、计算机设备及存储介质 |
CN112559235A (zh) * | 2020-12-18 | 2021-03-26 | 惠州Tcl移动通信有限公司 | 一种安卓线程异常处理方法、终端及计算机可读存储介质 |
CN114253810A (zh) * | 2021-12-23 | 2022-03-29 | 北京升明科技有限公司 | 浏览器内核异常监控方法、装置、存储介质及电子设备 |
CN115934404A (zh) * | 2022-12-30 | 2023-04-07 | 龙芯中科(合肥)技术有限公司 | 应用程序的异常处理方法及设备 |
CN116069612A (zh) * | 2021-10-29 | 2023-05-05 | 北京搜狗科技发展有限公司 | 一种异常定位方法、装置和电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109545113B (zh) * | 2018-09-30 | 2022-09-06 | 合肥鑫晟光电科技有限公司 | 一种异常数据处理方法及装置 |
-
2023
- 2023-10-31 CN CN202311430335.2A patent/CN117149667B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255719A (zh) * | 2018-01-11 | 2018-07-06 | 武汉斗鱼网络科技有限公司 | 一种应用程序dump文件获取方法、装置及电子设备 |
CN110032502A (zh) * | 2018-01-11 | 2019-07-19 | 武汉斗鱼网络科技有限公司 | 一种异常处理的方法、装置及电子设备 |
CN111443997A (zh) * | 2020-03-11 | 2020-07-24 | 支付宝(杭州)信息技术有限公司 | 一种数据异常识别方法及装置 |
CN112181769A (zh) * | 2020-09-28 | 2021-01-05 | 平安普惠企业管理有限公司 | 应用异常数据采集方法、装置、计算机设备及存储介质 |
CN112559235A (zh) * | 2020-12-18 | 2021-03-26 | 惠州Tcl移动通信有限公司 | 一种安卓线程异常处理方法、终端及计算机可读存储介质 |
CN116069612A (zh) * | 2021-10-29 | 2023-05-05 | 北京搜狗科技发展有限公司 | 一种异常定位方法、装置和电子设备 |
CN114253810A (zh) * | 2021-12-23 | 2022-03-29 | 北京升明科技有限公司 | 浏览器内核异常监控方法、装置、存储介质及电子设备 |
CN115934404A (zh) * | 2022-12-30 | 2023-04-07 | 龙芯中科(合肥)技术有限公司 | 应用程序的异常处理方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117149667A (zh) | 2023-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109474488B (zh) | 接口测试方法、装置及计算机设备 | |
CN100504792C (zh) | 在用户空间中进行系统调用截取的方法和系统 | |
US9104797B1 (en) | Efficient cloud-based annotation of crash reports | |
US8881296B2 (en) | Marking and obscuring sensitive values in traces | |
CN108038039B (zh) | 记录日志的方法及微服务系统 | |
CN108170465B (zh) | 一种版本信息管理方法、电子设备及可读存储介质 | |
US20090182753A1 (en) | Recording user-driven events withi a computing system | |
CN115016973A (zh) | 一种程序崩溃事件复现方法、装置、设备和介质 | |
CN110134538B (zh) | 快速定位问题日志的方法、装置、介质和电子设备 | |
CN117149667B (zh) | 异常数据获取方法、装置、设备和计算机可读存储介质 | |
CN111552618A (zh) | 一种收集日志的方法及设备 | |
CN112650613B (zh) | 一种错误信息处理方法、装置、电子设备及存储介质 | |
US11630714B2 (en) | Automated crash recovery | |
WO2022121548A1 (zh) | 一种bios错误定位方法、装置、设备及非易失性存储介质 | |
CN115827374A (zh) | 应用日志的管理方法、装置、电子设备及可读存储介质 | |
CN115617564A (zh) | 针对内核异常的处理方法、装置、电子设备及存储介质 | |
CN111367796B (zh) | 应用程序调试方法及装置 | |
CN114610386A (zh) | H5与应用程序的交互方法、装置、设备及存储介质 | |
CN115374074A (zh) | 日志处理方法、装置、存储介质及电子设备 | |
CN117349182A (zh) | 异常处理方法、装置及计算机可读存储介质 | |
CN117171155A (zh) | 数据清理方法、装置、设备及存储介质 | |
JP3309792B2 (ja) | スタックポインタトレース装置、スタックポインタトレース方法及び記録媒体 | |
CN115509879A (zh) | 操作日志生成方法、终端设备及计算机可读存储介质 | |
CN116627687A (zh) | 一种页面文案缺陷确定方法、系统及相关装置 | |
CN117493440A (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 |