CN102750218A - 一种程序分析方法、系统、客户端及服务器端 - Google Patents

一种程序分析方法、系统、客户端及服务器端 Download PDF

Info

Publication number
CN102750218A
CN102750218A CN2011101018206A CN201110101820A CN102750218A CN 102750218 A CN102750218 A CN 102750218A CN 2011101018206 A CN2011101018206 A CN 2011101018206A CN 201110101820 A CN201110101820 A CN 201110101820A CN 102750218 A CN102750218 A CN 102750218A
Authority
CN
China
Prior art keywords
program
branch
expected codes
server end
fault
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011101018206A
Other languages
English (en)
Other versions
CN102750218B (zh
Inventor
华有为
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangzhou Kugou Computer Technology Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201110101820.6A priority Critical patent/CN102750218B/zh
Publication of CN102750218A publication Critical patent/CN102750218A/zh
Application granted granted Critical
Publication of CN102750218B publication Critical patent/CN102750218B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明实施例公开了一种程序分析方法,包括:客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端;所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。本发明实施例还公开了一种客户端、服务器端及程序分析系统。采用本发明,可对程序运行过程中出现的故障情况进行记录、分析和处理,程序分析过程简单、高效,且有利于程序的改进。

Description

一种程序分析方法、系统、客户端及服务器端
技术领域
本发明涉及计算机技术领域,尤其涉及一种程序分析方法、系统、客户端及服务器端。
背景技术
所谓程序的容错性就是程序面对故障时的处理能力,以加法计算器程序为例,正常情况是:“用户输入数字,单击求和按钮进行求和”,针对正常情况的程序代码即为加法计算器程序的预期代码分支;故障情况是:“用户没有输入任何数字而单击了求和按钮”、“用户输入了几个汉字并点击求和按钮”、“用户输入了一个很大的数字(超过了数据类型的范围)并单击求和按钮”等等,针对故障情况的程序代码即为加法计算器程序的非预期代码分支。程序的容错性使得程序在面对故障时依然可以基本正常的运行。
发明人发现,现有的程序分析方案并未关注程序运行过程中发生的故障,即现有方案并不对程序运行非预期代码分支时的故障进行分析,仅在程序发生异常无法运行时才进行上报和处理,因此,现有的程序分析方案缺乏对程序的整体工作状态和工作过程中出现的故障的分析,不利于程序的改进;另外,现有方案一般采用人工对程序异常情况进行分析和处理,效率较低。 
发明内容
本发明实施例所要解决的技术问题在于,提供一种程序分析方法、系统,客户端及服务器端,可对程序运行过程中出现的故障情况进行记录、分析和处理,程序分析过程简单、高效,且有利于程序的改进。
为了解决上述技术问题,本发明实施例提供了一种程序分析方法,包括:
客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端;
所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。
其中,所述客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端,包括:
当程序运行任一非预期代码分支时,客户端在位段中将所述非预期代码分支对应的位进行标记,所述位段包括至少一个位,其中每一位对应于所述程序的唯一一个非预期代码分支;
当所述程序运行结束后,所述客户端将所述位段上报至服务器端。
其中,所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况,包括:
服务器端接收并解析所述客户端上报的位段,确定所述位段中各个标记位对应的非预期代码分支;
所述服务器端根据预设的非预期代码分支与故障的对应关系,获得各个非预期代码分支对应的故障;
所述服务器端根据各个非预期代码分支对应的故障,获得所述程序运行过程中出现的故障情况。
其中,所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况之后,还包括:
所述服务器端根据所述程序运行过程中出现的故障情况,生成所述程序的预警变化信息;
所述服务器端输出所述预警变化信息。
相应地,本发明实施例还提供了一种客户端,包括:
记录单元,用于记录程序运行的非预期代码分支;
上报单元,用于将所述记录单元的记录结果上报至服务器端。
其中,所述记录单元用于当程序运行任一非预期代码分支时,在位段中将所述非预期代码分支对应的位进行标记,所述位段包括至少一个位,其中每一位对应于所述程序的唯一一个非预期代码分支;
所述上报单元当所述程序运行结束后,将所述记录单元标记后的位段上报至服务器端。
相应地,本发明实施例还提供了一种服务器端,包括:
接收模块,用于接收客户端上报的记录结果;
故障分析模块,用于根据预设的非预期代码分支与故障的对应关系,解析所述接收模块接收的记录结果,获得所述程序运行过程中出现的故障情况。
其中,所述接收模块接收客户端上报的位段;所述故障分析模块包括:
解析单元,用于解析所述接收模块接收的位段,确定所述位段中各个标记位对应的非预期代码分支;
故障确定单元,用于根据预设的非预期代码分支与故障的对应关系,获得所述解析单元得到的各个非预期代码分支对应的故障;
分析单元,用于根据所述故障确定单元得到的各个非预期代码分支对应的故障,获得所述程序运行过程中出现的故障情况。
其中,所述服务器端还包括:
预警生成模块,用于根据所述程序运行过程中出现的故障情况,生成所述程序的预警变化信息;
输出模块,用于输出所述预警生成模块生成的预警变化信息。
相应地,本发明实施例还提供了一种程序分析系统,包括服务器端及至少一个客户端,其中:
所述客户端,用于记录程序运行的非预期代码分支,并将记录结果上报至所述服务器端;
所述服务器端,用于接收所述客户端上报的记录结果,并根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。
实施本发明实施例,具有如下有益效果:
1、本发明实施例的客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端,由服务器端根据预设的非预期代码分支与故障的对应关系,获得程序运行过程中出现的故障情况,这种全流程故障记录、汇总上报的分析方式,简单、高效,有利于掌握程序的整体工作状态和工作过程中出现的故障(细节),便于程序开发者即时改进程序,即时调整程序的发布策略。
2、本发明实施例的服务器端根据分析得到的程序运行过程中出现的故障情况,生成预警变化信息并输出,可使程序开发者能够即时改进程序,提高用户对程序的使用体验。 
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的程序分析系统的实施例的结构示意图;
图2为本发明的位段的实施例的结构示意图;
图3为本发明的客户端的实施例的结构示意图;
图4为本发明的服务器端的第一实施例的结构示意图;
图5为本发明的服务器端的第二实施例的结构示意图;
图6为本发明的服务器端的故障分析模块的实施例的结构示意图;
图7为本发明的程序分析方法的第一实施例的流程图;
图8为本发明的程序分析方法的第二实施例的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参见图1,为本发明的程序分析系统的实施例的结构示意图;所述系统包括:至少一个客户端10(图中仅对其一进行标号),服务器端20。
所述客户端10,用于记录程序运行的非预期代码分支,并将记录结果上报至所述服务器端20。
具体实现中,所述客户端10为连接于服务器端20的所有客户端,图1中仅示出三个,实际应用中并不限于三个。该客户端10包括但不限于:电脑、智能手机、PDA(Personal Digital Assistant,掌上电脑)、IPAD等终端。所述客户端10可采用位段的方式记录程序运行的非预期代码分支,其中,非预期代码分支指针对程序运行过程中可能出现的故障情况而开发的程序代码。实际应用中,程序一般包括预期代码分支和非预期代码分支,非预期代码分支使得程序在面对故障时依然可以基本运行,其体现了程序面对故障时的处理能力。其中,位段是指以位为最小单位的数据结构,所述位段包括至少一个位。
具体请一并参见图2,为本发明的位段的实施例的结构示意图,图2中设定位段大小为1KB,总共包含32000位,对应32000个非预期代码分支。预先将程序的所有非预期代码分支与位段中的位一一对应,比如:某程序的第一段非预期代码分支与位段中的第一位相对应, 该程序的第二段非预期代码分支与位段中的第二位相对应,该程序的第N段非预期代码分支与位段中的第N位相对应;当程序运行了第一段非预期代码分支,所述客户端10即将位段中的第一位进行标记;当程序运行了第四段非预期代码分支,所述客户端10即将位段中的第四位进行标记(请参见图2)。所述客户端10采用按位标记方式,将程序运行的所有非预期代码分支均进行标记,最后在程序运行结束后,将位段上报至所述服务器端20。
需要说明的是,所述客户端10采用位段方式记录时,程序与位段可一一对应,也可采用一个位段对应需要分析的所有程序;另外,程序运行结束可以指程序运行完成,也可以指程序出现异常无法运行而结束。
可以理解的是,所述客户端10采用位段的方式记录程序运行非预期代码分支仅为举例,其他情况,比如:若程序运行过程中出现的非预期代码分支较少,则可直接对非预期代码分支进行记录,然后汇总记录结果上报至所述服务器端20;再如:所述客户端10可采用位置信息记录非预期代码分支,如:非预期代码分支位于程序的多少行,等等,然后汇总记录结果上报至所述服务器端20;上述其他情况下可类似分析,在此不赘述。
所述服务器端20,用于接收所述客户端10上报的记录结果,并根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。
所述服务器端20接收所述客户端10上报的记录结果,以位段为例,所述服务器端20首先接收所述客户端10上报的位段,并解析所述位段中各个标记位,确定每个标记位对应的程序运行的非预期代码分支,然后根据预设的非预期代码分支与故障的对应关系,获得所述程序运行过程中出现的故障情况。具体实现中,每一个非预期代码分支均对应相应的故障,比如:硬盘写程序的预期分支为:硬盘写操作成功;该程序的非预期代码分支为:硬盘写操作失败;当程序运行了硬盘写程序的非预期代码分支,则表明该程序运行过程中出现了“硬盘写操作失败”的故障,所述服务器端20解析出该非预期代码分支后,即根据预设的非预期代码分支与故障的对应关系,确认所述硬盘写操作程序运行过程中出现了“硬盘写操作失败”的故障。需要说明的是,非预期代码分支与故障的对应关系在程序编写过程中预先设定,每一个非预期代码分支的出现即表示程序运行过程中出现了相应的故障,所述服务器端20通过解析客户端10上报的位段,获得所述程序运行过程中出现的整体故障情况(即整个细节)。
本发明实施例可对程序运行过程中出现的故障情况进行记录、分析和处理,程序分析过程简单、高效,且有利于程序的改进。
为了更清楚地说明本发明,下面将对本发明的客户端进行详细介绍。
请参见图3,为本发明的客户端的实施例的结构示意图;所述客户端10包括:
记录单元101,用于记录程序运行的非预期代码分支。
具体实现中,所述记录单元101可采用位段的方式记录程序运行的非预期代码分支,所述位段包括至少一个位,其中每一位对应于所述程序的唯一一个非预期代码分支。具体请一并参见图2。预先将程序的所有非预期代码分支与位段中的位一一对应,比如:某程序的第一段非预期代码分支与位段中的第一位相对应, 该程序的第二段非预期代码分支与位段中的第二位相对应,该程序的第N段非预期代码分支与位段中的第N位相对应;当程序运行了第一段非预期代码分支,所述记录单元101即将位段中的第一位进行标记;当程序运行了第四段非预期代码分支,所述记录单元101即将位段中的第四位进行标记(请参见图2)。所述记录单元101采用按位标记方式,将程序运行的所有非预期代码分支均进行标记。
需要说明的是,所述记录单元101采用位段方式记录时,程序与位段可一一对应,也可采用一个位段对应需要分析的所有程序。
上报单元102,用于将所述记录单元101的记录结果上报至服务器端。
所述上报单元102当所述程序运行结束后,将所述记录单元101记标记后的位段上报至服务器端,此处,程序运行结束可以指程序运行完成,也可以指程序出现异常无法运行而结束。
可以理解的是,所述记录单元101采用位段的方式记录程序运行非预期代码分支仅为举例,其他情况,比如:若程序运行过程中出现的非预期代码分支较少,所述记录单元101可直接对非预期代码分支进行记录,然后汇总记录结果由所述上报单元102上报至所述服务器端20;再如:所述记录单元101可采用位置信息记录非预期代码分支,如:非预期代码分支位于程序的多少行,等等,然后汇总记录结果由所述上报单元102上报至所述服务器端20;上述其他情况下可类似分析,在此不赘述。
本发明实施例可对程序运行过程中出现的故障情况进行记录、上报,有利于程序的分析处理和改进。
为了更清楚地说明本发明,下面将对本发明的服务器端进行详细介绍。
请参见图4,为本发明的服务器端的第一实施例的结构示意图;所述服务器端20包括:
接收模块201,用于接收客户端10上报的记录结果。具体实现中,根据所述客户端10对程序运行的非预期代码分支所采用的记录方式,所述接收模块201接收到的所述客户端10上报的记录结果可以为位段,还可以为非预期代码分支的直接汇总结果,或者是非预期代码分支的位置信息记录等等。
故障分析模块202,用于根据预设的非预期代码分支与故障的对应关系,解析所述接收模块201接收的所述记录结果,获得所述程序运行过程中出现的故障情况。
所述故障分析模块202首先解析所述接收模块201接收的位段中各个标记位,确定每个标记位对应的程序运行的非预期代码分支,然后根据预设的非预期代码分支与故障的对应关系,获得所述程序运行过程中出现的故障情况。具体实现中,每一个非预期代码分支均对应相应的故障,比如:硬盘写程序的预期分支为:硬盘写操作成功,其非预期代码分支为:硬盘写操作失败;当程序运行了硬盘写程序的非预期代码分支,则程序出现了“硬盘写操作失败”的故障,所述故障分析模块202解析出该非预期代码分支后,即根据预设的非预期代码分支与故障的对应关系,确认所述程序运行过程中出现了“硬盘写操作失败”的故障。需要说明的是,非预期代码分支与故障的对应关系在程序编写过程中预先设定,每一个非预期代码分支的出现即表示程序运行过程中出现了相应的故障。
本发明实施例可对程序运行过程中出现的故障情况进行分析和处理,程序分析过程简单、高效,有利于程序的改进。
请参见图5,为本发明的服务器端的第二实施例的结构示意图;与上一实施例相同,所述服务器端20包括:接收模块201和故障分析模块202。本实施例中,所述服务器端20还包括:
预警生成模块203,用于根据所述程序运行过程中出现的故障情况,生成所述程序的预警变化信息。
具体实现中,所述预警变化信息可以为所述程序运行过程中的各个故障出现次数的排行。由于各个客户端10均向服务器端20上报了记录结果,所述服务器端20通过故障分析得到各个客户端10的程序运行过程中出现的故障情况,所述预警生成模块203根据所述服务器端20分析得到的程序运行过程中出现的故障情况,生成所述程序的预警变化信息,其中,生成预警变化信息的具体过程为:所述预警生成模块203统计各个客户端10运行的相同版本的相同程序出现的各个故障的排行,以及统计各个客户端10运行的不同版本的相同程序出现的各个故障的排行。
输出模块204,用于输出所述预警生成模块203生成的预警变化信息。
所述输出模块204可采用曲线或报表的形式输出所述预警生成模块203生成的预警变化信息(即故障排行),方便程序开发者能够即时改进程序,即时调整程序的发布策略。
本发明实施例可根据程序运行过程中出现的故障情况生成预警变化信息,便于程序开发者即时改进程序,即时调整程序的发布策略。
为了更清楚地说明本发明,下面将对本发明的服务器端的故障分析模块进行详细介绍。
请参见图6,为本发明的服务器端的故障分析模块的实施例的结构示意图;所述故障分析模块202包括:
解析单元221,用于解析所述接收模块201接收的位段,确定所述位段中各个标记位对应的非预期代码分支。
如前述,由于程序的所有非预期代码分支与位段中的位一一对应,所述解析单元221在所述接收模块201接收到客户端10上报的位段后,解析所述位段,确定所述位段中各个标记位对应的非预期代码分支。
故障确定单元222,用于根据预设的非预期代码分支与故障的对应关系,获得所述解析单元221得到的各个非预期代码分支对应的故障。
具体实现中,每一个非预期代码分支均对应相应的故障,比如:硬盘写程序的预期分支为:硬盘写操作成功;该程序的非预期代码分支为:硬盘写操作失败;当程序运行了硬盘写程序的非预期代码分支,则表明该程序运行过程中出现了“硬盘写操作失败”的故障,所述故障确定单元222根据预设的非预期代码分支与故障的对应关系,确认所述硬盘写操作程序运行过程中出现了“硬盘写操作失败”的故障。
分析单元223,用于根据所述故障确定单元222得到的各个非预期代码分支对应的故障,获得所述程序运行过程中出现的故障情况。
非预期代码分支与故障的对应关系在程序编写过程中预先设定,每一个非预期代码分支的出现即表示程序运行过程中出现了相应的故障,所述分析单元223根据所述故障确定单元222得到的各个非预期代码分支对应的故障,可确定所述程序运行过程中出现的整体故障情况(即整个细节)。
本发明实施例可对程序运行过程中出现的故障情况进行分析和处理,程序分析过程简单、高效,有利于程序的改进。
为了更清楚地说明本发明,下面将对本发明的程序分析方法进行详细介绍。
请参见图7,为本发明的程序分析方法的第一实施例的流程图;所述方法包括:
S101,客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端。
具体实现中,所述客户端为连接于服务器端的所有客户端。所述S101中,所述客户端可采用位段的方式记录程序运行的非预期代码分支,具体请一并参见图2。预先将程序的所有非预期代码分支与位段中的位一一对应,比如:某程序的第一段非预期代码分支与位段中的第一位相对应, 该程序的第二段非预期代码分支与位段中的第二位相对应,该程序的第N段非预期代码分支与位段中的第N位相对应;当程序运行了第一段非预期代码分支,所述客户端执行所述S101,将位段中的第一位进行标记;当程序运行了第四段非预期代码分支,所述客户端执行所述S101,将位段中的第四位进行标记(请参见图2)。所述S101中,所述客户端采用按位标记方式,将程序运行的所有非预期代码分支均进行标记,最后在程序运行结束后,将位段上报至所述服务器端。
需要说明的是,所述客户端采用位段方式记录时,程序与位段可一一对应,也可采用一个位段对应需要分析的所有程序;另外,程序运行结束可以指程序运行完成,也可以指程序出现异常无法运行而结束。
可以理解的是,所述S101采用位段的方式记录程序运行非预期代码分支仅为举例,其他情况,比如:若程序运行过程中出现的非预期代码分支较少,则可所述S101直接对非预期代码分支进行记录,然后汇总记录结果上报至所述服务器端;再如:所述S101可采用位置信息记录非预期代码分支,如:非预期代码分支位于程序的多少行,等等,然后汇总记录结果上报至所述服务器端;上述其他情况下可类似分析,在此不赘述。
S102,所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。
所述S102中,所述服务器端接收所述客户端执行所述S101后上报的记录结果,以位段为例,所述服务器端首先接收所述客户端上报的位段,并解析所述位段中各个标记位,确定每个标记位对应的程序运行的非预期代码分支,然后根据预设的非预期代码分支与故障的对应关系,获得所述程序运行过程中出现的故障情况。具体实现中,每一个非预期代码分支均对应相应的故障,比如:硬盘写程序的预期分支为:硬盘写操作成功;该程序的非预期代码分支为:硬盘写操作失败;当程序运行了硬盘写程序的非预期代码分支,则表明该程序运行过程中出现了“硬盘写操作失败”的故障,所述服务器端执行所述S102,解析出该非预期代码分支后,即根据预设的非预期代码分支与故障的对应关系,确认所述硬盘写操作程序运行过程中出现了“硬盘写操作失败”的故障。需要说明的是,非预期代码分支与故障的对应关系在程序编写过程中预先设定,每一个非预期代码分支的出现即表示程序运行过程中出现了相应的故障,所述服务器端在步骤S102中,通过解析客户端上报的位段,获得所述程序运行过程中出现的整体故障情况(即整个细节)。
本发明实施例可对程序运行过程中出现的故障情况进行记录、分析和处理,程序分析过程简单、高效,且有利于程序的改进。
请参见图8,为本发明的程序分析方法的第二实施例的流程图;所述方法包括:
S201,当程序运行任一非预期代码分支时,客户端在位段中将所述非预期代码分支对应的位进行标记。
具体实现中,所述S201可采用位段的方式记录程序运行的非预期代码分支,所述位段包括至少一个位,其中每一位对应于所述程序的唯一一个非预期代码分支,具体请一并参见图2。预先将程序的所有非预期代码分支与位段中的位一一对应,比如:某程序的第一段非预期代码分支与位段中的第一位相对应, 该程序的第二段非预期代码分支与位段中的第二位相对应,该程序的第N段非预期代码分支与位段中的第N位相对应;当程序运行了第一段非预期代码分支,所述S201即将位段中的第一位进行标记;当程序运行了第四段非预期代码分支,所述S201即将位段中的第四位进行标记(请参见图2)。所述S201采用按位标记方式,将程序运行的所有非预期代码分支均进行标记。
需要说明的是,所述S201采用位段方式记录时,程序与位段可一一对应,也可采用一个位段对应需要分析的所有程序。
S202,客户端将标记有所述程序运行的所有非预期代码分支的所述位段上报至服务器端。
所述S202当所述程序运行结束后,将所述S201记标记后的位段上报至服务器端,此处,程序运行结束可以指程序运行完成,也可以指程序出现异常无法运行而结束。
可以理解的是,所述S201采用位段的方式记录程序运行非预期代码分支仅为举例,其他情况,比如:若程序运行过程中出现的非预期代码分支较少,所述S201可直接对非预期代码分支进行记录,然后汇总记录结果由所述S202上报至所述服务器端;再如:所述S201可采用位置信息记录非预期代码分支,如:非预期代码分支位于程序的多少行,等等,然后汇总记录结果由所述S202上报至所述服务器端;上述其他情况下可类似分析,在此不赘述。
本实施例中,所述S201-S202为上一实施例中的S101的具体细化步骤。
S203,服务器端接收并解析所述客户端上报的位段,确定所述位段中各个标记位对应的非预期代码分支。
如前述,由于程序的所有非预期代码分支与位段中的位一一对应,所述S203接收所述S202上报的位段后,解析所述位段,确定所述位段中各个标记位对应的非预期代码分支。
S204,所述服务器端根据预设的非预期代码分支与故障的对应关系,获得各个非预期代码分支对应的故障。
具体实现中,每一个非预期代码分支均对应相应的故障,比如:硬盘写程序的预期分支为:硬盘写操作成功;该程序的非预期代码分支为:硬盘写操作失败;当程序运行了硬盘写程序的非预期代码分支,则表明该程序运行过程中出现了“硬盘写操作失败”的故障,所述S204根据预设的非预期代码分支与故障的对应关系,确认所述硬盘写操作程序运行过程中出现了“硬盘写操作失败”的故障。
S205,所述服务器端根据各个非预期代码分支对应的故障,获得所述程序运行过程中出现的故障情况。
非预期代码分支与故障的对应关系在程序编写过程中预先设定,每一个非预期代码分支的出现即表示程序运行过程中出现了相应的故障,所述S205根据所述S204得到的各个非预期代码分支对应的故障,可确定所述程序运行过程中出现的整体故障情况(即整个细节)。
本实施例中,所述S203-S205为上一实施例S102的具体细化步骤。
S206,所述服务器端根据所述程序运行过程中出现的故障情况,生成所述程序的预警变化信息。
具体实现中,所述预警变化信息可以为所述程序运行过程中的各个故障出现次数的排行。由于各个客户端均向服务器端上报了记录结果,所述S206通过故障分析得到各个客户端的程序运行过程中出现的故障情况,所述S206根据所述服务器端分析得到的程序运行过程中出现的故障情况,生成所述程序的预警变化信息,其中,生成预警变化信息的具体过程为:所述S206统计各个客户端运行的相同版本的相同程序出现的各个故障的排行,以及统计各个客户端运行的不同版本的相同程序出现的各个故障的排行。
S207,所述服务器端输出所述预警变化信息。
所述S207可采用曲线或报表的形式输出所述S206生成的预警变化信息(即故障排行),方便程序开发者能够即时改进程序,即时调整程序的发布策略。
本发明实施例可对程序运行过程中出现的故障情况进行记录、分析和处理,并可根据程序运行过程中出现的故障情况生成预警变化信息,便于程序开发者即时改进程序,即时调整程序的发布策略。
通过上述实施例的描述,本发明实施例的客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端,由服务器端根据预设的非预期代码分支与故障的对应关系,获得程序运行过程中出现的故障情况,这种全流程故障记录、汇总上报的分析方式,简单、高效,有利于掌握程序的整体工作状态和工作过程中出现的故障(细节),便于程序开发者即时改进程序,即时调整程序的发布策略;另外,本发明实施例的服务器端根据分析得到的程序运行过程中出现的故障情况,生成预警变化信息并输出,可使程序开发者能够即时改进程序,提高用户对程序的使用体验。 
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。

Claims (10)

1.一种程序分析方法,其特征在于,包括:
客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端;
所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。
2.如权利要求1所述的方法,其特征在于,所述客户端记录程序运行的非预期代码分支,并将记录结果上报至服务器端,包括:
当程序运行任一非预期代码分支时,客户端在位段中将所述非预期代码分支对应的位进行标记,所述位段包括至少一个位,其中每一位对应于所述程序的唯一一个非预期代码分支;
当所述程序运行结束后,所述客户端将所述位段上报至服务器端。
3.如权利要求2所述的方法,其特征在于,所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况,包括:
服务器端接收并解析所述客户端上报的位段,确定所述位段中各个标记位对应的非预期代码分支;
所述服务器端根据预设的非预期代码分支与故障的对应关系,获得各个非预期代码分支对应的故障;
所述服务器端根据各个非预期代码分支对应的故障,获得所述程序运行过程中出现的故障情况。
4.如权利要求1-3任一项所述的方法,其特征在于,所述服务器端根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况之后,还包括:
所述服务器端根据所述程序运行过程中出现的故障情况,生成所述程序的预警变化信息;
所述服务器端输出所述预警变化信息。
5.一种客户端,其特征在于,包括:
记录单元,用于记录程序运行的非预期代码分支;
上报单元,用于将所述记录单元的记录结果上报至服务器端。
6.如权利要求5所述的客户端,其特征在于:
所述记录单元用于当程序运行任一非预期代码分支时,在位段中将所述非预期代码分支对应的位进行标记,所述位段包括至少一个位,其中每一位对应于所述程序的唯一一个非预期代码分支;
所述上报单元当所述程序运行结束后,将所述记录单元标记后的位段上报至服务器端。
7.一种服务器端,其特征在于,包括:
接收模块,用于接收客户端上报的记录结果;
故障分析模块,用于根据预设的非预期代码分支与故障的对应关系,解析所述接收模块接收的记录结果,获得所述程序运行过程中出现的故障情况。
8.如权利要求7所述的服务器端,其特征在于,所述接收模块接收客户端上报的位段;
所述故障分析模块包括:
解析单元,用于解析所述接收模块接收的位段,确定所述位段中各个标记位对应的非预期代码分支;
故障确定单元,用于根据预设的非预期代码分支与故障的对应关系,获得所述解析单元得到的各个非预期代码分支对应的故障;
分析单元,用于根据所述故障确定单元得到的各个非预期代码分支对应的故障,获得所述程序运行过程中出现的故障情况。
9.如权利要求8所述的服务器端,其特征在于,还包括:
预警生成模块,用于根据所述程序运行过程中出现的故障情况,生成所述程序的预警变化信息;
输出模块,用于输出所述预警生成模块生成的预警变化信息。
10.一种程序分析系统,包括服务器端及至少一个客户端,其特征在于:
所述客户端,用于记录程序运行的非预期代码分支,并将记录结果上报至所述服务器端;
所述服务器端,用于接收所述客户端上报的记录结果,并根据预设的非预期代码分支与故障的对应关系,解析所述记录结果,获得所述程序运行过程中出现的故障情况。
CN201110101820.6A 2011-04-22 2011-04-22 一种程序分析方法、系统、客户端及服务器端 Active CN102750218B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110101820.6A CN102750218B (zh) 2011-04-22 2011-04-22 一种程序分析方法、系统、客户端及服务器端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110101820.6A CN102750218B (zh) 2011-04-22 2011-04-22 一种程序分析方法、系统、客户端及服务器端

Publications (2)

Publication Number Publication Date
CN102750218A true CN102750218A (zh) 2012-10-24
CN102750218B CN102750218B (zh) 2016-03-02

Family

ID=47030428

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110101820.6A Active CN102750218B (zh) 2011-04-22 2011-04-22 一种程序分析方法、系统、客户端及服务器端

Country Status (1)

Country Link
CN (1) CN102750218B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155899A (zh) * 2015-04-17 2016-11-23 比亚迪股份有限公司 多媒体程序缺陷的定位方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005364A1 (en) * 2001-06-14 2003-01-02 International Business Machines Corporation Method for estimating number of internationalization faults in software code
CN1470985A (zh) * 2002-07-24 2004-01-28 力捷电脑股份有限公司 应用于外围装置的错误回报及修正方法
CN101286132A (zh) * 2008-06-02 2008-10-15 北京邮电大学 一种基于软件缺陷模式的测试方法及系统
CN101482841A (zh) * 2008-01-07 2009-07-15 环隆电气股份有限公司 嵌入式系统的除错装置及除错方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005364A1 (en) * 2001-06-14 2003-01-02 International Business Machines Corporation Method for estimating number of internationalization faults in software code
CN1470985A (zh) * 2002-07-24 2004-01-28 力捷电脑股份有限公司 应用于外围装置的错误回报及修正方法
CN101482841A (zh) * 2008-01-07 2009-07-15 环隆电气股份有限公司 嵌入式系统的除错装置及除错方法
CN101286132A (zh) * 2008-06-02 2008-10-15 北京邮电大学 一种基于软件缺陷模式的测试方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155899A (zh) * 2015-04-17 2016-11-23 比亚迪股份有限公司 多媒体程序缺陷的定位方法和系统
CN106155899B (zh) * 2015-04-17 2019-02-26 比亚迪股份有限公司 多媒体程序缺陷的定位方法和系统

Also Published As

Publication number Publication date
CN102750218B (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
Evans et al. Managing for quality and performance excellence
CN104461863A (zh) 一种业务系统测试方法、设备及系统
WO2007022363A2 (en) Conformance authority reconciliation
CN103399865A (zh) 一种生成多媒体文件的方法和装置
CN109561117A (zh) 数据采集方法及装置
CN102779067A (zh) 快捷操作设置方法及装置
US20160323402A1 (en) Visualization of user behavior
CN107729375B (zh) 一种日志数据排序的方法及装置
CN105373339A (zh) 一种硬盘数据的拷贝方法及系统
CN111680215B (zh) 一种信息推送的方法、装置和电子设备
CN104536897A (zh) 基于关键字的自动测试方法及系统
CN102750218A (zh) 一种程序分析方法、系统、客户端及服务器端
CN112710300A (zh) 一种切换可穿戴设备的表盘的方法与设备
CN110377891B (zh) 事件分析文章的生成方法、装置、设备及计算机可读存储介质
CN104238960A (zh) 硬盘格式化方法及基于硬盘的数据块存储方法和装置
CN107038216B (zh) 论文查重方法、装置、设备及存储介质
CN102236528A (zh) 一种调整触摸屏采样间隔的方法、装置和数字终端
CN113327097B (zh) 一种分析绘图方法及装置
Day Mastering risk modelling: A practical guide to modelling uncertainty with Microsoft Excel
CN112307029B (zh) 账单数据存储和账单生成方法、装置、服务器及存储介质
Prabhat et al. High performance parallel I/O
CN107844277A (zh) 一种linux下进行NVME SSD格式化的方法
CN105068765A (zh) 一种基于键值数据库的日志处理方法及系统
CN105279239A (zh) 一种分布式文件系统元数据处理延时统计方法
Lajos Computer modeling using hidden Markov model approach applied to the financial markets

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20161129

Address after: 510000 Guangzhou, Tianhe District branch Yun Yun Road, No. 16, self built room 2, building 1301

Patentee after: Guangzhou KuGou Networks Co., Ltd.

Address before: Shenzhen Futian District City, Guangdong province 518057 Zhenxing Road, SEG Science Park 2 East Room 403

Patentee before: Tencent Technology (Shenzhen) Co., Ltd.

CP02 Change in the address of a patent holder
CP02 Change in the address of a patent holder

Address after: No. 315, Huangpu Avenue middle, Tianhe District, Guangzhou City, Guangdong Province

Patentee after: GUANGZHOU KUGOU COMPUTER TECHNOLOGY Co.,Ltd.

Address before: 510000 room 1301, building 2, No.16 Keyun Road, Tianhe District, Guangzhou City, Guangdong Province

Patentee before: GUANGZHOU KUGOU COMPUTER TECHNOLOGY Co.,Ltd.