[发明专利]一种应用程序的异常处理方法、装置及移动终端有效
| 申请号: | 201711218298.3 | 申请日: | 2017-11-28 |
| 公开(公告)号: | CN108089977B | 公开(公告)日: | 2020-07-31 |
| 发明(设计)人: | 李庆美 | 申请(专利权)人: | 维沃移动通信有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京润泽恒知识产权代理有限公司 11319 | 代理人: | 王洪 |
| 地址: | 523860 广东省*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 应用程序 异常 处理 方法 装置 移动 终端 | ||
本发明提供了一种应用程序的异常处理方法、装置及移动终端。该方法包括:获取应用程序的异常堆栈的目标内存地址;从预设的索引文件中提取与所述目标内存地址对应的目标分片文件,所述索引文件包括多个分片文件与多个内存地址之间的映射关系,所述分片文件为对调试符号信息文件进行分片处理得到的文件;加载所述目标分片文件,从所述目标分片文件中获取与所述目标内存地址对应的目标代码段参数。本发明通过对调试符号信息文件进行分片处理,并生成索引文件,从而只需要对分片文件进行加载,以获取出现异常的具体代码段,提升了对异常故障代码的检测效率和检测速度。
技术领域
本发明涉及数据处理技术领域,尤其涉及一种应用程序的异常处理方法、装置及移动终端。
背景技术
随着目前移动软件规模越来越复杂,当软件出现异常崩溃时,很难根据外部行为定位出问题所在位置。为了协助软件开发人员,快速定位异常崩溃点的位置,现代操作系统一般会在软件崩溃时,会打印出当前CPU的各个寄存器内的数据,以及崩溃的调用堆栈的数据,以帮助开发人员定位,出现问题的相应代码位置。
操作系统这种在系统异常时,打印出调用堆栈的技术,非常有利于开发人排查问题,对有效提升软件质量,起到一定的促进作用。以下为行文方便,以Android系统为例进行说明,Android系统的Native库文件在编译时可以生成两个类型的库文件,一种是带调试符号信息的库文件,体积较大;另一种是优化后的不带调试符号信息的库文件,体积较小,供打包到可执行文件中运行时使用。
那么当应用程序出现调用堆栈的异常时,现有技术会使用操作系统提供的Addr2line工具,根据崩溃的调用栈的地址,从上述带调试符号信息的库文件中,分析出异常的调用堆栈,软件开发人员就可以根据此调用堆栈,定位出应用程序的代码中出现问题的具体位置。
而随着软件系统越来越复杂,软件规模也不断的增大,导致应用程序编译出来的具有调试符号信息的库文件的体积越来越大。比如浏览器内核的带调试符号信息的库文件,大小达到1.5GB。此外,现在的应用程序一般会分发多个渠道,加上每个小版本迭代比较频繁,导致需要备份的具有调试符号信息的库文件越来越多,由于库文件的体积过大,加之文件数量越来越多,导致对存储空间占用越来越大。
此外,由于具有调试符号信息的库文件的体积较大,解析堆栈工具在对一个上GB级的符号库文件进行崩溃堆栈的解析时,将需要较长的解析用时,才可以分析出符号库文件中的属于崩溃堆栈的具体代码;当并发接收到多个崩溃堆栈的解析请求时,将会大大降低崩溃堆栈的解析速度和解析效率。
由此可见,现有技术中的应用程序的故障代码的检测方案中,普遍存在着对故障代码的检测效率和检测速度低下的问题。
发明内容
本发明实施例提供一种异常处理方法、装置及移动终端,以解决现有技术中应用程序的故障代码的检测方案中所存在的对故障代码的检测效率和检测速度低下的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种应用程序的异常处理方法,所述方法包括:
获取应用程序的异常堆栈的目标内存地址;
从预设的索引文件中提取与所述目标内存地址对应的目标分片文件,所述索引文件包括多个分片文件与多个内存地址之间的映射关系,所述分片文件为对调试符号信息文件进行分片处理得到的文件;
加载所述目标分片文件,从所述目标分片文件中获取与所述目标内存地址对应的目标代码段参数。
第二方面,本发明实施例还提供了一种异常处理装置,所述装置包括:
获取模块,用于获取应用程序的异常堆栈的目标内存地址;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于维沃移动通信有限公司,未经维沃移动通信有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711218298.3/2.html,转载请声明来源钻瓜专利网。





