diff options
author | unknown <serg@janus.mylan> | 2007-12-30 19:47:36 +0100 |
---|---|---|
committer | unknown <serg@janus.mylan> | 2007-12-30 19:47:36 +0100 |
commit | f21390874d1325bd829edc952501eb4381ed8732 (patch) | |
tree | 6ca95402b21467f0b2b0f2a9b3303898b8637deb /dbug/remove_function_from_trace.pl | |
parent | a50f1641f5a5be326bfc5010d390402ab7dfd061 (diff) | |
download | mariadb-git-f21390874d1325bd829edc952501eb4381ed8732.tar.gz |
dbug/remove_function_from_trace.pl
dbug/remove_function_from_trace.pl:
New BitKeeper file ``dbug/remove_function_from_trace.pl''
Diffstat (limited to 'dbug/remove_function_from_trace.pl')
-rwxr-xr-x | dbug/remove_function_from_trace.pl | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/dbug/remove_function_from_trace.pl b/dbug/remove_function_from_trace.pl new file mode 100755 index 00000000000..1da9e25f9ba --- /dev/null +++ b/dbug/remove_function_from_trace.pl @@ -0,0 +1,26 @@ +#!/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; +} |