我经常需要在我的Perl程序中调试,其中一些非常大,并且不是由perl xxx.pl.
我使用了 Python 的 pdb 模块,它可以通过使用在程序中设置断点
pdb.set_trace()
当执行到该点时,程序将给出一个python交互式shell。然后我就可以调试了。我想知道 Perl 中是否有这样的调试模块或方法?我还想知道 perl 及其模块中的其他调试支持。
等效的是$DB::single = 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”命令运行程序。这将运行程序,直到到达断点。
我找到了 Module : Enbugger -- 在运行时启用调试器。
这就是我想要的。
CLASS->stop
它可以停止程序的运行并给出一个调试外壳。
它还可以加载多种类型的调试器,默认情况下是perl5db
. 您可以指定其他调试器,例如这个强大的调试器:Devel::Trepan