Added a --mod-funcname option to cg_diff.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@11488 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/cachegrind/cg_diff.in b/cachegrind/cg_diff.in
index 951066e..bcbe7d6 100755
--- a/cachegrind/cg_diff.in
+++ b/cachegrind/cg_diff.in
@@ -50,6 +50,7 @@
-v --version show version
--mod-filename=<expr> a Perl search-and-replace expression that is applied
to filenames, eg. --mod-filename='s/prog[0-9]/projN/'
+ --mod-funcname=<expr> like --mod-filename, but applied to function names
cg_diff is Copyright (C) 2010-2010 Nicholas Nethercote.
and licensed under the GNU General Public License, version 2.
@@ -61,6 +62,9 @@
# --mod-filename expression
my $mod_filename = undef;
+# --mod-funcname expression
+my $mod_funcname = undef;
+
#-----------------------------------------------------------------------------
# Argument and option handling
#-----------------------------------------------------------------------------
@@ -78,6 +82,9 @@
} elsif ($arg =~ /^--mod-filename=(.*)/) {
$mod_filename = $1;
+ } elsif ($arg =~ /^--mod-funcname=(.*)/) {
+ $mod_funcname = $1;
+
} else { # -h and --help fall under this case
die($usage);
}
@@ -201,7 +208,11 @@
} elsif (s/^fn=(.*)$//) {
defined($currFileName) || die;
- $currFileFuncName = "$currFileName#$1";
+ my $tmpFuncName = $1;
+ if (defined $mod_funcname) {
+ eval "\$tmpFuncName =~ $mod_funcname";
+ }
+ $currFileFuncName = "$currFileName#$tmpFuncName";
$currCC = $CCs{$currFileFuncName};
if (not defined $currCC) {
$currCC = [];