mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-11-04 10:05:51 +00:00
45 lines
1.0 KiB
Perl
45 lines
1.0 KiB
Perl
|
#!/usr/bin/perl -w
|
||
|
#
|
||
|
# This Source Code Form is subject to the terms of the Mozilla Public
|
||
|
# License, v. 2.0. If a copy of the MPL was not distributed with this
|
||
|
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||
|
|
||
|
# Filter a refcount log to show only the entries for a single object.
|
||
|
# Useful when manually examining refcount logs containing multiple
|
||
|
# objects.
|
||
|
|
||
|
use 5.004;
|
||
|
use strict;
|
||
|
use Getopt::Long;
|
||
|
|
||
|
GetOptions("object=s");
|
||
|
|
||
|
$::opt_object ||
|
||
|
die qq{
|
||
|
usage: filter-log-for.pl < logfile
|
||
|
--object <obj> The address of the object to examine (required)
|
||
|
};
|
||
|
|
||
|
warn "object $::opt_object\n";
|
||
|
|
||
|
LINE: while (<>) {
|
||
|
next LINE if (! /^</);
|
||
|
my $line = $_;
|
||
|
my @fields = split(/ /, $_);
|
||
|
|
||
|
my $class = shift(@fields);
|
||
|
my $obj = shift(@fields);
|
||
|
next LINE unless ($obj eq $::opt_object);
|
||
|
my $sno = shift(@fields);
|
||
|
my $op = shift(@fields);
|
||
|
my $cnt = shift(@fields);
|
||
|
|
||
|
print $line;
|
||
|
|
||
|
# The lines in the stack trace
|
||
|
CALLSITE: while (<>) {
|
||
|
print;
|
||
|
last CALLSITE if (/^$/);
|
||
|
}
|
||
|
}
|