本申请涉及计算机,具体涉及一种linux系统应用程序崩溃信息的收集系统及收集方法。
背景技术:
1、目前市场上有很多基于linux系统开发的终端产品,若产品应用程序运行过程中出现崩溃导致功能无法使用,会极大影响用户体验。如何更加有效的收集linux系统的崩溃信息,让开发人员在程序出现崩溃后更迅速、精准的定位产生崩溃的根因成为重难点问题。
2、现有技术中常见的崩溃收集方案主要有售后人员发现问题后主动拉取日志后人工进行筛查、终端监控到崩溃后直接上报崩溃信息等,主动拉取日志方式可能会因为日志被覆盖、当前网络异常等导致无法拉取可用日志,而终端监控到崩溃后直接上报方式在同一问题频发时可能会因数据量过大导致数据上传通道拥堵、浪费流量等。且上述两种方案开发人员在查看问题还需要再次进行日志查找,同类问题汇总,效率较低。
技术实现思路
1、本申请实施例的目的是提供一种linux系统应用程序崩溃信息的收集系统及收集方法,用以解决解决现有技术中linux系统应用程序在运行过程中收集崩溃信息效率较低的问题。
2、为了实现上述目的,本申请第一方面提供一种linux系统应用程序崩溃信息的收集系统,收集系统与开发终端通信,该收集系统包括:
3、崩溃监控模块,被配置成监控linux系统的应用程序的崩溃事件的signal信号,并在监控到signal信号时获取崩溃事件的崩溃信息;
4、崩溃管理模块,与崩溃监控模块通信,被配置成接收崩溃监控模块发送的崩溃信息,并对崩溃信息进行处理以得到崩溃数据;
5、服务器,与崩溃管理模块通信,被配置成接收崩溃管理模块发送崩溃数据,并将崩溃数据进行分类存储后同步至开发终端。
6、在本申请实施例中,崩溃信息包括:
7、堆栈信息、signal信号的signal值和signal信号的发生时间。
8、在本申请实施例中,崩溃数据包括:
9、linux系统的应用程序所在终端的唯一标识、linux系统的应用程序的软件版本号、崩溃事件记录文件以及相关日志。
10、在本申请实施例中,崩溃管理模块还被配置成:
11、在接收崩溃监控模块发送的崩溃信息之前,将崩溃事件记录表、待处理崩溃事件列表和崩溃信息处理线程进行初始化以阻塞式等待崩溃事件。
12、在本申请实施例中,崩溃管理模块还被配置成:
13、在接收到崩溃监控模块发送的崩溃信息之后,将崩溃信息存放至待处理崩溃事件列表以等待下一个崩溃事件。
14、在本申请实施例中,崩溃管理模块包括:
15、文件加载单元,被配置成加载崩溃收集配置表;
16、崩溃信息处理单元,与文件加载单元通信,被配置成接收崩溃监控模块发送的崩溃信息,并根据崩溃收集配置表对崩溃信息进行处理以得到崩溃数据;
17、崩溃上传单元,分别与崩溃信息处理单元和服务器通信,被配置成将崩溃数据上传至服务器。
18、在本申请实施例中,崩溃信息处理单元还被配置成:
19、判断待处理崩溃事件列表是否为空;
20、在判定待处理崩溃事件列表不为空时,取出待处理崩溃事件列表中的当前崩溃事件;
21、遍历崩溃事件记录表,判断是否存在与当前崩溃事件的signal信号和堆栈信息均相同的历史崩溃事件;
22、在判定存在与当前崩溃事件的signal信号和堆栈信息均相同的历史崩溃事件的情况下,确认当前崩溃事件和所述历史崩溃事件为同一崩溃事件,更新历史崩溃事件的次数,并将当前崩溃事件的发生时间新增至历史崩溃事件的记录中;
23、在判定不存在与当前崩溃事件的signal信号和堆栈信息均相同的历史崩溃事件的情况下,将当前崩溃事件添加至崩溃事件记录表中以新增崩溃事件项。
24、在本申请实施例中,崩溃信息处理单元还被配置成:
25、在任意崩溃事件的发生次数到达崩溃次数上限或到达指定上传周期的情况下,将所述任意崩溃事件的记录表内容写入崩溃事件记录文件并清空崩溃事件记录表;
26、新建崩溃上传单元线程以上传崩溃事件记录文件。
27、在本申请实施例中,崩溃上传单元还被配置成:
28、在将崩溃数据上传至所述服务器成功的情况下,删除崩溃数据中的崩溃事件记录文件。
29、在本申请实施例中,崩溃上传单元还被配置成:
30、在将崩溃数据上传至所述服务器的次数大于预设次数的情况下,等待异常恢复;
31、在异常恢复后重新将崩溃数据上传至服务器并删除崩溃数据中的崩溃事件记录文件。
32、本申请第二方面提供一种linux系统应用程序崩溃信息的收集方法,应用于linux系统应用程序崩溃信息的收集系统,该收集系统包括崩溃监控模块、崩溃管理模块和服务器,收集系统与开发终端通信,该收集方法包括:
33、通过崩溃监控模块监听linux系统应用程序的崩溃事件的signal信号,并在监控到signal信号时获取崩溃信息;
34、通过崩溃管理模块接收崩溃监控模块发送的崩溃信息,并对崩溃信息进行处理以得到崩溃数据;
35、通过服务器接收崩溃管理模块发送崩溃数据,并将崩溃数据进行分类存储后同步至开发终端。
36、通过上述技术方案,供一种linux系统应用程序崩溃信息的收集系统,收集系统与开发终端通信,该收集系统包括:崩溃监控模块,被配置成监控linux系统的应用程序的崩溃事件的signal信号,并在监控到signal信号时获取崩溃事件的崩溃信息;崩溃管理模块,与崩溃监控模块通信,被配置成接收崩溃监控模块发送的崩溃信息,并对崩溃信息进行处理以得到崩溃数据;服务器,与崩溃管理模块通信,被配置成接收崩溃管理模块发送崩溃数据,并将崩溃数据进行分类存储后同步至开发终端。本申请能有效地收集linux系统的应用程序崩溃信息,让开发人员在程序出现崩溃后更迅速、精准的定位产生崩溃的根因,提升了崩溃类问题的分析效率,进而提升应用程序稳定性。
37、本申请实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。
1.一种linux系统应用程序崩溃信息的收集系统,其特征在于,所述收集系统与开发终端通信,所述收集系统包括:
2.根据权利要求1所述的收集系统,其特征在于,所述崩溃信息包括:
3.根据权利要求1所述的收集系统,其特征在于,所述崩溃数据包括:
4.根据权利要求1所述的收集系统,其特征在于,所述崩溃管理模块还被配置成:
5.根据权利要求1所述的收集系统,其特征在于,所述崩溃管理模块还被配置成:
6.根据权利要求1所述的收集系统,其特征在于,所述崩溃管理模块包括:
7.根据权利要求6所述的收集系统,其特征在于,所述崩溃信息处理单元还被配置成:
8.根据权利要求6所述的收集系统,其特征在于,所述崩溃信息处理单元还被配置成:
9.根据权利要求6所述的收集系统,其特征在于,所述崩溃上传单元还被配置成:
10.根据权利要求6所述的收集系统,其特征在于,所述崩溃上传单元还被配置成:
11.一种linux系统应用程序崩溃信息的收集方法,其特征在于,应用于linux系统应用程序崩溃信息的收集系统,所述收集系统包括崩溃监控模块、崩溃管理模块和服务器,所述收集系统与开发终端通信,所述收集方法包括: