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