3

perl デバッガーを使用しているときに、現在のループから抜け出す方法はありますか?

例えば:

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

デバッガーがこのforループから抜け出し、line3 で停止するようにしたい

4

4 に答える 4

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,
于 2012-06-23T21:36:19.343 に答える
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,
于 2012-06-23T21:46:49.653 に答える
1

c 3実行を継続し、3 行目で停止することを意味します

于 2012-06-23T21:40:34.450 に答える
0

ステップアウトはありません。「3 行目」にブレーク ポイントを設定し、「c」を次のブレークポイントまで続行するかc <line #>、特定の行で停止するように明示的に指定できます。

于 2012-06-23T21:42:40.623 に答える