异常数据获取方法、装置、设备和计算机可读存储介质与流程

文档序号:36265670发布日期:2023-12-06 08:38阅读:37来源:国知局
异常数据获取方法与流程

本技术涉及计算机,尤其涉及一种异常数据获取方法、装置、设备和计算机可读存储介质。


背景技术:

1、发行版本下的软件在运行崩溃时,只能通过对软件对应的源码进行分析来定位异常所在,耗时长且处理效率低。


技术实现思路

1、为解决上述技术问题,本技术实施例期望提供一种异常数据获取方法、装置、设备和计算机可读存储介质,解决了相关技术中的耗时长且处理效率低的问题。

2、本技术的技术方案是这样实现的:

3、一种异常数据获取方法,所述异常数据获取方法包括:

4、基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据;将所述异常数据写入文件中,得到异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。

5、可以理解,通过目标获取策略,可以快速捕获表征执行程序在运行崩溃时存在异常的函数的调用情况的异常数据;将异常数据写入文件中,可以帮助开发人员快速定位异常、分清职责归属。

6、在一些实施例中,所述异常数据获取方法还包括:确定所述目标获取策略;将所述目标获取策略融入业务软件对应的初始程序;调整所述初始程序的工程属性,得到所述执行程序,以使所述执行程序在运行崩溃时产生运行崩溃文件。

7、可以理解,调整初始程序的工程属性,可以使发行版本下的执行程序在运行崩溃时产生运行崩溃文件,以便进行异常捕获;将预先设置好的目标获取策略融入初始程序,可以在捕获异常后,定位并捕获包括调用堆栈数据的异常数据。

8、在一些实施例中,所述确定所述目标获取策略,包括:确定所述执行程序对应的线程类型;确定不同的所述线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口;所述异常捕获逻辑用于检测所述执行程序是否运行崩溃;所述写入接口用于将捕获的异常数据写入文件中;基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定所述目标获取策略。

9、可以理解,数据捕获逻辑是针对不同线程类型设置的,那么基于不同的线程类型对应的数据捕获逻辑、异常捕获逻辑和写入接口确定目标获取策略,可以通过目标获取策略针对性地对不同类型的线程进行异常数据的捕获,提高异常数据捕获的准确性。

10、在一些实施例中,所述线程类型包括第一类线程和第二类线程;所述基于不同的所述线程类型对应的数据捕获逻辑、所述异常捕获逻辑和所述写入接口,确定所述目标获取策略,包括:基于所述第一类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第一类线程对应的第一捕获策略;基于所述第二类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第二类线程对应的第二捕获策略;基于所述第一捕获策略、所述第二捕获策略和所述写入接口,确定所述目标获取策略。

11、可以理解,将第一类线程对应的第一捕获策略、第二类线程对应的第二捕获策略和写入接口进行融合,得到目标获取策略;如此,可以实现对不同类型的线程进行异常捕获、异常数据的定位和捕获、以及将捕获的异常数据写入文件中。

12、在一些实施例中,所述第二类线程包括第一线程和第二线程;所述第一线程包含于所述执行程序对应的线程池,所述第二线程不包含于所述线程池;所述基于所述第二类线程对应的数据捕获逻辑和所述异常捕获逻辑,确定所述第二类线程对应的第二捕获策略,包括:将所述第一线程的数据捕获逻辑确定为第一数据捕获逻辑,并基于所述第一数据捕获逻辑和所述异常捕获逻辑,确定所述第一线程的捕获策略;将所述第二线程的数据捕获逻辑确定为第二数据捕获逻辑,并基于所述第二数据捕获逻辑和所述异常捕获逻辑,确定所述第二线程的捕获策略。

13、可以理解,针对同一类中的不同线程设置不同的数据捕获逻辑,可以兼容同一类线程所在的不同场景,提高异常捕获的适用性。

14、在一些实施例中,所述基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据,包括:基于所述目标获取策略中的异常捕获逻辑,确定所述执行程序在运行崩溃时产生的运行崩溃文件;基于所述运行崩溃文件和所述目标获取策略,捕获所述异常数据。

15、可以理解,先进行异常捕获,然后确定异常的线程对应的捕获逻辑,以捕获异常的线程的调用堆栈数据;如此,可以打印异常的线程的调用堆栈数据。

16、在一些实施例中,所述执行程序对应的线程类型包括第一类线程和第二类线程;所述基于所述运行崩溃文件和所述目标获取策略,捕获所述异常数据,包括:在所述运行崩溃文件表征所述执行程序中的第一类线程异常的情况下,基于所述目标获取策略中的第一捕获策略,捕获所述异常数据;在所述运行崩溃文件表征所述执行程序中的第二类线程异常的情况下,基于所述目标获取策略中的第二捕获策略,捕获所述异常数据。

17、可以理解,第一类线程异常时,采用第一捕获策略打印调用堆栈数据;第二类线程异常时,采用第二捕获策略打印调用堆栈数据;如此,针对不同类的线程,采用不同的捕获策略,可以提高异常捕获的准确性。

18、在一些实施例中,所述第二类线程包括第一线程和第二线程;所述第一线程包含于所述执行程序对应的线程池,所述第二线程不包含于所述线程池;所述在所述运行崩溃文件表征所述执行程序中的第二类线程异常的情况下,基于所述目标获取策略中的第二捕获策略,捕获所述异常数据,包括:在所述运行崩溃文件表征所述执行程序中的第一线程异常的情况下,基于所述第二捕获策略中的第一线程的捕获策略,捕获所述异常数据;在所述运行崩溃文件表征所述执行程序中的第二线程异常的情况下,基于所述第二捕获策略中的第二线程的捕获策略,捕获所述异常数据。

19、可以理解,针对同一类中的不同线程,采用不同的捕获策略,可以提高异常捕获的准确性。

20、在一些实施例中,所述异常数据包括调用堆栈数据;所述将所述异常数据写入文件中,得到所述异常数据文件,包括:基于所述目标获取策略中的写入接口,将所述调用堆栈数据写入文件中,得到所述异常数据文件。

21、可以理解,将调用堆栈数据写入到文件中,便于帮助开发人员快速定位异常、分清职责归属。

22、在一些实施例中,在所述执行程序的崩溃之处在所述执行程序对应的算法的情况下,所述异常数据文件中的第一行记录有所述算法的代码路径、所述异常数据文件中的除所述第一行之外的其它行记录有所述执行程序对应的软件的代码路径;在所述执行程序的崩溃之处在所述执行程序对应的软件的情况下,所述异常数据文件中的所有行记录有所述软件的代码路径。

23、可以理解,针对崩溃之处的不同,会得到包含不同数据的异常数据文件,以使软件开发人员、算法人员以及其他人员,清晰准确地分清职责归属。

24、在一些实施例中,所述调整所述初始程序的工程属性,包括:将所述工程属性中的调试信息格式设置为程序数据库;或者,将所述工程属性中的生成调试信息选项设置为生成调试信息。

25、可以理解,调整初始程序的工程属性,使发行版本下的执行程序在运行崩溃时产生运行崩溃文件,以便于在崩溃时可以通过windows api函数查找到。

26、另一方面,本技术实施例提供一种异常数据获取装置,所述异常数据获取装置包括:处理模块,用于基于预先配置于执行程序中的目标获取策略,捕获所述执行程序在运行崩溃时产生的异常数据;写入模块,用于将所述异常数据写入文件中,得到所述异常数据文件;其中,所述异常数据文件表征所述执行程序在运行时存在异常的函数的调用情况。

27、一种计算机设备,所述设备包括:处理器、存储器和通信总线;

28、所述通信总线用于实现所述处理器和所述存储器之间的通信连接;

29、所述处理器用于执行所述存储器中的计算机程序,以实现上述方法的步骤。

30、一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述方法的步骤。

31、本技术的实施例所提供的异常数据获取方法、装置、设备和计算机可读存储介质,可以基于预先配置于执行程序中的目标获取策略,捕获执行程序在运行崩溃时产生的异常数据;将异常数据写入文件中,得到异常数据文件;其中,异常数据文件表征执行程序在运行时存在异常的函数的调用情况。这样,通过目标获取策略,可以快速捕获表征执行程序在运行崩溃时存在异常的函数的调用情况的异常数据;将异常数据写入文件中,可以帮助开发人员快速定位异常、分清职责归属。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1