除了 Data::Dumper
和 perl -d
,还有其他调试 Perl 程序的方法吗?
除了 Data::Dumper
和 perl -d
,还有其他调试 Perl 程序的方法吗?
Perl中有几个可用于调试和类似任务的工具。
内置命令行调试器。
perl -d yourcode.pl
由Andrew E. Page开发的基于Perl/Tk的图形化调试器。
这是一个免费的工具,可以在Linux和Windows上运行,用Lisp编写。源代码不可用。
这是一个由 Mark Jason Dominus 编写的关于Perl正则表达式调试器的文章。
有很多工具可以帮助你:
*
。我喜欢 Devel::Trace。它基本上可以给你一个执行转储,显示代码路径。
另一方面,测试驱动开发 目前非常流行,所以您可能会对像 Devel::NYTProf 这样的性能分析工具感兴趣,用于高级测试。请查看Tim Bunce的博客文章,了解有趣的概述。
我使用 ActiveState Komodo 进行逐步调试。
个人更喜欢 ActiveState 版本。它似乎更加稳定可靠,但需要付费(我的工作支付了费用)。如果是我的钱,那么我会使用 Eclipse 和 EPIC,因为它们是免费的。
最好的调试辅助是小型程序、短作用域、有限副作用和大量测试。在bug孵化之前停止它们。
我通常使用的工具有:
这通常足够了。还有ddd;我听说它相当不错,但从未尝试过。
对于一些任务(并非真正的调试,但接近于此),我使用Devel::NYTProf。
有些人使用print
语句来查看在程序的某些部分中发生了什么,以此来检查变量在执行该部分时实际包含的内容。(即,作为检查在执行过程中特定变量的实际内容的一种方式。)
毫无疑问,Emacs是最好的选择:
emacs my_script.pl
M-x perldb
< p > Emacs会提示您:
Run perldb (like this): perl my_script.pl
Hit enter (or add command line switches)
现在按照通常的方式使用调试器。
输入“c”继续执行代码,此时代码将会随着您的执行而被跟踪。
Emacs与其调试器完全集成,使得调试Perl代码几乎是轻而易举的。