6 my $binary = shift(@ARGV);
9 next unless $line =~ m/^TRACE:/;
11 my(undef, $type, $section, $key, $cookie, @backtrace) = split(/:/, $line);
14 $entries{$section} = {} if !defined($entries{$section});
15 $entries{$section}{$key} = {} if !defined($entries{$section}{$key});
17 $entries{$section}{$key}{$cookie} = \
@backtrace;
18 } elsif($type eq 'del') {
19 $entries{$section}{$key}{$cookie} = undef;
25 foreach my $section (sort(keys(%entries))) {
26 foreach my $key (sort(keys(%{$entries{$section}}))) {
27 foreach my $cookie (sort(keys(%{$entries{$section}{$key}}))) {
28 if(defined($entries{$section}{$key}{$cookie})) {
29 print "[$section]$key -> $cookie:\n";
30 shift(@
{$entries{$section}{$key}{$cookie}});
31 foreach my $frame (@
{$entries{$section}{$key}{$cookie}}) {
32 $frame =~ s/\+0x[0-9a-f]+\)/)/;
33 $frame =~ s/\) \[(.*)\]$/)/;
34 #my $line = `addr2line -e $binary $1`;
37 print "\t$1: $frame\n", ;