[发明专利]一种调试方法和调试器无效
| 申请号: | 200810091695.3 | 申请日: | 2008-04-14 |
| 公开(公告)号: | CN101561779A | 公开(公告)日: | 2009-10-21 |
| 发明(设计)人: | C·L·贝茨;涂波 | 申请(专利权)人: | 国际商业机器公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 北京市金杜律师事务所 | 代理人: | 吴立明;庞淑敏 |
| 地址: | 美国纽*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 调试 方法 | ||
技术领域
本发明涉及计算机应用开发领域,更具体地,本发明涉及一种调试方法和调试器。
背景技术
在整个应用程序开发周期中,调试是一项繁琐但却必不可少的任务。在调试过程中,编程人员借助于调试器来跟踪程序的执行过程,以便确定有问题代码的位置,进而对程序代码进行修正以消除错误。
在调试时,通常会出现需要强制执行指令的情况。例如,当程序执行到诸如if、while、case、switch等的条件语句时,用户(即编程人员)可能怀疑程序的问题出现在该条件语句中的某个分支,这时用户会期望进入期望的分支来进行调试。在这种情况下,通常用户需要通过改变条件语句的条件表达式中的变量值,来使程序执行进入到期望的分支。
在变量较少且变量之间的逻辑关系较为简单的情况下,用户可以容易地通过改变这些变量的值而进入期望的分支。然而,在很多情况下,条件表达式中有很多变量,并且变量之间的关系也非常复杂,甚至还可能涉及到复杂的函数。这时,想要确定应该如何设置变量就变得非常困难,尤其是对于诸如过程语言/接口指令(Programlanguage/Machine Instruction,PL/MI)一些老旧代码。通常用户花费了大量精力来改变变量,但是却没有进入期望的分支。这时要想进入期望的分支,用户就必须重新运行程序,并再次尝试改变变量的值。
在现有技术中,已经出现一些允许程序执行退回的调试器,这为用户提供了改变变量值的机会,同时无需重新运行程序。但是,由于变量过多且变量关系过于复杂,因此用户仍然需要尝试很多次,这非常麻烦。另外,在进入期望的分支之前,用户可能已经尝试大量的变量,所以重建用户所处的确切状态很困难,这要求用户在每次程序执行退回时,将已经被改变的值恢复到原来的值。
但是,出于系统完整性的原因,现有技术中更多的调试器并不允许上述的退回操作,诸如IBM System i系列机器就不允许这种退回操作。其原因在于,允许退回操作意味着允许存在不为编译器所知的控制流,这可能会导致系统完整性问题。因此在这种情况下,用户只能通过重新运行程序来获得再次改变变量的值的机会,以便进入期望的分支。
因此在现有技术中,在任何情况下,当需要强制执行指令时,只能由用户以手动方式来改变变量,并且需要反复进行很多次。而且,在每次重新改变变量时,通常还需要重新运行程序,这是非常令人烦恼的过程。
为此,非常需要一种改进的调试方法和调试器,以使用户从上述反复进行的操作中解脱出来。
发明内容
有鉴于此,本发明提供了一种改进的调试方法和调试器,使得程序强制进入用户期望的分支而无需用户改变变量的值。
在本发明的第一方面中,提供了一种调试方法,包括:在调试过程中接收强制执行分支的用户命令;和响应于所述用户命令,自动地强制执行用户指定的分支。
在本发明的一个实施例中,所述强制执行步骤包括:直接修改控制分支的处理器状态字,以使得自动地强制执行用户指定的分支。
在本发明的另一实施例中,所述强制执行步骤包括:间接修改控制分支的处理器状态字,以使得自动地强制执行用户指定的分支。
在本发明的又一个实施例中,所述间接修改处理器状态字步骤包括:为所述条件语句添加强制分支变量;和修改所述强制分支变量,以便强制进入用户指定的分支。
在本发明的再一个实施例中,所述间接修改处理器状态字步骤包括:在编译过程中,获取与所述条件表达式所涉及的变量以及它们之间的逻辑关系;对所述变量和逻辑关系进行分析,以得到为进入用户指定的分支而修改变量的方案;和根据所述得到的方案修改所述变量,以使得自动地强制执行用户指定的分支。
在本发明的第二方面中,提供了一种调试器,包括:命令接收单元,配置用于在调试过程中接收强制执行分支的用户命令;和强制分支单元,配置用于响应于所述用户命令,自动地强制执行用户指定的分支。
根据本发明的调试方法和调试器,可以自动地强制执行用户期望的指令,而无需用户反复改变变量的值,从而显著地降低了调试的任务量,为用户带来了更好的体验,并且减少了调试时间。
附图说明
通过结合附图对本发明的具体实施例进行详细的描述,本发明的上述以及其他方面和优势将更加明显。
在本发明的附图中,相同的附图标识表示相同或者类似的部件,在附图中:
图1示意性地示出了根据本发明一个实施例的调试方法的流程图;
图2示意性地示出了根据本发明另一实施例的调试方法的流程图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国际商业机器公司,未经国际商业机器公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810091695.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:能有效防止雨水直接进入的外平开窗“Z”型中挺
- 下一篇:挡车装置





