本发明涉及计算机,具体为一种子进程崩溃原因的定位方法及系统。
背景技术:
1、在软件开发与运维领域,软件崩溃问题一直是影响用户体验和产品质量的关键因素。传统的方法,如静态日志记录和事后调试,难以实时捕捉崩溃瞬间的详细信息,导致崩溃原因定位困难,解决效率低下。随着软件复杂度的提升和发布周期的缩短,对崩溃问题的快速响应和解决能力提出了更高要求。因此,开发一种能够动态设置日志打印、精准定位崩溃原因的技术显得尤为重要,旨在提升软件的稳定性、可靠性和用户体验。
2、目前,对于崩溃原因的定位,存在以下技术问题:
3、(1)崩溃原因定位困难:软件崩溃的定位往往依赖于静态的日志记录和事后分析,难以实时捕捉并准确记录崩溃发生时的执行状态和上下文信息;特别是当崩溃由非程序自身代码引起或缺乏必要的调试文件(如pdb文件)时,定位过程更是困难重重,成功率较低;
4、(2)崩溃解决效率低:由于崩溃原因定位困难,开发者在解决崩溃问题时往往面临信息不足、方向不明的困境,导致崩溃解决效率低下,难以满足用户对软件稳定性和可靠性的要求;
5、(3)用户体验差:软件崩溃和长时间的故障恢复不仅会打断用户的操作流程,还会导致用户数据丢失等后果。
技术实现思路
1、本发明的目的在于提供一种子进程崩溃原因的定位方法及系统,以解决上述背景技术中提到的现有的崩溃原因定位困难、崩溃解决效率低、用户体验差等问题。
2、为实现上述目的,本发明采用以下技术方案:
3、根据本发明的一个方面,提供一种子进程崩溃原因的定位方法,所述方法包括:
4、收集崩溃文件和日志文件并进行筛选,找到崩溃模块及子进程的退出代码;
5、父进程添加所述崩溃模块的日志开关标识,和所述退出代码的映射值,并存放到映射表;
6、所述子进程添加所述日志开关标识,使所述崩溃模块的每个执行步骤及参数值进行日志打印;
7、所述子进程崩溃后,所述父进程判断所述子进程的退出代码是否在映射表内,若是,则把所述日志开关标识传递给新子进程;
8、所述新子进程接收所述日志开关标识后,执行预设的日志内容打印,若一定时间内没有崩溃,则关闭所述日志开关标识;
9、根据所述日志文件最终打印的执行操作和参数定位崩溃原因。
10、基于前述方案,筛选出同一用户子进程重复崩溃三次以上的所述崩溃文件和所述日志文件。
11、基于前述方案,所述日志文件包括父进程日志文件和子进程日志文件,所述崩溃文件为dump文件,是子进程崩溃的转储文件。
12、基于前述方案,每个崩溃类型自定义一个所述日志开关标识,所述子进程崩溃后,所述父进程从所述映射表中找到所述退出代码对应的日志开关标识,并传递给新创建的子进程,以进行动态设置子进程的日志打印内容。
13、基于前述方案,所述子进程崩溃并退出时,所述父进程捕获所述退出代码并查询所述映射表,判断所述退出代码是否有对应的日志开关标识。
14、基于前述方案,所述父进程接收所述子进程的退出消息,所述父进程首先检查退出状态是否为非正常退出,如果是且所述退出代码在所述映射表中,则所述父进程查找对应的日志开关标识,并创建所述新子进程,将所述日志开关标识传递给所述新子进程。
15、基于前述方案,所述日志文件的记录与程序执行为同步进行,以反馈所述子进程崩溃的操作和状态。
16、基于前述方案,所述根据所述日志文件最终打印的执行操作和参数定位崩溃原因,包括直接定位和间接定位;
17、所述直接定位包括所述日志文件中直接显示异常信息或错误代码,而直接定位到崩溃原因;分析崩溃前最后执行的操作及参数,判断错误点;
18、所述间接定位为无直接的异常信息,基于所述日志文件中显示的任务参数或资源使用异常,进一步定位崩溃原因;利用调试工具对崩溃时的程序状态进行分析。
19、基于前述方案,若根据所述日志文件无法定位崩溃原因,则对所述日志文件的配置进行改进,增加或修改日志信息打印,包括但不限于添加详细的执行指令、参数值、资源使用情况,删除不必要的日志内容。
20、根据本发明的另一方面,提供一种子进程崩溃原因的定位系统,该系统包括:数据收集模块,映射表管理模块,日志配置模块,崩溃原因分析模块;
21、所述数据收集模块,收集崩溃文件和日志文件;
22、所述映射表管理模块,管理子进程的崩溃模块、日志开关标识和退出代码的映射关系;
23、所述日志配置模块,根据所述日志开关标识配置所述日志文件,并在子进程中打印详细的执行步骤和参数值;
24、所述崩溃原因分析模块,分析所述日志文件并定位崩溃原因。
25、由上述技术方案可知,本发明与现有技术相比至少具备以下优点和积极效果:
26、(1)通过动态设置子进程崩溃模块的执行步骤和参数日志打印,极大地增强了在软件版本迭代更新过程中定位崩溃所在代码及原因的能力,解决了非程序自身代码引起的崩溃或在没有pdb文件支持下的崩溃定位难题;
27、(2)在成功定位崩溃原因后,本发明进一步提高了问题的解决效率,通过持续优化和修复崩溃问题,提升了软件的稳定性和健壮性;
28、(3)减少了软件崩溃的频率和持续时间,降低了用户在使用过程中遇到的障碍和不便。
29、本发明应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
1.一种子进程崩溃原因的定位方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种子进程崩溃原因的定位方法,其特征在于,筛选出同一用户子进程重复崩溃三次以上的所述崩溃文件和所述日志文件。
3.根据权利要求1所述的一种子进程崩溃原因的定位方法,其特征在于,所述日志文件包括父进程日志文件和子进程日志文件,所述崩溃文件为dump文件,是子进程崩溃的转储文件。
4.根据权利要求1所述的一种子进程崩溃原因的定位方法,其特征在于,每个崩溃类型自定义一个所述日志开关标识,所述子进程崩溃后,所述父进程从所述映射表中找到所述退出代码对应的日志开关标识,并传递给新创建的子进程,以进行动态设置子进程的日志打印内容。
5.根据权利要求1所述的一种子进程崩溃原因的定位方法,其特征在于,所述子进程崩溃并退出时,所述父进程捕获所述退出代码并查询所述映射表,判断所述退出代码是否有对应的日志开关标识。
6.根据权利要求1所述的一种子进程崩溃原因的定位方法,其特征在于,所述父进程接收所述子进程的退出消息,所述父进程检查退出状态是否为非正常退出,如果是且所述退出代码在所述映射表中,则所述父进程查找对应的日志开关标识,并创建所述新子进程,将所述日志开关标识传递给所述新子进程。
7.根据权利要求1所述的一种子进程崩溃原因的定位方法,其特征在于,所述日志文件的记录与程序执行为同步进行,以反馈所述子进程崩溃的操作和状态。
8.根据权利要求1所述的一种子进程崩溃原因的定位方法,其特征在于,所述根据所述日志文件最终打印的执行操作和参数定位崩溃原因,包括直接定位和间接定位;
9.根据权利要求1所述的一种子进程崩溃原因的定位方法,其特征在于,若根据所述日志文件无法定位崩溃原因,则对所述日志文件的配置进行改进,增加或修改日志信息打印,包括但不限于添加详细的执行指令、参数值、资源使用情况,删除不必要的日志内容。
10.一种子进程崩溃原因的定位系统,其特征在于,包括数据收集模块,映射表管理模块,日志配置模块,崩溃原因分析模块;