软件Bug追踪方法及其计算机系统技术方案

技术编号:6559970 阅读:292 留言:0更新日期:2012-04-11 18:40
一种软件Bug追踪方法,该方法包括以下步骤:获取正在运行中的软件所包含的函数信息,将其保存到数据库中;当该软件运行中发生崩溃时,激活计算机操作系统中的全局触发器,以读取操作系统在该软件发生崩溃时所查找到的内存地址,该内存地址即为崩溃地址;启动操作系统中的异常处理函数,通过该异常处理函数捕获该软件发生崩溃的原因及时间;将上述崩溃地址与数据库中保存的函数信息进行比较,查找出该软件发生崩溃所对应的函数信息;根据所述软件发生崩溃的原因及时间、查找出的函数信息,生成日志文件。

【技术实现步骤摘要】

本专利技术涉及一种软件Bug追踪方法及其计算机系统,尤其涉及一种当软件运行中 发生崩溃时的Bug追踪方法及其计算机系统。
技术介绍
在软件开发与维护的过程中,经常会出现软件Bug, Bug—词的原意是臭虫或 虫子。这里是指电脑系统或程序中隐藏的一些未被发现的缺陷或问题。在各种类型的Bug 中,有的不会对软件造成危害,有的却直接会让软件崩溃,给用户带来无法估量的损失。所 述软件崩溃是指软件运行过程中,由于软件的程序错误导致该软件无法正常工作、非正常 的退出等状况。虽然可以通过严格的、有组织的软件测试尽可能的保证最终交付的软件产 品的稳定性,但依然无法避免Bug的出现。 因此,在软件运行发生崩溃之后,在最短的时间内找出Bug的问题所在并修复,快 速恢复软件,使其正常工作,能够极大的减少由于软件崩溃所带来的损失。传统做法中最普 遍的方式是采用日志形式,即对程序本身的处理状况进行记录,将获取的软件Bug信息及 文字信息进行记录,生成日志文件。这样维护人员可通过日志文件中记录的信息进行查看, 从而找到问题所在。这种方式在很大程度上提升了解决Bug的速度,然而,传统日志的操作 方式有以下缺点1.传统日志依赖程序开发人员的编码传统日志中所具备的记录Bug原因与位置的功能,依靠的是程序开发人员在可能出现Bug的地方进行异常捕获,从根本上来说,程序开发人员对程序运行的理解直接关系到日志记录的准确与否。要达到准确的捕获Bug,需要开发过程中写入大量的代码,且需要程序维护人员具备完善的异常处理经验。2.无法记录软件运行中发生崩溃的原因这一点是传统日志的最大缺陷,它只记录程序或框架所定义的错误。但对于已经投入的大型软件来说,若由于程序错误导致该软件运行中发生崩溃,往往只弹出类似0x0040104a的内存地址,之后直接退出正在运行的软件,记录 类似于严重系统错误关闭等信息,而对于出现崩溃的Bug原因却无法获取,使得用户无 法通过日志了解发生崩溃的原因。
技术实现思路
鉴于以上内容,有必要提供一种软件Bug追踪的计算机系统,其能够准确记录软 件运行中导致该软件发生崩溃时的原因,提高了软件维护的效率。 鉴于以上内容,还有必要提供一种软件Bug追踪方法,其能够准确记录软件运行 中导致该软件发生崩溃时的原因,提高了软件维护的效率。 —种软件Bug追踪的计算机系统,该计算机系统包括获取模块,用于获取正在运 行中的软件所包含的函数信息,将其保存到数据库中;激活模块,用于当该软件在运行过程 中发生崩溃时,激活计算机操作系统中的全局触发器,以读取操作系统在该软件发生崩溃 时所查找到的内存地址,该内存地址即为崩溃地址;异常捕获模块,用于启动操作系统中的 异常处理函数,通过该异常处理函数捕获该软件发生崩溃的原因及时间;查找模块,用于将3上述崩溃地址与数据库中保存的函数信息进行比较,查找出该软件发生崩溃所对应的函数 信息;日志生成模块,用于根据所述软件发生崩溃的原因及时间、查找出的函数信息,生成 日志文件。 —种软件Bug追踪方法,该方法包括以下步骤获取正在运行中的软件所包含的 函数信息,将其保存到数据库中;当该软件运行中发生崩溃时,激活计算机操作系统中的全 局触发器,以读取操作系统在该软件发生崩溃时所查找到的内存地址,该内存地址即为崩 溃地址;启动操作系统中的异常处理函数,通过该异常处理函数捕获该软件发生崩溃的原 因及时间;将上述崩溃地址与数据库中保存的函数信息进行比较,查找出该软件发生崩溃 所对应的函数信息;根据所述软件发生崩溃的原因及时间、查找出的函数信息,生成日志文 件。 相较于现有技术,所述的软件Bug追踪方法及其计算机系统,能够准确记录软件 运行中导致该软件发生崩溃时的原因,提高了软件维护的效率。附图说明 图1是本专利技术软件Bug追踪计算机系统的硬件框架图。 图2是本专利技术图1中计算机20较佳实施例的功能模块图。 图3是本专利技术软件Bug追踪方法较佳实施例的流程图。具体实施例方式如图l所示,是本专利技术软件Bug追踪的计算机系统的硬件框架图。该计算机系统 主要包括计算机20及与该计算机20相连的数据库50。所述计算机20连接有显示器10、 键盘30及鼠标40,作为具体操作时的输入、输出设备。 所述数据库50既可以内置于计算机20中,也可以外置于计算机20。该数据库50 用于存储计算机20中运行的软件的函数信息。该函数信息存于软件的编译日志文件中,其 包括该软件所包含的函数名称、函数对应的内存地址、函数所对应的源代码文件名称及函 数在源代码文件中的行数等信息。在本较佳实施例中,所述函数信息的格式(以下列举三 条函数信息为例)如下所示0001 :00000020jnain 00401020 f Test, obj Client, cpp 120001:00000060 Testl@@YAXXZ 00401060 f Test.obj Dome, cpp 65 0001 :000000a0_chaesp 004010a0 f LIBCD :chaesp.obj Clip, cpp 23 以第二条为例,其中? Test,tYAXXZ为函数名称,在本较佳实施例中,由于软件是由0++语言进行编写的,因此以问号开头的函数名称都是以0++修饰的名称,@@YAXXZ则为区别重载函数而加的后缀,所以? Testl@@YAXXZ指的是源代码文件中的Testl函数。00401060为内存地址。Test, obj表示编译时所调用的库函数。Dome.cpp表示函数Testl所对应的源代码文件名称,65表示函数Testl在源代码文件Dome, cpp中对应的代码行数。 如图2所示,是本专利技术图1中计算机20较佳实施例的功能模块图。该计算机20包 括获取模块210、激活模块211、异常捕获模块212、查找模块213及日志生成模块214。本 专利技术所称的模块是完成一特定功能的计算机程序段,比程序更适合于描述软件在计算机中的执行过程,因此在本专利技术以下对软件描述中都以模块描述。 所述获取模块210用于获取正在运行中的软件所包含的函数信息,将其保存到数 据库50中。 当该软件运行中发生崩溃时,所述激活模块211用于激活计算机20的操作系统中 的全局触发器,该全局触发器用于读取操作系统在该软件运行中发生崩溃时所查找到的内 存地址,该内存地址即为崩溃地址。具体而言,操作系统包括一种触发机制,若出现程序错 误导致该软件在运行中发生崩溃时,激活模块211会启动该触发机制,操作系统通过内部 的内存查找函数查找该软件在运行中发生崩溃位置所对应的内存地址,之后弹出一个对话 框,显示该内存地址信息。 所述异常捕获模块212用于启动操作系统中的异常处理函数,通过该异常处理函 数捕获软件运行中发生崩溃的原因及时间。 所述查找模块213用于将上述崩溃地址与数据库50中保存的函数信息进行比较, 查找出该软件运行中发生崩溃所对应的函数信息。具体而言,查找模块213将所述的崩溃 地址与数据库50中保存的函数信息中的内存地址进行比较,找出最接近的内存地址。假设 所查找到的崩溃地址为0x00401082,其中Ox为崩溃地址的前缀,查找模块213提取该 崩溃地址中前缀0x后面的信息00401082,之后与本文档来自技高网
...

【技术保护点】
一种软件Bug追踪的计算机系统,其特征在于,该计算机系统包括:获取模块,用于获取正在运行中的软件所包含的函数信息,将其保存到数据库中;激活模块,用于当该软件在运行过程中发生崩溃时,激活计算机操作系统中的全局触发器,以读取操作系统在该软件发生崩溃时所查找到的内存地址,该内存地址即为崩溃地址;异常捕获模块,用于启动操作系统中的异常处理函数,通过该异常处理函数捕获该软件发生崩溃的原因及时间;查找模块,用于将上述崩溃地址与数据库中保存的函数信息进行比较,查找出该软件发生崩溃所对应的函数信息;及日志生成模块,用于根据所述软件发生崩溃的原因及时间、查找出的函数信息,生成日志文件。

【技术特征摘要】
一种软件Bug追踪的计算机系统,其特征在于,该计算机系统包括获取模块,用于获取正在运行中的软件所包含的函数信息,将其保存到数据库中;激活模块,用于当该软件在运行过程中发生崩溃时,激活计算机操作系统中的全局触发器,以读取操作系统在该软件发生崩溃时所查找到的内存地址,该内存地址即为崩溃地址;异常捕获模块,用于启动操作系统中的异常处理函数,通过该异常处理函数捕获该软件发生崩溃的原因及时间;查找模块,用于将上述崩溃地址与数据库中保存的函数信息进行比较,查找出该软件发生崩溃所对应的函数信息;及日志生成模块,用于根据所述软件发生崩溃的原因及时间、查找出的函数信息,生成日志文件。2. 如权利要求l所述的软件Bug追踪的计算机系统,其特征在于,所述函数信息包括正 在运行的软件所包含的函数名称、函数对应的内存地址、函数所对应的源代码文件名称及 函数在源代码文件中的行数。3. 如权利要求1所述的软件Bug追踪的计算机系统,其特征在于,所述日志文件包括软 件运行中发生崩溃时的崩溃地址、时间、原因、函数名称、函数所在...

【专利技术属性】
技术研发人员:常小军
申请(专利权)人:鸿富锦精密工业深圳有限公司鸿海精密工业股份有限公司
类型:发明
国别省市:94[中国|深圳]

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

1