一种崩溃日志处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:24799107 阅读:23 留言:0更新日期:2020-07-07 20:58
本发明专利技术提供了一种崩溃日志处理方法、装置、电子设备及存储介质。所述方法,包括:获取崩溃日志文件对应的可执行文件中所有的类的地址;根据每个所述类的地址,获取每个所述类的每个函数的地址范围;针对所述崩溃日志文件中的任意一条崩溃日志,响应于所述崩溃日志对应的崩溃地址位于任一函数的地址范围内,确认所述函数发生崩溃。通过对可行性文件的扫描及汇编指令的对比,查找崩溃地址所属函数地址区间,确认崩溃函数,从而将崩溃地址转成函数符号,将日志符号化。取得了在符号表缺失的情况下依旧能将崩溃日志符号化,减少程序监测的盲区,提高崩溃日志符号化的可行性和适应性的有益效果。

【技术实现步骤摘要】
一种崩溃日志处理方法、装置、电子设备及存储介质
本专利技术涉及计算机
,尤其涉及一种崩溃日志处理方法、装置、电子设备及存储介质。
技术介绍
应用程序客户端崩溃是应用程序运行过程中出现的最为严重的问题,会导致服务突然中断,用户体验受损严重。因此,对于应用程序客户端崩溃的监测和分析就显得十分重要。但是,系统上报的崩溃日志是一种符号地址信息,而用户希望看到的是符号化的可视化语句,通过符号化的可视化语句,用户可以明确地知道具体是哪个函数的哪一行出了问题,且如果整个符号地址调用栈都被符号化为这样的可视化语句,那么调用栈看起来会非常的明确并且代码调用逻辑清晰,从而对定位崩溃原因和修复都有很大的帮助。在相关技术中,一般通过符号表,将地址和函数符号进行映射。当发生崩溃时通过命令查询崩溃地址对应的符号,从而实现符号化。但是,该方法依赖符号表,如果开发者没有保留符号表,那么则无法进行日志符号化。
技术实现思路
本专利技术实施例提供一种崩溃日志处理方法、装置、电子设备及存储介质,以解决现有的崩溃日志处理方式过于依赖符号表,导致符号化本文档来自技高网...

【技术保护点】
1.一种崩溃日志处理方法,其特征在于,包括:/n获取崩溃日志文件对应的可执行文件中所有的类的地址;/n根据每个所述类的地址,获取每个所述类的每个函数的地址范围;/n针对所述崩溃日志文件中的任意一条崩溃日志,响应于所述崩溃日志对应的崩溃地址位于任一函数的地址范围内,确认所述函数发生崩溃。/n

【技术特征摘要】
1.一种崩溃日志处理方法,其特征在于,包括:
获取崩溃日志文件对应的可执行文件中所有的类的地址;
根据每个所述类的地址,获取每个所述类的每个函数的地址范围;
针对所述崩溃日志文件中的任意一条崩溃日志,响应于所述崩溃日志对应的崩溃地址位于任一函数的地址范围内,确认所述函数发生崩溃。


2.根据权利要求1所述的方法,其特征在于,所述根据每个所述类的地址,获取每个所述类的每个函数的地址范围的步骤,包括:
针对任意一个所述类,根据所述类的地址,从所述可执行文件中获取所述类的第一结构体,所述第一结构体中包含与每个所述函数的地址范围相关的第二结构体的地址;
根据所述第一结构体中包含的第二结构体的地址,获取所述类的第二结构体;
根据所述第二结构体,获取所述类的函数的地址范围。


3.根据权利要求2所述的方法,其特征在于,所述根据所述第二结构体,获取所述类的函数的地址范围的步骤,包括:
根据所述第二结构体,获取所述类的函数列表起始地址;
根据所述函数列表起始地址,所述类的函数列表中包含的每个结构体的字节长度,获取所述类的每个函数的地址范围。


4.根据权利要求3所述的方法,其特征在于,所述根据所述函数列表起始地址,所述类的函数列表中包含的每个结构体的字节长度,获取所述类的每个函数的地址范围的步骤,包括:
根据所述函数列表起始地址,获取所述类的函数列表;
根据所述函数列表中每个结构体的字节长度,获取所述类的每个函数的起始地址;
针对每个所述函数,从所述函数的起始地址开始读取数据,直至遇到所述函数的结束指令,以获取所述函数的结束地址;
针对每个所述函数,根据所述函数的起始地址和结束地址,确定所述函数的地址范围。


5.根据权利要求3所述的方法,其特征在于,所述根据所述第二结构体,获取所述类的函数列表起始地址的步骤,包括:
从所述第二结构体中的第一预设位置开始,向后连续获取第一预设数量个字节作为所述类的函数列表起始地址。


6.根据权利要求2所述的方法,其特征在于,所述根据所述第一结构体中包含的第二结构体的地址,获取所述类的第二结构体的步骤,包括:
从所述第一结构结构体中的第二预设位置开始,向后连续获取第二预设数量个字节,得到所述第二结构体的地址;
根据所述第二结构体的地址,获取所述第二结构体。


7.根据权利要求1-6中任一项所述的方法,其特征在于,在所述针对所述崩溃日志文件中的任意一条崩溃日志,响应于所述崩溃日志对应的崩溃地址位于任一函数的地址范围内,确认所述函数发生崩溃的步骤之后,还包括:
获取确认发生崩溃的函数的函数名称,以及所述函数所属类的类名称,并将所述函数名称和所述类名称记录至目标文件中。


8.一种崩溃日志处理装置,其特征在于,包括:
类地址获取模块,用于获取崩溃日志文件对应的可执行文...

【专利技术属性】
技术研发人员:邓竹立彭飞
申请(专利权)人:北京五八信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1