300df642d4927f733f22795e6411c5d2aef08808
[pintos-anon] / src / utils / backtrace
1 #! /usr/bin/perl
2 $a2l = search_path ("i386-elf-addr2line") || search_path ("addr2line");
3 $bin = shift @ARGV;
4 open (A2L, "$a2l -fe $bin " . join (' ', @ARGV) . "|");
5 while ($function = <A2L>) {
6     $line = <A2L>;
7     chomp $function;
8     chomp $line;
9     print shift (@ARGV), ": $function ($line)\n";
10 }
11    
12 sub search_path {
13     my ($target) = @_;
14     for $dir (split (':', $ENV{PATH})) {
15         my ($file) = "$dir/$target";
16         return $file if -e $file;
17     }
18     return 0;
19 }