一种异常处理的方法、装置及电子设备制造方法及图纸

技术编号:21658440 阅读:21 留言:0更新日期:2019-07-20 05:35
本发明专利技术实施例公开了一种异常处理的方法、装置及电子设备。本发明专利技术实施例方法包括:在目标应用程序中定义全局变量,以存储目标应用程序的运行环境信息;在目标应用程序中编写生成dump文件的功能函数;在目标应用程序的EXE模块中编写捕获异常的异常处理函数;在目标应用程序的EXE模块中注册异常处理函数;当异常处理函数捕获到异常时,通过生成dump文件的功能函数生成dump文件,并将dump文件发送到服务器。本发明专利技术实施例中由于在目标应用程序中定义了全局变量,使得在发生异常时生成的dump文件中包括全局变量的数据,使得开发人员可以从dump文件获取额外的全局变量信息协助分析崩溃产生的原因,极大的帮助了开发人员定位问题,提高了分析异常的效率。

A Method, Device and Electronic Equipment for Abnormal Processing

【技术实现步骤摘要】
一种异常处理的方法、装置及电子设备
本专利技术涉及电子
,特别涉及一种异常处理的方法、装置及电子设备。
技术介绍
目前,对于Windows客户端软件开发来说,没人能保证自己的软件在各种未知环境运行下,会没有任何问题,因此,对于Windows系统,系统提供了相应的应用程序编程接口(ApplicationProgrammingInterface,API)来对程序中出现的异常进行捕获,捕获异常后则可以调用系统的API函数来生成dump文件,其中dump文件则包含当期程序异常时的函数调用堆栈,客户端软件则将此dump文件上报到服务器。开发人员则主要通过Windows提供的Windbg工具来查看dump文件的异常原因,其中最主要则是查看函数调用堆栈,从而知道程序出错的源代码的位置,从而能够解决崩溃的问题。然而对于一些异常情况,仅仅查看函数调用堆栈很难定位到程序出错的原因,通常可能是由于该函数传入的参数存在异常情况导致的,同时也需要知道当期函数运行时的环境信息。因此,需要一种方法可以更好的帮助开发人员定位应用程序崩溃的原因。
技术实现思路
本专利技术实施例提供了一种异常处理的方法、装置及电子设备,以解决目前应用程序出现异常时,无法准确定位应用程序崩溃原因的问题。第一方面,本申请提供了一种异常处理的方法,该方法包括:在目标应用程序中定义全局变量,以存储所述目标应用程序的运行环境信息;在所述目标应用程序中编写生成dump文件的功能函数;在所述目标应用程序的EXE模块中编写捕获异常的异常处理函数;在所述目标应用程序的EXE模块中注册所述异常处理函数;当所述异常处理函数捕获到异常时,通过所述生成dump文件的功能函数生成dump文件,并将所述dump文件发送到服务器,其中,所述dump文件中包括所述全局变量的数据。进一步的,在所述目标应用程序的EXE模块中编写捕获异常的异常处理函数,包括:在所述目标应用程序中定义一个异常处理函数,所述异常处理函数中定义了处理的异常类型信息,以及在捕获异常时调用所述生成dump文件的功能函数。进一步的,当所述异常处理函数捕获到异常时,通过所述生成dump文件的功能函数生成dump文件,包括:当所述异常处理函数捕获到异常时,在所述目标应用程序中编写调用系统提供的功能函数CreateFile的模块,以创建一个dump文件;在所述目标应用程序中编写调用系统函数MiniDumpWriteDump的模块,以将生成的dump信息写入到dump文件;在所述dump文件尾部写入所述全局变量的数据。进一步的,所述dump文件中还包括所述目标应用程序运行过程中生成的错误日志信息;当所述异常处理函数捕获到异常时,通过所述生成dump文件的功能函数生成dump文件,还包括:将所述目标应用程序运行过程中生成的错误日志文件合并写入到所述dump文件中。进一步的,所述在所述dump文件尾部写入所述全局变量的数据,包括:调用系统文件写入函数WriteFile将所述全局变量的数据写入到所述dump文件中。第二方面,本申请提供一种异常处理的装置,该装置包括:定义模块,用于在目标应用程序中定义全局变量,以存储所述目标应用程序的运行环境信息;第一编写模块,用于在所述目标应用程序中编写生成dump文件的功能函数;第二编写模块,用于在所述目标应用程序的EXE模块中编写捕获异常的异常处理函数;注册模块,用于在所述目标应用程序的EXE模块中注册所述异常处理函数;异常处理模块,用于当所述异常处理函数捕获到异常时,通过所述生成dump文件的功能函数生成dump文件,并将所述dump文件发送到服务器,其中,所述dump文件中包括所述全局变量的数据。进一步的,所述第二编写模块具体用于:在所述目标应用程序中定义一个异常处理函数,所述异常处理函数中定义了处理的异常类型信息,以及在捕获异常时调用所述生成dump文件的功能函数。进一步的,所述异常处理模块具体用于:当所述异常处理函数捕获到异常时,在所述目标应用程序中编写调用系统提供的功能函数CreateFile的模块,以创建一个dump文件;在所述目标应用程序中编写调用系统函数MiniDumpWriteDump的模块,以将生成的dump信息写入到dump文件;在所述dump文件尾部写入所述全局变量的数据。进一步的,所述dump文件中还包括所述目标应用程序运行过程中生成的错误日志信息;所述异常处理模块具体还用于:将所述目标应用程序运行过程中生成的错误日志文件合并写入到所述dump文件中。进一步的,所述异常处理模块具体用于:调用系统文件写入函数WriteFile将所述全局变量的数据写入到所述dump文件中。第三方面,本专利技术还提供一种电子设备,包括:存储器,处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其中,所述处理器执行所述计算机程序时可以实现第一方面中任一所述的方法。第四方面,本专利技术还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面中任一所述的方法。本专利技术实施例通过在目标应用程序中定义全局变量,以存储目标应用程序的运行环境信息;在目标应用程序中编写生成dump文件的功能函数;在目标应用程序的EXE模块中编写捕获异常的异常处理函数;在目标应用程序的EXE模块中注册异常处理函数;当异常处理函数捕获到异常时,通过生成dump文件的功能函数生成dump文件,并将dump文件发送到服务器。本专利技术实施例中由于在目标应用程序中定义了全局变量,使得在发生异常时生成的dump文件中包括全局变量的数据,使得开发人员可以从dump文件获取额外的全局变量信息协助分析崩溃产生的原因,极大的帮助了开发人员定位问题,提高了分析异常的效率。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对本专利技术实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例中异常处理的方法的一个实施例示意图;图2是图1所示实施例中步骤S105的一个实施例示意图;图3是图1所示实施例中步骤S105的另一个实施例示意图;图4是本专利技术实施例中异常处理的装置的一个实施例示意图;图5是本专利技术实施例中电子设备的一个实施例示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方本文档来自技高网
...

【技术保护点】
1.一种异常处理的方法,其特征在于,所述方法包括:在目标应用程序中定义全局变量,以存储所述目标应用程序的运行环境信息;在所述目标应用程序中编写生成dump文件的功能函数;在所述目标应用程序的EXE模块中编写捕获异常的异常处理函数;在所述目标应用程序的EXE模块中注册所述异常处理函数;当所述异常处理函数捕获到异常时,通过所述生成dump文件的功能函数生成dump文件,并将所述dump文件发送到服务器,其中,所述dump文件中包括所述全局变量的数据。

【技术特征摘要】
1.一种异常处理的方法,其特征在于,所述方法包括:在目标应用程序中定义全局变量,以存储所述目标应用程序的运行环境信息;在所述目标应用程序中编写生成dump文件的功能函数;在所述目标应用程序的EXE模块中编写捕获异常的异常处理函数;在所述目标应用程序的EXE模块中注册所述异常处理函数;当所述异常处理函数捕获到异常时,通过所述生成dump文件的功能函数生成dump文件,并将所述dump文件发送到服务器,其中,所述dump文件中包括所述全局变量的数据。2.根据权利要求1所述的方法,其特征在于,在所述目标应用程序的EXE模块中编写捕获异常的异常处理函数,包括:在所述目标应用程序中定义一个异常处理函数,所述异常处理函数中定义了处理的异常类型信息,以及在捕获异常时调用所述生成dump文件的功能函数。3.根据权利要求1所述的方法,其特征在于,当所述异常处理函数捕获到异常时,通过所述生成dump文件的功能函数生成dump文件,包括:当所述异常处理函数捕获到异常时,在所述目标应用程序中编写调用系统提供的功能函数CreateFile的模块,以创建一个dump文件;在所述目标应用程序中编写调用系统函数MiniDumpWriteDump的模块,以将生成的dump信息写入到dump文件;在所述dump文件尾部写入所述全局变量的数据。4.根据权利要求3所述的方法,其特征在于,所述dump文件中还包括所述目标应用程序运行过程中生成的错误日志信息;当所述异常处理函数捕获到异常时,通过所述生成dump文件的功能函数生成dump文件,还包括:将所述目标应用程序运行过程中生成的错误日志文件合并写入到所述dump文件中。5.根据权利要求3或4所述的方法,其特征在于,所述在所述dump文件尾部写入所述全局变量的数据,包括:调用系统文件写入函数WriteFile...

【专利技术属性】
技术研发人员:周志刚张文明陈少杰
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北,42

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

1