[发明专利]处理程序崩溃的方法、设备和计算机可读存储介质有效
申请号: | 202110688092.7 | 申请日: | 2021-06-21 |
公开(公告)号: | CN113419886B | 公开(公告)日: | 2022-05-03 |
发明(设计)人: | 柳杰 | 申请(专利权)人: | 网易(杭州)网络有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 深圳紫藤知识产权代理有限公司 44570 | 代理人: | 远明 |
地址: | 310052 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 处理 程序 崩溃 方法 设备 计算机 可读 存储 介质 | ||
本申请涉及计算机软件领域,提供了处理程序崩溃的方法、装置、设备和计算机可读存储介质,以准确、全面地分析程序崩溃的原因。所述方法包括:获取程序发生崩溃时的第一dump信息;基于对异常数据的分析,得到程序发生崩溃的第一因素并基于第一因素生成可执行代码;根据第一标识,将可执行代码发送至对应于第一标识且正在运行的程序;当正在运行的程序发生崩溃时,根据第二标识触发执行可执行代码,以收集正在运行的程序发生崩溃时的dump信息作为第二dump信息;分析第二dump信息,以得到正在运行的程序发生崩溃的第二因素。本申请的技术方案使得所收集到的dump信息更加全面,准确度更高,为后续对程序发生崩溃的原因准确定位提供了保障。
技术领域
本发明涉及计算机软件领域,特别涉及一种处理程序崩溃的方法、设备和计算机可读存储介质。
背景技术
程序崩溃(crash)是指程序在运行时遇到无法处理的异常行为,例如访问地址越界、0作为除数的运算或者缺少必要权限等等,导致程序无法继续运行下去。现有处理程序崩溃的方法主要是收集程序崩溃时的dump信息,然后,对dump信息进行分析,从而定位问题的原因。然而,由于dump信息仅仅记录了程序崩溃时的调用栈、所在执行文件和行数等信息,一方面,这些信息的准确性存疑,另一方面,通过这种方式收集的dump信息有限。因此,仅仅依靠这些信息,不足以全面、准确地分析程序崩溃的原因。
发明内容
本申请提供一种处理程序崩溃的方法、设备和计算机可读存储介质,以准确、全面地分析程序崩溃的原因。
一方面,本申请提供了一种处理程序崩溃的方法,包括:
获取程序发生崩溃时的第一dump信息,所述第一dump信息包括第一标识、第二标识和异常数据,所述第一标识用于唯一标识所述发生崩溃的程序,所述第二标识用于唯一标识所述第一dump信息,所述异常数据包括所述程序发生崩溃时的栈调用信息、文件名和/或异常所在位置;
基于对所述异常数据的分析,得到所述程序发生崩溃的第一因素并基于所述第一因素生成可执行代码;
根据所述第一标识,将所述可执行代码发送至对应于所述第一标识且正在运行的程序;
当所述正在运行的程序发生崩溃时,根据所述第二标识触发执行所述可执行代码,以收集所述正在运行的程序发生崩溃时的dump信息作为第二dump信息;
分析所述第二dump信息,以得到所述正在运行的程序发生崩溃的第二因素。
可选的,所述获取程序发生崩溃时的第一dump信息,包括:当监控进程监控到所述程序发生崩溃时,在所述监控进程中创建数据采集文件,所述监控进程为预先创建并独立于所述程序所属进程的进程;将所述第一标识、第二标识和异常数据写入所述监控进程中创建的数据采集文件。
可选的,所述将所述第一标识、第二标识和异常数据写入所述监控进程中创建的数据采集文件,包括:根据所述第一标识,在所述监控进程中读取所述异常数据,通过预定义处理函数将所述异常数据保存至内存;在所述监控进程中通过调用与所述数据采集文件对应的数据导入函数,将所述内存中保存的异常数据写入所述数据采集文件。
可选的,所述基于对所述异常数据的分析,得到所述程序发生崩溃的第一因素并基于所述第一因素生成可执行代码,包括:将所述异常数据作为一个目标分析任务添加至dump自动分析系统的分析任务队列;循环检查并启动分析进程对所述分析任务队列中的异常数据进行分析,得到所述程序发生崩溃的第一因素;针对所述第一因素编写对应于所述第一因素的信息收集源代码;编译所述信息收集源代码,生成所述可执行代码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于网易(杭州)网络有限公司,未经网易(杭州)网络有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110688092.7/2.html,转载请声明来源钻瓜专利网。