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