【发布时间】:2015-05-11 06:15:30
【问题描述】:
我正在寻找方法来调试从命名空间 Myapp::* 打印每个子例程调用(例如,不转储 CPAN 模块),但 无需手动编辑每个 .pm 文件插入一些模块或打印语句。
我刚刚学习(最好说:试图理解)package DB,是什么让我可以跟踪执行(使用 shebang #!/usr/bin/perl -d:Mytrace)
package DB;
use 5.010;
sub DB {
my( $package, $file, $line ) = caller;
my $code = \@{"::_<$file"};
print STDERR "--> $file $line $code->[$line]";
}
#sub sub {
# print STDERR "$sub\n";
# &$sub;
#}
1;
并寻找一种方法如何使用sub 调用从Myapp::* 的命名空间打印被调用sub 的实际参数。
或者这里有一些更简单(常用)的方法
- 结合执行线追踪器
DB::DB - 每个子例程调用参数(及其返回值,如果可能)的转储?
【问题讨论】:
标签: perl