summaryrefslogtreecommitdiff
path: root/bin/ios-mapfile-statistics
blob: 0ae275385ed21c507b480991a9db0676f3962afa (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/perl -w

use strict;

my $state = 0;
my %libofnumber;
my %sizeoflib;

while (<>) {
  if ($state == 0 && m!^# Object files:!) {
    $state = 1;
  } elsif ($state == 1 && m!^\[ *([0-9]+)\] .*/([-_a-z0-9]+\.a)\(.*!i) {
    $libofnumber{$1} = $2;
  } elsif ($state == 1 && m!^# Sections:!) {
    $state = 2;
  } elsif ($state == 2 && m!^# Address\s+Size\s+File\s+Name!) {
    $state = 3;
  } elsif ($state == 3 && m!^0x[0-9A-F]+\s+(0x[0-9A-F]+)\s+\[ *([0-9]+)\] (.*)!) {
    if (defined($libofnumber{$2})) {
      $sizeoflib{$libofnumber{$2}} += hex($1);
    }
  }
}

foreach (sort keys(%sizeoflib)) {
  print $_, ": ", $sizeoflib{$_}, "\n";
}