mariadb/dbug/remove_function_from_trace.pl
unknown f21390874d dbug/remove_function_from_trace.pl
dbug/remove_function_from_trace.pl:
  New BitKeeper file ``dbug/remove_function_from_trace.pl''
2007-12-30 19:47:36 +01:00

26 lines
618 B
Perl
Executable file

#!/usr/bin/perl
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);
$skip='';
while(<STDIN>) {
print unless $skip;
next unless /^(?:.*: )*((?:\| )*)([<>])($re)\n/o;
if ($2 eq '>') {
$skip=$1.$3 unless $skip;
next;
}
next if $skip ne $1.$3;
$skip='';
print;
}