System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,具体而言,本申请涉及一种应用程序的崩溃信息检测方法及相关装置。
技术介绍
1、随着计算机技术的发展,开发了各种各样的应用程序,应用程序在正式投入使用之前,一般都需要进行崩溃验收,从而分析应用程序是否会发生崩溃,如果发生崩溃则需要对崩溃的原因进行分析等。崩溃是指当应用程序或操作系统等计算机程序停止正常运行并且退出时的情况。
2、相关技术中,在对应用程序进行崩溃验收时,需要研发人员进行各个功能系统的手动遍历,并在出现内存崩溃时,研发人员会针对各个崩溃现场进行提单处理,并附加操作以及现场说明,研发实现人员会对各类崩溃单进行验收以及复现。
3、然而,研发人员进行各个功能系统的手动遍历,并且这些崩溃可能需要很复杂的环境才能偶现触发,有些崩溃还有可能需要研发人员进行详尽的描述才能进行复现,这些对于崩溃现场原因的分析造成了很多阻碍,导致整个崩溃现场还原会非常的耗时,进而导致崩溃信息的检测非常耗时。
技术实现思路
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、可选的,装置还用于:
26、获取内存错误检测工具对应的动态链接库;
27、将动态链接库中的函数配置为应用程序的内存分配函数,以在通过崩溃测试包触发各目标功能系统在预先分配的内存区的运行时,通过内存分配函数分配目标功能系统运行时的内存地址。
28、可选的,崩溃信息检测模块在基于内存崩溃地址确定崩溃事件相关的内存崩溃信息时,可以用于:
29、获取内存崩溃地址对应的函数调用序列,函数调用序列包括至少两个候选函数调用地址,至少两个候选函数调用地址包括调用内存崩溃地址的函数调用地址,至少两个候选函数调用地址中的两个候选函数调用地址之间为调用关系;
30、对于每一函数调用序列,基于地址字典表对函数调用序列中的候选函数调用地址进行符号化解析处理,以得到函数调用序列中的候选函数调用地址对应的功能系统运行函数,以及将函数调用序列中的候选函数调用地址对应的功能系统运行函数确定为崩溃事件对应的功能系统运行函本文档来自技高网...
【技术保护点】
1.一种应用程序的崩溃信息检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述预先分配的内存区是通过以下方式进行配置的:
3.根据权利要求1所述的方法,其特征在于,所述方法应用于第一终端,所述应用程序安装于第二终端,所述通过所述崩溃测试包触发各所述目标功能系统在预先分配的内存区的运行,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述内存保护区包括多个内存保护地址,各内存保护地址配置有对应的错误原因标识,所述内存保护地址对应的错误原因标识用于指示所述内存保护地址被命中时的内存错误原因;
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述内存崩溃地址确定所述崩溃事件相关的内存崩溃信息,包括:
7.根据权利要求6所述的方法,其特征在于,所述基于地址字典表对所述函数调用序列中的候选函数调用地址进行符号化解析处理,以得到所述函数调用序列中的候选函数调用地址对应的功能系统运行函数,包括:
8.根据
9.根据权利要求6所述的方法,其特征在于,崩溃事件为至少两个,所述函数调用序列包括至少两个崩溃事件中各崩溃事件对应的函数调用序列;
10.一种应用程序的崩溃信息检测方法,其特征在于,所述方法应用于安装有应用程序的第二终端,所述方法包括:
11.一种应用程序的崩溃信息检测装置,其特征在于,包括:
12.一种应用程序的崩溃信息检测装置,其特征在于,所述装置应用于安装有应用程序的第二终端,所述装置包括:
13.一种电子设备,包括存储器、处理器及存储在存储器上的计算机程序,其特征在于,所述处理器执行所述计算机程序以实现权利要求1-10任一项所述方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-10任一项所述方法的步骤。
...【技术特征摘要】
1.一种应用程序的崩溃信息检测方法,其特征在于,包括:
2.根据权利要求1所述的方法,其特征在于,所述预先分配的内存区是通过以下方式进行配置的:
3.根据权利要求1所述的方法,其特征在于,所述方法应用于第一终端,所述应用程序安装于第二终端,所述通过所述崩溃测试包触发各所述目标功能系统在预先分配的内存区的运行,包括:
4.根据权利要求1-3任一项所述的方法,其特征在于,所述内存保护区包括多个内存保护地址,各内存保护地址配置有对应的错误原因标识,所述内存保护地址对应的错误原因标识用于指示所述内存保护地址被命中时的内存错误原因;
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
6.根据权利要求1-3任一项所述的方法,其特征在于,所述基于所述内存崩溃地址确定所述崩溃事件相关的内存崩溃信息,包括:
7.根据权利要求6所述的方法,其特征在于,所述基于地址字典表对所述函数调用序列中的候选函数调用地址进行符号化解析处理,以得到所述函数调用序列中的候选函数调用地址对应的功能系统运行函数,包括:
8.根据权利要求7所述的方法,...
【专利技术属性】
技术研发人员:杨帆,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。