Perl调试改进

5

我经常需要在我的Perl程序中进行调试,其中一些程序非常大,并且不是通过“perl xxx.pl”启动的。

我已经使用了Python的pdb模块,该模块可以通过使用 import pdb;pdb.set_trace() 在程序中设置断点。

pdb.set_trace()

当执行到某个点时,程序会提供一个Python交互式shell,然后我可以进行调试。我想知道Perl中是否有类似的调试模块或方法?我还想了解其他与Perl及其模块相关的调试支持。

6
你查看过perldoc perldebug了吗?如果没有,请查看;如果有,那么说明一下也许是值得的。 - Jonathan Leffler
3个回答

2

1
我找到了模块:Enbugger -- 在运行时启用调试器,这正是我想要的。
CLASS->stop

该程序可以停止程序运行并提供一个调试 shell。

它还可以加载许多类型的调试器,默认情况下是 perl5db。 您可以指定其他调试器,例如这个强大的调试器:Devel::Trepan


如果没有指向特定版本的模块的好理由,请使用一个版本无关的URL。https://metacpan.org/module/Enbugger http://search.cpan.org/perldoc/Enbugger http://p3rl.org/Enbugger - Brad Gilbert

1
这是一个有关调试Perl脚本的好教程:

http://www.ehow.com/how_2095026_debug-perl-programs.html

使用命令"perl -d yourscript.pl"来启动调试器。

使用"b"命令在您认为出错的代码段中设置断点。断点告诉调试器在到达该行或函数时停止调试。它们可以设置在行或函数上,并且可以附加条件。例如,要在第531行设置带有"$a > 10"条件的断点,您需要使用以下命令:"b 531 $a > 10"

使用"r"命令运行程序。这将运行程序直到达到断点。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接