Perl Debugger - 如何走出循环

时间:2012-06-23 21:31:17

标签: perl debugging loops skip

使用perl调试器时,有没有办法退出当前循环?

例如:

line 1
for($i=1;$i<100000:$i++)
{
    line2
}
line3

我希望调试器退出 for 循环并停在第3行

4 个答案:

答案 0 :(得分:7)

c 5

演示:

>perl -d

Loading DB routines from perl5db.pl version 1.33
Editor support available.

Enter h or `h h' for help, or `perldoc perldebug' for more help.

print "line1\n";
for (1..100000) {
   print "line2\n";
}
print "line3\n";
^Z
main::(-:1):    print "line1\n";

  DB<1> s
line1
main::(-:2):    for (1..100000) {

  DB<1> s
main::(-:3):       print "line2\n";

  DB<1> s
line2
main::(-:3):       print "line2\n";

  DB<1> c 5
line2
line2
line2
...
line2
line2
line2
main::(-:5):    print "line3\n";

  DB<2> s
line3
Debugged program terminated.  Use q to quit or R to restart,

答案 1 :(得分:2)

您可以设置循环终止条件:

$i=100000

详细点?只需将变量设置为退出条件,如下所示:

  DB<5> $i=1

  DB<6> print $i
1
  DB<7> $i=100000

  DB<8> print $i
100000
  DB<9> c
Debugged program terminated.  Use q to quit or R to restart,

答案 2 :(得分:1)

c 3表示继续执行并在第3行停止

答案 3 :(得分:0)

没有出手。 您可以在&#34;第3行和第34行设置断点。并继续&#34; c&#34;到下一个断点,或明确说明c <line #>停在特定的一行。