Home | History | Annotate | Download | only in scripts
      1 #!/usr/bin/perl
      2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
      3 # Use of this source code is governed by a BSD-style license that can be
      4 # found in the LICENSE file.
      5 
      6 sub process_raw($$) {
      7   my $file = shift;
      8   my $search = shift;
      9 
     10   my %leaks = ();
     11 
     12   my $save = 0;
     13   my $print = 0;
     14   my $bytes = 0;
     15   my $calls = 0;
     16   my $sum_bytes = 0;
     17   my $sum_calls = 0;
     18 
     19   open (LOGFILE, "$file") or die("could not open $file");
     20   while(<LOGFILE>) {
     21     my $line = $_;
     22     if ($line =~ m/([0-9]*) bytes, ([0-9]*) allocs/) {
     23       $save = "";
     24       $print = 0;
     25       $bytes = $1;
     26       $calls = $2;
     27     }
     28     elsif ($line =~ m/$search/) {
     29       $print = 1;
     30     }
     31     elsif ($line =~ m/=============/) {
     32       $save .= $line;
     33       if ($print) {
     34         print "$bytes bytes ($calls calls)\n";
     35         print $save;
     36         $sum_bytes += $bytes;
     37         $sum_calls += $calls;
     38         $save = "";
     39         $print = 0;
     40         $calls = 0;
     41       }
     42     }
     43     $save .= $line;
     44   }
     45   print("TOTAL: $sum_bytes bytes ($sum_calls calls)\n");
     46 }
     47 
     48 
     49 # ----- Main ------------------------------------------------
     50 
     51 # Get the command line argument
     52 my $filename = shift;
     53 my $search = shift;
     54 
     55 # Process the file.
     56 process_raw($filename, $search);
     57