【发布时间】:2016-02-19 09:22:01
【问题描述】:
使用内置的 Perl 调试器,我可以打印堆栈跟踪。但是,我只对某个变量感兴趣,而不是 30k+ 行的完整堆栈跟踪。 是否可以只显示包含指定变量的执行行?
示例
假设我想跟踪变量 $data。然后我只想看到第 4,7,8,10 行而不是其他行。
use strict;
use warnings;
my $data = 1;
my $otherdata = "Diamond";
$data += 1;
my $rename = $data;
if($rename =~ /2/){
print "hello world";
}
堆栈跟踪
perl -d:Trace script.pl
script.pl:4: my $data = 1;
script.pl:5: my $otherdata = "Diamond";
script.pl:7: $data += 1;
script.pl:8: my $rename = $data;
script.pl:10: if($rename =~ /2/){
script.pl:12: print "hello world";
【问题讨论】:
-
我认为您的意思只是“跟踪”而不是“堆栈跟踪”。
-
我不知道有一种内置方法可以执行您所要求的操作,但是您可以使用监视表达式在变量值更改时暂停调试器。我认为这比查看引用变量的每一行更有用,无论值是否更改。
标签: perl debugging printstacktrace