Perl语言中Perl调试概述

开发 架构
本文向大家介绍一下Perl调试的概念,Perl编程语言在完成程序的开发以后需要进行Perl调试,通过调试发现程序中的错误,及时修正。

本文和大家重点讨论一下Perl调试的概念,Perl调试与狩猎没什么不同。***步是检测错误(通过观察错误的行为并确认其模式)。在这个阶段,错误只是一些症状。然后就是解决错误和修正错误。

功能丰富的Perl:Perl调试的技巧

错误所带来的麻烦

  软件开发人员通常都低估了软件测试的重要性。这一现象的根本原因很简单:处理错误很困难!因为错误往往暴露了代码的根本缺陷,所以有时候开发人员甚至会为了几个错误而从头开始重新编写项目的主要部分。

  我认为,调试如此重要,以至于至少要为其分配整个项目30%的时间。额外的调试时间将导致更好的产品。另一方面,如果为了更快地推出软件而缩短调试时间,那么在软件生成后,您将花上双份的时间来修复那些稍后暴露出的问题。

  有三种基本类型的错误:编码错误、文档错误和需求错误。需求错误通常由于需求不严密或缺少需求而导致。文档错误存在于手册或联机帮助中。编码错误是由程序员在实现需求时的错误而引起的。不幸的是,需求错误和文档错误不在本文范围之内,因此,我们只好只讨论如何“检测”、“解决”和“修复”编码错误了。

Perl调试的基本概念

  我们已经将编码错误定义成程序员在实现需求时产生的错误。编码错误会导致不正确的程序行为(偏离需求的行为)。因此,程序员在编写或调试程序之前首先应该知道的是程序需求。

  Perl调试与狩猎没什么不同。***步是检测错误(通过观察错误的行为并确认其模式)。在这个阶段,错误只是一些症状。

  第二步是解决错误。因为必须要在源代码中消除错误,所以,应该有一个精通程序的人来检查错误,并知道这些错误的根本原因。如果代码理解起来更容易,并且现在的代码没有比当初错误版本中的代码更多,则您可能做对了。

  第三步,也是***一步,是修复错误(请注意“修复”与“解决”是有区别的)。调试程序将源代码更改放入“现场”的生产过程,然后检查它是否正确。如果代码不正确,则表明您没有解决错误,甚至更糟糕的是,可能还引入了新的错误。既然解决错误的目的不应该是引入新错误,请确保在解决错误之后修复每个错误。

  要确保迅速找到错误并很好地理解它们,您应该对调试过程中程序使用模块和类在每个主要分支处的操作非常清楚。当然,这要求您对编写代码所用的语言(在我们的示例中是Perl)有深入的了解。因为存在所有这些需求,所以很难找到好的软件测试人员。

Perl调试器

  Perl程序员的***个资源是Perl所带的调试器。如您所见,着手使用该调试器是非常容易的。

  用调试器运行一个脚本

  perl-dprogram.pl

  Perl调试器自带帮助('h'或'hh'分别用于详细和简短的帮助屏幕)。perldocperldebug页面(在命令提示窗口输入"perldocperldebug")有更完整的Perl调试器描述。
关于Perl调试器的结论

  Emacs编辑器支持Perl调试器并使其更易于使用。您可以在Emacs中使用Info(输入M-xinfo)来阅读有关GUDEmacs的更详细信息。GUD是与Perl调试器一起工作的全局调试方式(当在Emacs中编辑Perl程序时输入M-xperldb)。

  只需少量工作就可以让vi系列的编辑器也能支持Perl调试器。有关详细信息,请参阅perldocperldebug页面。有关其它编辑器的信息,请参考每个编辑器的文档。

  Perl内置的调试器是一个强大的工具,可以执行比我们刚刚看到的简单用法复杂得多的任务。但它的确要求使用者具备大量Perl专门知识。正因为如此,我们现在要看一些简单些的工具,这些工具将更适合初级和中级Perl程序员。

Devel::ptkdb

  要使用Devel::ptkdb调试器,首先得从CPAN(请参阅下面的参考资料)下载它并将它安装在您的系统上。(某些用户可能还需要安装Tk模块,该模块也可以从CPAN获得。)就我个人看来,Devel::ptkdb在UNIX系统(如Linux)上***用。(虽然在理论上Devel::ptkdb并不限于与UNIX兼容的系统,但是,我从未听说过有人成功地在Windows上使用Devel::ptkdb。正如一句老话所讲:除了滑雪穿过旋转门之外,任何事都是可能的。)

  如果无法让系统管理员为您安装(例如,因为您自己就是系统管理员),可以尝试在命令提示行执行以下操作(可能需要以root身份执行这些操作):

  从CPAN安装Devel::ptkdb

  perl-MCPAN-e'installTk'

  perl-MCPAN-e'installDevel::ptkdb'

  如果是***次运行CPAN安装例程,那么,在回答一些初始问题之后,将自动下载并安装适当的模块。

  可以用ptkdb调试器运行程序,如下所示(使用我们以前的buggy.pl示例):

  使用Devel::ptkdb

  perl-d:ptkdbbuggy.plbuggy.pl

  要阅读Devel::ptkdb模块的文档,请使用命令"perldocDevel::ptkdb"。我们在本文中使用版本1.1071。(

【编辑推荐】

  1. Perl常见问题集锦
  2. perl调试工具ptkdb简单介绍
  3. 全面认识Perl子程序用法
  4. Perl语法 解析Perl变量使用
  5. 技术分享 解析Perl模块创建和导入方法
责任编辑:佚名 来源: csdn.net
相关推荐

2010-07-19 10:01:57

Perl函数

2010-07-19 15:37:48

Perl日期时间

2010-07-19 09:16:47

Perl包

2010-07-16 12:50:45

Perl语言

2010-07-20 10:23:24

Perl类

2010-07-13 15:43:57

Perl语言

2010-07-20 10:02:15

Perl类

2010-07-20 11:37:00

Perl函数返回值

2010-07-13 10:21:19

2010-07-13 16:34:34

Perl 哈希表

2010-07-26 16:23:23

Perl语言

2010-07-13 15:34:09

Perl语言

2010-07-23 13:23:10

Perl语言

2010-07-20 13:44:02

Perl方法

2010-07-23 13:46:27

Perl语言

2010-07-23 13:07:39

Perl

2010-07-16 17:38:12

Perl包

2010-07-16 10:53:30

Perl基础

2010-07-19 09:08:38

Perl模块

2010-07-19 10:52:39

Perl简单变量
点赞
收藏

51CTO技术栈公众号