本发明专利技术实施例公开了一种程序分析方法,包括:客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端;所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。本发明专利技术实施例还公开了一种客户端、服务器端及程序分析系统。采用本发明专利技术,可对程序运行过程中出现的故障情况进行记录、分析和处理,程序分析过程简单、高效,且有利于程序的改进。
【技术实现步骤摘要】
本专利技术涉及计算机
,尤其涉及一种程序分析方法、系统、客户端及服务器端。
技术介绍
所谓程序的容错性就是程序面对故障时的处理能力,以加法计算器程序为例,正常情况是“用户输入数字,单击求和按钮进行求和”,针对正常情况的程序代码即为加法计算器程序的预期代码分支;故障情况是“用户没有输入任何数字而单击了求和按钮”、“用户输入了几个汉字并点击求和按钮”、“用户输入了一个很大的数字(超过了数据类型的范围)并单击求和按钮”等等,针对故障情况的程序代码即为加法计算器程序的非预期代码分 支。程序的容错性使得程序在面对故障时依然可以基本正常的运行。专利技术人发现,现有的程序分析方案并未关注程序运行过程中发生的故障,即现有方案并不对程序运行非预期代码分支时的故障进行分析,仅在程序发生异常无法运行时才进行上报和处理,因此,现有的程序分析方案缺乏对程序的整体工作状态和工作过程中出现的故障的分析,不利于程序的改进;另外,现有方案一般采用人工对程序异常情况进行分析和处理,效率较低。
技术实现思路
本专利技术实施例所要解决的技术问题在于,提供一种程序分析方法、系统,客户端及服务器端,可对程序运行过程中出现的故障情况进行记录、分析和处理,程序分析过程简单、高效,且有利于程序的改进。为了解决上述技术问题,本专利技术实施例提供了一种程序分析方法,包括 客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端; 所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。其中,所述客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端,包括 当程序运行任一非预期代码分支时,客户端在位段中将所述非预期代码分支对应的位进行标记,所述位段包括至少一个位,其中每一位对应于所述程序的唯一一个非预期代码分支; 当所述程序运行结束后,所述客户端将所述位段上报至服务器端。其中,所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况,包括 服务器端接收并解析所述客户端上报的位段,确定所述位段中各个标记位对应的非预期代码分支;所述服务器端根据预设的非预期代码分支与故障的对应关系,获得各个非预期代码分支对应的故障; 所述服务器端根据各个非预期代码分支对应的故障,获得所述程序运行过程中出现的故障情况。其中,所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况之后,还包括 所述服务器端根据所述程序运行过程中出现的故障情况,生成所述程序的预警变化信息; 所述服务器端输出所述预警变化信息。相应地,本专利技术实施例还提供了一种客户端,包括 记录单元,用于记录程序运行的非预期代码分支; 上报单元,用于将所述记录单元的记录结果上报至服务器端。其中,所述记录单元用于当程序运行任一非预期代码分支时,在位段中将所述非预期代码分支对应的位进行标记,所述位段包括至少一个位,其中每一位对应于所述程序的唯一一个非预期代码分支; 所述上报单元当所述程序运行结束后,将所述记录单元标记后的位段上报至服务器端。相应地,本专利技术实施例还提供了一种服务器端,包括 接收模块,用于接收客户端上报的记录结果; 故障分析模块,用于根据预设的非预期代码分支与故障的对应关系,解析所述接收模块接收的记录结果,获得所述程序运行过程中出现的故障情况。其中,所述接收模块接收客户端上报的位段;所述故障分析模块包括 解析单元,用于解析所述接收模块接收的位段,确定所述位段中各个标记位对应的非预期代码分支; 故障确定单元,用于根据预设的非预期代码分支与故障的对应关系,获得所述解析单元得到的各个非预期代码分支对应的故障; 分析单元,用于根据所述故障确定单元得到的各个非预期代码分支对应的故障,获得所述程序运行过程中出现的故障情况。其中,所述服务器端还包括 预警生成模块,用于根据所述程序运行过程中出现的故障情况,生成所述程序的预警变化信息; 输出模块,用于输出所述预警生成模块生成的预警变化信息。相应地,本专利技术实施例还提供了一种程序分析系统,包括服务器端及至少一个客户端,其中 所述客户端,用于记录程序运行的非预期代码分支,并将记录结果上报至所述服务器端; 所述服务器端,用于接收所述客户端上报的记录结果,并根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。实施本专利技术实施例,具有如下有益效果 I、本专利技术实施例的客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端,由服务器端根据预设的非预期代码分支与故障的对应关系,获得程序运行过程中出现的故障情况,这种全流程故障记录、汇总上报的分析方式,简单、高效,有利于掌握程序的整体工作状态和工作过程中出现的故障(细节),便于程序开发者即时改进程序,即时调整程序的发布策略。2、本专利技术实施例的服务器端根据分析得到的程序运行过程中出现的故障情况,生成预警变化信息并输出,可使程序开发者能够即时改进程序,提高用户对程序的使用体验。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图I为本专利技术的程序分析系统的实施例的结构示意图; 图2为本专利技术的位段的实施例的结构示意 图3为本专利技术的客户端的实施例的结构示意 图4为本专利技术的服务器端的第一实施例的结构示意 图5为本专利技术的服务器端的第二实施例的结构示意 图6为本专利技术的服务器端的故障分析模块的实施例的结构示意 图7为本专利技术的程序分析方法的第一实施例的流程 图8为本专利技术的程序分析方法的第二实施例的流程图。具体实施例方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。请参见图1,为本专利技术的程序分析系统的实施例的结构示意图;所述系统包括至少一个客户端10 (图中仅对其一进行标号),服务器端20。所述客户端10,用于记录程序运行的非预期代码分支,并将记录结果上报至所述服务器端20。具体实现中,所述客户端10为连接于服务器端20的所有客户端,图I中仅示出三个,实际应用中并不限于三个。该客户端10包括但不限于电脑、智能手机、PDA(PerSonalDigital Assistant,掌上电脑)、IPAD等终端。所述客户端10可采用位段的方式记录程序运行的非预期代码分支,其中,非预期代码分支指针对程序运行过程中可能出现的故障情况而开发的程序代码。实际应用中,程序一般包括预期代码分支和非预期代码分支,非预期代码分支使得程序在面对故障时依然可以基本运行,其体现了程序面对故障时的处理能力。其中,位段是指以位为最小单位的数据结构,所述位段包括至少一个位。具体请一并参见图2,为本专利技术的位段的实本文档来自技高网...
【技术保护点】
一种程序分析方法,其特征在于,包括:客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端;所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。
【技术特征摘要】
【专利技术属性】
技术研发人员:华有为,
申请(专利权)人:腾讯科技深圳有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。