97 lines
1.4 KiB
Perl
97 lines
1.4 KiB
Perl
|
|
while (<>)
|
|
{
|
|
/^.*:\s+(.*)\n/;
|
|
$CodeFile=$1;
|
|
|
|
if ($CodeFile ne "")
|
|
{
|
|
$Code=<>;
|
|
$Data=<>;
|
|
$Bss=<>;
|
|
<>;
|
|
|
|
$Code=&GetNum($Code);
|
|
$Data=&GetNum($Data);
|
|
$Bss=&GetNum($Bss);;
|
|
|
|
$CodeSizeToFile{$Code}.="!" if ($CodeSizeToFile{$Code} ne "");
|
|
$CodeSizeToFile{$Code}.=$CodeFile;
|
|
|
|
$DataSizeToFile{$Data}.="!" if ($DataSizeToFile{$Data} ne "");
|
|
$DataSizeToFile{$Data}.=$CodeFile;
|
|
|
|
$BssSizeToFile{$Bss}.="!" if ($BssSizeToFile{$Bss} ne "");
|
|
$BssSizeToFile{$Bss}.=$CodeFile;
|
|
}
|
|
else
|
|
{
|
|
die "Strange line $_";
|
|
}
|
|
}
|
|
|
|
print "Code Section\n";
|
|
print "------------\n";
|
|
|
|
foreach $Num (sort numerically keys(%CodeSizeToFile))
|
|
{
|
|
local(@Files)=split(/!/,$CodeSizeToFile{$Num});
|
|
|
|
foreach $File (@Files)
|
|
{
|
|
print "$File\t$Num\n";
|
|
}
|
|
}
|
|
|
|
print "\n";
|
|
|
|
|
|
print "Data Section\n";
|
|
print "------------\n";
|
|
|
|
foreach $Num (sort numerically keys(%DataSizeToFile))
|
|
{
|
|
local(@Files)=split(/!/,$DataSizeToFile{$Num});
|
|
|
|
foreach $File (@Files)
|
|
{
|
|
print "$File\t$Num\n";
|
|
}
|
|
}
|
|
|
|
print "\n";
|
|
|
|
print "Bss Section\n";
|
|
print "-----------\n";
|
|
|
|
foreach $Num (sort numerically keys(%BssSizeToFile))
|
|
{
|
|
local(@Files)=split(/!/,$BssSizeToFile{$Num});
|
|
|
|
foreach $File (@Files)
|
|
{
|
|
print "$File\t$Num\n";
|
|
}
|
|
}
|
|
|
|
print "\n";
|
|
|
|
sub GetNum
|
|
{
|
|
local ($Line)=@_;
|
|
|
|
if ($Line=~/^\s+\w+\s+size:\s+(\d+)/)
|
|
{
|
|
($1);
|
|
}
|
|
else
|
|
{
|
|
die "Fuck";
|
|
}
|
|
|
|
($1);
|
|
}
|
|
|
|
|
|
sub numerically { $b <=> $a;}
|