[发明专利]一种计算机程序的调试方法无效
申请号: | 200910090813.3 | 申请日: | 2009-08-10 |
公开(公告)号: | CN101615158A | 公开(公告)日: | 2009-12-30 |
发明(设计)人: | 宋泾舸 | 申请(专利权)人: | 北京交通大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京众合诚成知识产权代理有限公司 | 代理人: | 童晓琳 |
地址: | 100044北京市西*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 计算机 程序 调试 方法 | ||
技术领域
本发明属于计算机软件开发技术领域,尤其涉及一种计算机程序的调试方法。
背景技术
程序调试是计算机软件开发的重要环节之一,其目的是发现程序代码中存在的各种问题,提高程序运行的正确性、安全性、可靠性。传统的程序调试方法采用断点设置与代码跟踪技术,如VC++、Borland C++等。对于直接编译型语言(如C/C++,Java等),编写的是直接执行的程序,由于程序的执行流程比较单一,这种方法是比较有效的。然而,对于一些执行过程复杂多变、具有不确定性的程序,同一段代码在不同系统运行条件下可能正常也可能出现故障,仅仅发现故障代码的位置常常不能准确定位故障产生的原因。采用代码跟踪的方法既繁琐又费时,特别是当程序在同一段代码上执行了大量流程后产生故障,断点追踪的方法几乎是无法定位故障的。因此,采用快速有效的故障定位技术,对于提高复杂过程计算机程序的调试效率和改进代码质量具有十分重要的意义。
发明内容
本发明的目的在于,提供一种计算机程序的调试方法,用于解决复杂运行流程的计算机程序无法快速准确定位故障的问题。
本发明的技术方案是,一种计算机程序的调试方法,其特征是所述方法包括下列步骤:
步骤1:建立在计算机程序所有运行流程中均可使用的记录流程信息的数据结构;
步骤2:被调试的计算机程序运行,判断是否产生故障,如果是,则记录故障代码位置并执行步骤3;否则,执行步骤9;
步骤3:在故障代码前面,加入用于添加流程信息的代码,通过添加流程信息的代码,刷新数据结构中记录的流程信息;
步骤4:在故障代码处,加入用于监控流程信息的代码,通过监控流程信息的代码,获取特定的流程信息;
步骤5:重新运行被调试的计算机程序,当被调试的计算机程序再次在故障代码处终止时,获取监控流程信息;
步骤6:根据监控流程信息,在故障代码处的前面插入流程信息的追踪代码;
步骤7:再次运行被调试的计算机程序,使被调试的计算机程序在发生故障时,暂停于故障代码前的追踪代码处;
步骤8:从追踪代码开始,采用常用的步进方式,继续执行被调试的计算机程序,确定故障原因并作相应修改;之后,返回步骤2;
步骤9:在修改之后,删除用于监控流程信息的监控代码。
所述数据结构为全局性数据结构。
所述数据结构独立于所述计算机程序。
所述数据结构记录的流程信息包括:递规算法的层次计数、条件表达式计数、任务计数、任务分解方法计数、动作计数、计划计数。
所述数据结构记录的流程信息可以根据被调试的计算机程序进行扩展。
所述特定的流程信息根据被调试的计算机程序预先设定。
本发明能够快速准确的定位故障代码和发生故障时的运行流程,方便地确定程序运行故障的产生原因,提高代码修改的质量和效率。
附图说明
图1是流程信息数据结构与被调试计算机程序的关系图;
图2是流程信息的数据结构示意图;
图3是智能规划软件系统的原理图;
图4是HTN搜索的流程树结构;
图5是本发明实施例提供的计算机程序的调试方法流程图。
具体实施方式
下面结合附图,对优选实施例作详细说明。应该强调的是,下述说明仅仅是示例性的,而不是为了限制本发明的范围及其应用。
本发明以层次任务网(Hierarchical Task Network,简称HTN)智能规划器程序的调试为实施例对本发明作进一步说明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京交通大学,未经北京交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910090813.3/2.html,转载请声明来源钻瓜专利网。