2020-03-30 22:57:53 +02:00
|
|
|
#!/usr/bin/env perl
|
2007-12-30 19:47:36 +01:00
|
|
|
|
|
|
|
die <<EEE unless @ARGV;
|
|
|
|
Usage: $0 func1 [func2 [ ...] ]
|
|
|
|
|
|
|
|
This filter (stdin->stdout) removes lines from dbug trace that were generated
|
|
|
|
by specified functions and all functions down the call stack. Produces the
|
|
|
|
same effect as if the original source had DBUG_PUSH(""); right after
|
|
|
|
DBUG_ENTER() and DBUG_POP(); right before DBUG_RETURN in every such a function.
|
|
|
|
EEE
|
|
|
|
|
|
|
|
$re=join('|', @ARGV);
|
|
|
|
|
|
|
|
while(<STDIN>) {
|
2010-09-10 01:42:12 +02:00
|
|
|
($thd) = /^(T@\d+)/;
|
|
|
|
print unless $skip{$thd};
|
2007-12-30 19:47:36 +01:00
|
|
|
next unless /^(?:.*: )*((?:\| )*)([<>])($re)\n/o;
|
|
|
|
if ($2 eq '>') {
|
2010-09-10 01:42:12 +02:00
|
|
|
$skip{$thd}=$1.$3 unless $skip{$thd};
|
2007-12-30 19:47:36 +01:00
|
|
|
next;
|
|
|
|
}
|
2010-09-10 01:42:12 +02:00
|
|
|
next if $skip{$thd} ne $1.$3;
|
|
|
|
delete $skip{$thd};
|
2007-12-30 19:47:36 +01:00
|
|
|
print;
|
|
|
|
}
|