温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Perl语言中Perl如何调试

发布时间:2021-12-06 10:11:15 来源:亿速云 阅读:182 作者:小新 栏目:开发技术

这篇文章主要介绍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。

以上是“Perl语言中Perl如何调试”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI