7

基本的に、gdb の「up」および「down」コマンドに相当する perl を探しています。subroutinebarでブレークすると、コール スタックは次のようになります。

foo
  \
   baz
    \
     bar

bar( orから戻ることなくbaz) フレームを上に移動して、通常orfooに引数を使用するように変数を操作することでフレームが何をしていたかを確認できるようにしたいと考えています。px

4

1 に答える 1

7

yコマンドを使用します。

$ cat frames.pl
sub bar {
    my $fnord = 42;
    1
}
sub baz { bar }
sub foo {
    my $fnord = 23;
    baz
};
foo;
$ perl -d frames.pl

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

Enter h or 'h h' for help, or 'man perldebug' for more help.

main::(frames.pl:10):   foo;
DB<1> c 3
main::bar(frames.pl:3):     1
DB<2> y 2 fnord
$fnord = 23
DB<3> T
. = main::bar() called from file 'frames.pl' line 5
. = main::baz() called from file 'frames.pl' line 8
. = main::foo() called from file 'frames.pl' line 10
于 2013-02-10T17:09:01.153 に答える