5

我经常需要在我的Perl程序中调试,其中一些非常大,并且不是由perl xxx.pl.

我使用了 Python 的 pdb 模块,它可以通过使用在程序中设置断点

pdb.set_trace()

当执行到该点时,程序将给出一个python交互式shell。然后我就可以调试了。我想知道 Perl 中是否有这样的调试模块或方法?我还想知道 perl 及其模块中的其他调试支持。

4

3 回答 3

2

等效的是$DB::single = 1

于 2013-03-05T12:54:10.423 回答
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”命令运行程序。这将运行程序,直到到达断点。

于 2013-03-05T08:12:00.527 回答
1

我找到了 Module : Enbugger -- 在运行时启用调试器。

这就是我想要的。

CLASS->stop

它可以停止程序的运行并给出一个调试外壳。

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

于 2013-03-11T14:25:13.433 回答