提供和收集与程序的异常终止相关的数据的方法和设备的制作方法

文档序号:6376627阅读:187来源:国知局
专利名称:提供和收集与程序的异常终止相关的数据的方法和设备的制作方法
技术领域
本发明一般地涉及提供和收集与程序的异常终止相关的数据的方法和设备,并且更具体地,涉及用于通过使用版本管理信息而收集当程序异常终止时的数据的方法和设备,以及涉及用于分析收集的数据的方法和设备。
背景技术
当在程序等中的意想不到的错误发生时,用户首先要求研发了该程序的公司解决错误的问题,并且程序研发公司试图通过与个人用户的一对一的交流来解决该问题。然而,根据程序研发公司的观点,由于重复工作的过程,试图经由与多个个人用户中的每一个个 人用户进行一对一的交流来解决问题是浪费时间和金钱的。而且,因为程序研发公司应对程序太慢,所以甚至个人用户可能抱怨。因此,程序研发公司通过收集以提取程序的所有或部分内容的方式获得的转储文件以校正程序错误、核对数据和备份数据而调试意想不到的错误。然而,该方法的缺陷在于,根据各个用户或各个服务提供商,程序的源代码、版本和运行环境具有不同的特性,因此使得难以有效地应对程序错误。

发明内容
因此,本发明的宗旨是解决在现有技术中出现的上述问题,并且本发明的目的是提供用于提供和收集与程序的异常终止相关的数据的方法和设备,该方法和设备可以解决如下的传统问题因为当在程序中发生错误时仅利用转储文件来调试错误,所以难以有效和快速地调试错误。根据实现上述目的的本发明的一个方面,提出了一种提供与程序的异常终止相关的数据的方法,该方法包括提取原因数据,该原因数据包括异常终止的程序的版本信息;通过收集详细说明正在执行所述异常终止的程序的装置的硬件或软件的至少一块核对数据以及通过利用所述原因数据来生成与所述异常终止的原因相关的标识数据而执行错误数据生成操作;以及,向外部发送收集到的核对数据和生成的标识数据。根据实现上述目的的本发明的另一个方面,提出了一种提供与程序的异常终止相关的数据的设备,该设备包括状态核对单元,所述状态核对单元被构造为提取包括异常终止的程序的版本信息的原因数据;错误数据生成单元,所述错误数据生成单元被构造为收集详细说明正在执行所述异常终止的程序的装置的硬件或软件的至少一块核对数据以及通过利用所述原因数据来生成与所述异常终止的原因相关的标识数据;和数据发送单元,所述数据发送单元被构造为向外部发送收集到的核对数据和生成的标识数据。根据实现上述目的的本发明的又一个方面,提出了一种用于收集与程序的异常终止相关的数据的方法,该方法包括从外部装置接收版本信息和标识数据并且确定所述版本信息和所述标识数据是否存储在调试数据库(DB)中;以及,接收详细说明正在执行所述异常终止的程序的装置的硬件或软件的至少一块核对数据以及更新在调试DB中的所述标识数据和所述核对数据中的至少一个。根据实现上述目的的本发明的又一个方面,提出了一种用于收集与程序的异常终止相关的数据的设备,该设备包括调试数据库(DB)确定单元,所述调试数据库(DB)确定单元被构造为从外部装置接收版本信息和标识数据并且确定所述版本信息和所述标识数据是否存储在调试数据库(DB)中;和数据更新单元,所述数据更新单元被构造为接收详细说明正在执行所述异常终止的程序的装置的硬件或软件的至少一块核对数据以及更新在所述调试DB中的接收到的标识数据和核对数据中的至少一个。


根据下面结合附图的详细描述,本发明的上述和其它目的、特征以及优点将更加
容易理解
图I是示出根据本发明的实施方式的用于提供与程序的异常终止相关的数据的方法的流程图;图2是示出根据本发明的实施方式的用于提供与程序的异常终止相关的数据的设备的框图;图3是示出根据本发明的实施方式的用于收集与程序的异常终止相关的数据的方法的流程图;和图4是示出根据本发明的实施方式的用于收集与程序的异常终止相关的数据的设备的框图。
具体实施例方式下面,将参考附图详细地描述本发明的实施方式。在下面的描述中,可能不必要地模糊本发明的宗旨的已知构造或功能的详细描述将省略。在下文中,将参考图I描述由根据本发明的实施方式的数据提供设备执行的用于提供与程序的异常终止相关的数据的方法。在步骤100,状态核对单元100提取包括异常终止程序的版本信息的“原因数据”。例如,版本信息指的是使得程序的版本可以被外部地识别的数字或字符的组合,并且可以包括版本代码。当由程序的研发人员或管理人员执行程序的更新等时,版本信息可以被修改。根据本发明的实施方式,版本信息的特征可以在于,将版本代码进行编码,使得仅经过认证的用户可以访问版本信息。被编码为利用包括在版本代码中的认证密钥进行加密的该版本代码可以被分配和实现为使得程序研发人员或管理人员将与分配的版本代码相对应的认证密钥对存储在数据收集设备中。因此,当数据提供设备发送包括被编码为使得仅经认证的用户可以访问数据的版本代码的该数据时,数据收集设备可以通过对经编码的版本代码进行解码来提取认证密钥,以及利用包括在数据收集设备中的认证密钥对来对提取的认证密钥进行认证。这里,“原因数据”表示通过提取程序、应用程序、客户应用程序的全部或部分内容以校正程序的错误、核对数据和备份数据而获得的文件。在本发明的实施方式中,原因数据可以被实现为小型转储文件。术语“小型转储文件”表示包括与程序的异常终止相关的系统数据和存储器数据(诸如当由于程序或应用程序引起的死机发生时的堆栈跟踪信息或堆阵信息)的文件。一般地,在用户的计算机等上,在程序或应用程序由于死机等而被强制终止的情形中,如果生成了小型转储文件,则用户可以将生成的小型转储文件发送给程序研发人员。程序研发人员可以使用相应的小型转储文件来调试其中已经发生了错误的部分。一般地,当小型转储文件被使用时,仅其中已经发生了相应程序的错误的函数或功能的地址可以是已知的。然而,本发明使用包括版本信息的原因数据,从而可以利用存储在数据收集设备中的大量数据中的具有相同的版本信息的多块数据来分析错误,因此获得识别相应错误的详细函数地址等的优点。在步骤S110,由状态核对单元100调用错误数据生成步骤。当程序等由于异常终止而被终止时,程序可能在其中与错误相关的原因数据没有被发送到外部装置的状态中终止。因此,根据本发明的实施方式,在异常终止发生之前调用错误数据生成步骤,因此获得了在不用投入单独的资源的情况下准确地报告错误的优点。错误数据生成步骤除非被调用,否则不被执行,并且如果状态核对单元100确定当前的状态对应异常终止,则可以通过调用错误处理步骤来执行错误数据生成步骤。在本发明的另一个实施方式中,当异常终止发生时,可以执行设置,使得原因数据 文件被存储在存储器中持续预定时间段。原因数据文件被存储的预定时间段可以由用户事先设定,使得当在异常终止已经发生之后调用错误数据生成步骤时,存储在存储器中的原因数据被获取并且用于错误数据生成步骤。一般地,当程序异常地终止时,其中针对异常终止的程序、应用程序等的全部过程终止的情形可能发生。因此,根据本发明的实施方式,原因数据文件被存储在存储器中持续预定时间段,因此获得了防止其中在没有执行错误数据生成步骤的情况下,过程与原因数据一起地终止的情形的优点。在步骤S120,错误数据生成单元200检验与原因数据相关的核对数据的设置,并且根据核对数据的经检验的设置收集核对数据。术语“核对数据”可以不仅包括曾经正在执行异常终止的程序的装置(例如,程序曾经正在其上运行的计算机的处理器、主板、显示卡、存储器和网络)的硬件规格,而且还包括与视频或音频编解码器相关的软件信息以及必须用来执行计算机上的程序等的其它程序。根据本发明的实施方式,核对数据的设置可以被实现为它们可以由外部装置来检验。术语“外部装置”表示可以被提供有核对数据的设置的装置,并且包括诸如外部数据库(DB)、外部服务器和外部web这样的部件。外部装置从用户接收与核对数据相关的设置。因此,优选的是,由用户对核对数据进行设置,以防止关于不合理的数据收集的规则或规章被侵犯,并且收集分析错误所需的核对数据。根据本发明的是实施方式,错误数据生成单元200可以请求外部装置检验核对数据的设置并且可以根据由外部装置请求的核对数据的设置,收集与针对异常终止的计算机相关的唯一数据。在步骤S130,错误数据生成单元200生成标识数据。标识数据表示具有唯一值的数据,从而程序研发人员或管理人员可以确定异常终止的原因。错误数据生成单元200可以利用将分析的原因数据用作种子(seed)的哈希函数来生成标识数据。
下面将描述根据本发明的实施方式的其中错误数据生成单元200生成标识数据的步骤。从原因数据中提取错误异常代码和偏移代码。错误异常代码允许当在程序的执行期间发生错误时可以执行终止程序的功能,并且包括允许利用异常来识别其中发生了错误的函数或功能的代码。偏移代码表示在程序的执行期间加载到存储器中的段的地址,并且可以提供使用相应的偏移代码来确定其中当错误发生时参考存储器的情形的功能。可以通过将提取的错误异常代码与偏移代码组合来生成组合代码。例如,当错误异常代码是10个数字字符或数字的组合并且偏移代码是6个数字字符或数字的组合时,可以通过将该两个代码彼此组合而生成16数字字符/数字串作为组合代码。将已经生成作为组合代码的16个数字字符/数字的组合用作种子,并且将哈希函数应用到该种子,从而 生成哈希代码。因此,哈希代码具有唯一的代码,并且可以确定转储是否是重复的以及相同的错误是否已经发生过。生成的哈希代码可以被设置为标识数据。数据发送单元300向设备的外部发送由错误数据生成单元200生成的标识数据和核对数据。下面将描述根据本发明的实施方式的其中数据发送单元300向外部发送数据的步骤。在步骤S140,数据发送单元300确定版本信息和标识数据是否存储在外部装置中。如上所述,外部装置包括DB、服务器等,被构造为发送与版本信息和标识数据是否存储在外部装置中相关的判定请求,并且从该外部装置接收对被请求的数据的判定响应。如果数据发送单元300从外部装置接收到指示标识数据没有被存储的响应,则在步骤S150,数据发送单元300将标识数据发送到外部装置。因为外部装置和数据提供设备具有相同的版本信息,所以外部装置可以存储版本信息和标识数据,使得通过数据发送单元300仅发送标识数据来将版本信息与标识数据匹配。即,指示标识数据不存在的响应意味着重复的转储文件不存在并且相同的错误以前还没有发生过的新的错误原因被发现。在步骤S160,数据发送单元300向外部发送与存储在外部装置中的标识数据相关联的核对数据。数据发送单元300执行步骤S150,从而外部装置存储版本信息和标识数据,并且还存储针对异常终止的计算机的核对数据,因此使得外部装置被实现为使得与版本信息和标识数据相对应的多块核对数据被分类和存储。根据本发明的实施方式,该方法可以进一步包括核对到外部装置的发送是否已经被正常地执行的步骤和如果发送没有被正常地执行的话则执行到外部装置的重发的步骤。在其中数据被发送到诸如web服务器这样的外部装置的情形中,如果大量的数据被发送到web服务器,则存在数据丢失的可能。因此,该方法进一步包括如下的步骤在基于本发明的数据提供方法而已经发送数据之后核对是否已经正常地执行发送,并且如果没有正常地执行发送,则执行到外部装置的重发,因此保证数据收集是可靠的。该方法可以进一步包括如下的步骤如果已经正常地执行了到外部装置的数据发送,则删除原因数据和核对数据,因此减少了存储器的不必要的使用。根据本发明,优点在于,即使将程序的修改考虑在其中,也可以利用针对各个版本的错误统计功能提供与错误的原因相关的可靠数据。将参考图2描述根据本发明的另一个实施方式的用于提供与程序的异常终止相关的数据的设备。根据本发明的数据提供设备可以包括状态核对单元100、错误数据生成单元200和数据发送单元300。状态核对单元100提取包括异常终止的版本信息的原因数据,并且在异常终止发生之前调用错误数据生成单元200。提取包括版本信息的原因数据,从而可以利用存储在数据提供设备中的数据中的与该版本信息相对应的数据来分析错误,因此获得识别相应错误的详细函数地址等的优点。原因数据包括小型转储文件,该小型转储文件表示通过提取程序或应用程序的全部或部分内容以校正程序的错误、核对数据以及备份数据而获得的文件。错误数据生成单元200收集与原因数据相关联的核对数据,并且通过将哈希函数应用到原因数据而生成标识数据。错误数据生成单元200可以包括核对数据收集单元210、代码数据提取单元230和标识数据生成单元250。
核对数据收集单元210检验核对数据的设置,并且根据设置收集核对数据。核对数据与上面的描述中的相同,并且因此省略了其详细的描述。核对数据可以包括针对异常终止的计算机等的全部硬件和软件规格。在本发明的实施方式中,核对数据收集单元210可以被实现为通过外部装置来检验核对数据的设置,并且基于经检验的设置来收集核对数据。根据本发明的实施方式,代码数据提取单元230可以从原因数据中提取生成标识数据所需的数据,并且可以提取错误异常代码和偏移代码。标识数据生成单元250可以通过组合、混合或修改已经由代码数据提取单元提取的数据而生成组合代码,从而生成标识数据。根据本发明的实施方式,标识数据生成单元可以通过将提取的错误异常代码与提取的偏移代码组合而生成组合代码。可以利用生成的组合代码来生成具有唯一值的标识数据。在本发明的实施方式中,通过将哈希函数应用到组合代码而生成哈希代码,从而可以从生成的哈希代码生成标识数据。数据发送单元300将由错误数据生成单元200生成的标识数据和核对数据发送到外部装置。数据发送单元300可以包括标识数据发送单元310和核对数据发送单元330。标识数据发送单元310确定版本信息和标识数据是否存储在外部装置中,并且如果标识数据没有存储在外部装置中,则将标识数据发送到外部装置。即,不存在标识数据的事实意味着重复的转储文件不存在并且相同的错误以前没有发生过,因此获得了更新错误的类型的优点。核对数据发送单元330将与存储在外部装置中的标识数据相关联的核对数据发送到外部装置。外部装置存储版本信息和标识数据。因此,当仅更新核对数据时,经更新的核对数据可以被存储,从而经更新的核对数据与版本信息和标识数据二者都匹配。将参考图3描述由根据本发明的又一实施方式的用于收集与程序的异常终止相关的数据的方法。数据收集设备400从外部装置接收检验核对数据的设置的请求,并且将核对数据的设置发送到请求对核对数据的设置进行检验的外部装置。如上所述,核对数据包括针对异常终止的计算机等的硬件和软件规格。根据本发明的实施方式,接收核对数据的步骤可以包括从外部装置500接收检验核对数据的设置的请求并且将待收集的预设数据项的设置发送到外部装置的步骤、以及接收根据发送的设置而收集的至少一块核对数据的步骤。
在步骤S200,接收版本信息和标识数据,并且确定接收到的版本信息和标识数据是否存储在调试DB中。根据本发明的实施方式,调试DB的特征在于,它存储包括版本信息的数据,并且可以从外部装置接收版本信息和标识数据。根据本发明的实施方式,调试DB可以包括构成调试信息的二进制数据格式文件,可以在对源代码等进行编译的情形中生成,并且可以被实现为程序调试数据库(PDB)。因此,优点在于,如果当错误发生时,转储文件和错误DB文件存在,则可以利用调试DB识别相应错误的详细函数地址。数据收集设备400确定包括与接收到的版本信息相同的版本信息的若干块标识数据是否存储在调试DB 600中。当版本代码不同时,可以确定接收到的版本代码是错误的。数据收集设备400确定在包括相同版本信息并且存储在调试DB中的若干块标识数据中是否存在与输入的标识数据相同的数据。在步骤S210,确定相应的标识数据是否被存储,并且然后更新数据。数据更新步骤被配置为如果版本信息和标识数据被存储在调试DB中,则更新核对数据,并且如果标识数据没有被存储在调试DB中,则更新标识数据和核对数据。
根据本发明的实施方式,如果版本信息和标识数据被存储在调试DB中,则在步骤S220递增针对标识数据的标识计数。因为标识数据具有唯一的值,所以标识计数表示对重复的转储文件的数量或相同的错误发生的次数进行计数的值。例如,当与输入的标识数据相同的标识数据之前就被存储在调试DB中时,标识计数可以递增I。因此,从程序研发人员或管理人员的观点,优点在于,针对相同的错误,标识计数递增,因此同时地处理重复的错误,以及标识计数用于由多个用户导致的错误,因此减小了错误数据的处理负荷。如果标识数据没有存储在调试DB中,则在步骤S230中更新标识数据。其中标识数据没有被存储的情形意味着没有重复的转储文件或者相同的错误以前还没有发生过,从而更新与发送的版本信息相关的标识数据。例如,如果根据若干条版本信息的一系列的若干块标识数据被存储,则标识数据被添加到存储的系列中,并且然后可以被更新。在步骤S240,更新核对数据的步骤被配置为更新与版本信息和标识数据匹配的核对数据。因此,根据本发明的实施方式,如果版本信息和标识数据存在于调试DB中,则递增标识数据。当相同类型的错误以前还没有发生过并且标识数据不存在于调试DB中时,将新的标识数据添加到调试DB中,从而可以基于由数据收集设备接收到的版本信息和标识数据来分类和更新核对数据。将参考图4描述根据本发明的又一个实施方式的用于收集与程序的异常终止有关的数据的设备,其中,设备使用用于存储包括版本信息的数据的调试DB。数据收集设备400可以包括核对数据设置单元410、调试DB确定单元430和调试DB更新单元450。核对数据设置单元410接收检验核对数据的设置的请求,并且发送核对数据的经检验的设置。调试DB确定单元430接收本版信息和标识数据,并且确定版本信息和标识数据是否存储在调试DB中。如果版本信息和标识数据被存储在调试DB中,则调试DB更新单元450接收核对数据并且更新在调试DB中的核对数据,而如果标识数据没有被存储在调试DB中,则调试DB更新单元450接收标识数据和核对数据,并且更新在调试DB中的标识数据和核对数据。根据本发明的实施方式,如果版本信息(代码)和标识数据被存储在调试DB中,则调试DB更新单元450接收核对数据并且在调试DB中对它进行更新,并且递增针对标识数据的标识计数。如果标识数据没有被存储在调试DB中,则调试DB更新单元450可以接收标识数据和核对数据,并且在调试DB中对它们进行更新。本发明的实施方式可以以计算机程序的形式具体实现。本领域的计算机程序员可以容易地推出构成计算机程序的代码和代码段。而且,计算机程序被存储在计算机可读记录介质中,并且可以由计算机读取和执行,从而实施方式被实现。计算机可读记录介质包括磁性记录介质、光学记录介质和载波介质。如上所述,本发明的优点在于,服务被提供为不仅能够收集 指示错误的原因的原因数据,而且还能够基于利用程序的版本信息的版本和调试DB来管理错误,以及程序研发人员或管理人员可以利用与错误的原因相关的原因数据和调试DB来识别相应的错误的详细函数地址。如上所述,已经基于优选实施方式描述了本发明。本领域技术人员将理解的是,在不脱离本发明的范围和精神的情况下,各种修改、添加和替换是可能的。因此,公开的实施方式应该被理解为描述性的方面而不是限制性的方面。本发明的范围由随附权利要求书而不是上述说明来限定,并且在其等效范围内的所有不同都应该被理解为包括在本发明的范围中。
权利要求
1.一种提供与程序的异常终止相关的数据的方法,该方法包括以下步骤 提取包括异常终止的程序的版本信息的原因数据; 通过收集详细说明正在执行所述异常终止的程序的装置的硬件或软件的至少一条核对数据以及通过利用所述原因数据来生成与所述异常终止的原因相关的标识数据而执行错误数据生成操作;以及 向外部发送收集到的核对数据和生成的标识数据。
2.根据权利要求I所述的方法,其中,生成所述标识数据的步骤包括通过将哈希函数应用到所述原因数据而生成所述标识数据。
3.根据权利要求2所述的方法,其中,生成所述标识数据的步骤包括 从所述原因数据中提取错误异常代码和偏移代码;以及 通过将所述错误异常代码与所述偏移代码组合而生成组合代码,并且从通过将哈希函数应用到所述组合代码而生成的哈希代码生成所述标识数据。
4.根据权利要求I所述的方法,其中,收集所述核对数据的步骤包括检验所述核对数据的设置并且收集与经检验的设置相对应的至少一条核对数据。
5.根据权利要求I所述的方法,其中,向外部发送所述核对数据和所述标识数据的步骤包括 确定所述版本信息和所述标识数据是否存储在外部装置中; 如果所述标识数据没有存储在所述外部装置中,则向所述外部装置发送所述标识数据;以及 向所述外部装置发送与所述标识数据相关联的所述核对数据。
6.根据权利要求I所述的方法,其中,以利用认证密钥对所述版本信息进行加密的方式对所述版本信息进行编码。
7.根据权利要求I所述的方法,其中,在所述异常终止之前或者在所述异常终止之后的预设时间段内调用所述错误数据生成操作。
8.根据权利要求I所述的方法,该方法进一步包括以下步骤 确定所述标识数据和所述核对数据是否已经正常地发送到所述外部装置; 如果所述标识数据和所述核对数据已经被异常地发送,则向所述外部装置重发所述标识数据和所述核对数据;以及 如果所述标识数据和所述核对数据已经被正常地发送,则删除所述原因数据和所述核对数据。
9.一种提供与程序的异常终止相关的数据的设备,该设备包括 状态核对单元,所述状态核对单元被构造为提取包括异常终止的程序的版本信息的原因数据; 错误数据生成单元,所述错误数据生成单元被构造为收集详细说明正在执行所述异常终止的程序的装置的硬件或软件的至少一条核对数据以及利用所述原因数据来生成与所述异常终止的原因相关的标识数据;以及 数据发送单元,所述数据发送单元被构造为向外部发送收集到的核对数据和生成的标识数据。
10.根据权利要求9所述的设备,其中,所述错误数据生成单元包括核对数据收集单元,所述核对数据收集单元被构造为检验所述核对数据的设置并且根据经检验的设置而收集至少一条核对数据;和 标识数据生成单元,所述标识数据生成单元被构造为通过将哈希函数应用到所述原因数据而生成所述标识数据。
11.根据权利要求10所述的设备,其中,所述标识数据生成单元包括 代码数据提取单元,所述代码数据提取单元被构造为从所述原因数据中提取错误异常代码和偏移代码;和 标识数据生成单元,所述标识数据生成单元被构造为通过将所述错误异常代码与所述偏移代码组合而生成组合代码,并且从通过将哈希函数应用到所述组合代码而生成的哈希代码生成所述标识数据。
12.根据权利要求9所述的设备,其中,所述数据发送单元包括 标识数据发送单元,所述标识数据发送单元被构造为确定所述版本信息和所述标识数据是否存储在外部装置中;并且如果所述标识数据没有存储在所述外部装置中,则向所述外部装置发送所述标识数据;和 核对数据发送单元,所述核对数据发送单元被构造为向所述外部装置发送与所述标识数据相关联的所述核对数据。
13.根据权利要求9所述的设备,其中,在所述异常终止之前或者在所述异常终止之后的预设时间段内调用所述错误数据生成单元。
全文摘要
本发明涉及提供和收集与程序的异常终止相关的数据的方法和设备。在用于提供与程序的异常终止相关的数据的方法中,提取包括异常终止的程序的版本信息的原因数据。通过收集详细说明正在执行所述异常终止的程序的装置的硬件或软件的至少一块核对数据以及通过利用所述原因数据来生成与异常终止的原因相关的标识数据而执行错误数据生成操作。向外部发送收集到的核对数据和生成的标识数据。根据本发明,程序研发人员或管理人员可以利用指示错误的原因的原因数据和调试DB来识别错误的详细函数地址,并且可以容易地管理重复的错误。
文档编号G06F11/07GK102866932SQ20121033271
公开日2013年1月9日 申请日期2012年9月10日 优先权日2011年11月14日
发明者张星国, 刘光喜, 成周弦, 陈譓瑱, 李允珩 申请人:新游游戏株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1