In the Perl debugger (run your program by prefixing perl -d
to it) you can use the t
(trace) command in the interactive debugger to toggle tracing.
After reloading your program (R
) the status of the trace is reset.
Unfortunately tracing can significantly slow down your program, especially if loops are executed many times.
Here is some example output:
...
Digest::HMAC::new(/usr/lib/perl5/vendor_perl/5.18.2/Digest/HMAC.pm:10):
10: my($class, $key, $hasher, $block_size) = @_;
Digest::HMAC::new(/usr/lib/perl5/vendor_perl/5.18.2/Digest/HMAC.pm:11):
11: $block_size ||= 64;
Digest::HMAC::new(/usr/lib/perl5/vendor_perl/5.18.2/Digest/HMAC.pm:12):
12: $key = $hasher->new->add($key)->digest if length($key) > $block_size;
Digest::HMAC::new(/usr/lib/perl5/vendor_perl/5.18.2/Digest/HMAC.pm:14):
14: my $self = bless {}, $class;
Digest::HMAC::new(/usr/lib/perl5/vendor_perl/5.18.2/Digest/HMAC.pm:15):
15: $self->{k_ipad} = $key ^ (chr(0x36) x $block_size);
Digest::HMAC::new(/usr/lib/perl5/vendor_perl/5.18.2/Digest/HMAC.pm:16):
16: $self->{k_opad} = $key ^ (chr(0x5c) x $block_size);
Digest::HMAC::new(/usr/lib/perl5/vendor_perl/5.18.2/Digest/HMAC.pm:17):
17: $self->{hasher} = $hasher->new->add($self->{k_ipad});
Digest::SHA::new(/usr/lib/perl5/5.18.2/x86_64-linux-thread-multi/Digest/SHA.pm:45):
45: my($class, $alg) = @_;
...