Advertisement
Guest User

Dark Shikari

a guest
Oct 31st, 2009
713
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 0.50 KB | None | 0 0
  1. #!/usr/bin/perl
  2. open(FH, "-|", "objdump", "-d", "-M", "intel", $ARGV[0]) or die "objdump failed\n";
  3. while(<FH>){
  4.     if(/([0-9a-f]+) <(\S+)>:/) {
  5.         $start_addr = hex($1);
  6.         $name = $2;
  7.     } elsif(/^\s*([0-9a-f]+):\s+((?:[0-9a-f]{2} )+)/ and $name) {
  8.         $end_addr = hex($1) + split(/ /, $2);
  9.     } elsif(/^$/ and $name) {
  10.         printf("%d %s\n", $end_addr - $start_addr, $name);
  11.         undef $end_addr
  12.     }
  13. }
  14. printf("%d %s\n", $end_addr - $start_addr, $name) if $end_addr;
  15.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement