[发明专利]一种应用程序异常处理方法及装置在审
申请号: | 201810209141.2 | 申请日: | 2018-03-14 |
公开(公告)号: | CN110275791A | 公开(公告)日: | 2019-09-24 |
发明(设计)人: | 杨绍军 | 申请(专利权)人: | 普天信息技术有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07;G06F11/36 |
代理公司: | 北京路浩知识产权代理有限公司 11002 | 代理人: | 王莹;李相雨 |
地址: | 100080 北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 异常处理 应用程序 函数调用栈 地址信息 调用函数 全局变量 预设 解码 输出异常 异常信号 运行异常 获知 输出 记录 | ||
本发明实施例提供一种应用程序异常处理方法及装置。所述方法包括:进入待处理应用程序的被调用函数,同时在第一预设全局变量中记录所述被调用函数对应的第一函数调用栈地址信息;若判断获知所述被调用函数发生运行异常则输出异常信号,并根据所述异常信号进行异常处理;从所述第一预设全局变量中提取所述第一函数调用栈地址信息,并对所述第一函数调用栈地址信息解码后进行输出。所述装置用于执行上述方法。本发明提供的方法及装置提高了应用程序异常处理效率。
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种应用程序异常处理方法及装置。
背景技术
软件的应用程序在运行过程中经常运行异常,运行异常会给应用程序的稳定运行带来很大的麻烦,因此,对于应用程序异常处理方法的研究越来越受到人们的关注。
目前应用程序异常的情况主要分为以下三种:(1)缓冲区溢出、空指针访问异常以及除零异常问题;(2)全局变量中的某个监控对象在某个不确定的地方被内存越界或者改写导致的异常;(3)CPU占有率达到100%。现有技术条件下,针对缓冲区溢出、空指针访问异常以及除零异常问题,目前常用的处理方法是通过系统生成core文件,然后通过GDB来进行跟踪,或者是通过打印大量的trace信息,逐步进行问题跟踪,或者利用特殊装置实时记录当前调用栈的寄存器信息进行监控;针对全局变量中的某个监控对象被内存越界或改写的问题以及CPU占有率达到100%的问题则常常利用代码进行逐步分割的方式来确定问题并进行异常处理。但是,前者依靠调用栈的寄存器信息或者依靠符号表的静态信息,这种方法对除零异常和部分空指针访问异常有效,但是无法解决缓冲区溢出的情况,而且要以牺牲性能为代价,同时使用硬件进行调用栈的寄存器信息,成本过高且对于除零异常和空指针访问异常无效;而后者采用代码进行逐步分割的方式费时费力且效果欠佳。综上所述,现有技术中条件下的应用程序异常处理方法的效率普遍较低。
因此,提出一种方法来提高应用程序异常是目前业界亟待解决的需要课题。
发明内容
针对现有技术中的缺陷,本发明实施例提供一种应用程序异常处理方法及装置。
一方面,本发明实施例提供一种应用程序异常处理方法,包括:
进入待处理应用程序的被调用函数,同时在第一预设全局变量中记录所述被调用函数对应的第一函数调用栈地址信息;
若判断获知所述被调用函数发生运行异常则输出异常信号,并根据所述异常信号进行异常处理;
从所述第一预设全局变量中提取所述第一函数调用栈地址信息,并对所述第一函数调用栈地址信息解码后进行输出。
另一方面,本发明实施例提供一种应用程序异常处理装置,包括记录单元、处理单元和输出单元,其中:
记录单元,用于进入待处理应用程序的被调用函数,同时在第一预设全局变量中记录所述被调用函数对应的第一函数调用栈地址信息;
处理单元,用于若判断获知所述被调用函数发生运行异常则输出异常信号,并根据所述异常信号进行异常处理;
输出单元,用于从所述第一预设全局变量中提取所述第一函数调用栈地址信息,并对所述第一函数调用栈地址信息解码后进行输出。
又一方面,本发明实施例提供一种电子设备,包括处理器、存储器和总线,其中:
所述处理器,所述存储器通过总线完成相互间的通信;
所述处理器可以调用存储器中的计算机程序,以执行上述方法的步骤。
再一方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于普天信息技术有限公司,未经普天信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810209141.2/2.html,转载请声明来源钻瓜专利网。