聘我网

新概念招聘3.0

Perl如何获取调用堆栈?

vote up0vote downstar

类似PHP中的debug_backtrace();,在Perl中是什么?

 

2 个答复

vote up0vote downcheck

使用Carp::cluck

#!/usr/bin/perl
use Carp;
sub t {
    Carp::cluck( "And here's the stack:" );
}
sub main {
    t;
}
main;

输出:

And here's the stack: at callstack line 6
        main::t() called at callstack line 9
        main::main() called at callstack line 11

更新

也可以用Devel::StackTrace

use Devel::StackTrace;
my $trace = Devel::StackTrace->new;
print $trace->as_string; # like carp
链接
vote up0vote down

Java版本:

    Throwable t = new Throwable();
    for(int i = 0; i < t.getStackTrace().length; i++)
        System.out.println(t.getStackTrace()[i].toString());
链接

您的回答





不是您要找的问题? 浏览其他含有标签 的问题或者 自己问个.