Add some more functions to the default --alloc-fns list. Had to tweak how
verbose output is printed so that the tests would be ok, now that different
platforms have different alloc-fns lists.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10389 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/massif/ms_main.c b/massif/ms_main.c
index f3d46fe..4b64bbd 100644
--- a/massif/ms_main.c
+++ b/massif/ms_main.c
@@ -298,7 +298,7 @@
VG_(free), sizeof(Char*));
#define DO(x) { Char* s = x; VG_(addToXA)(alloc_fns, &s); }
- // Ordered according to (presumed) frequency.
+ // Ordered roughly according to (presumed) frequency.
// Nb: The C++ "operator new*" ones are overloadable. We include them
// always anyway, because even if they're overloaded, it would be a
// prodigiously stupid overloading that caused them to not allocate
@@ -313,10 +313,24 @@
DO("calloc" );
DO("realloc" );
DO("memalign" );
+ DO("posix_memalign" );
+ DO("valloc" );
DO("operator new(unsigned, std::nothrow_t const&)" );
DO("operator new[](unsigned, std::nothrow_t const&)" );
DO("operator new(unsigned long, std::nothrow_t const&)" );
DO("operator new[](unsigned long, std::nothrow_t const&)");
+#if defined(VGP_ppc32_aix5) || defined(VGP_ppc64_aix5)
+ DO("malloc_common" );
+ DO("calloc_common" );
+ DO("realloc_common" );
+ DO("memalign_common" );
+#elif defined(VGO_darwin)
+ DO("malloc_zone_malloc" );
+ DO("malloc_zone_calloc" );
+ DO("malloc_zone_realloc" );
+ DO("malloc_zone_memalign" );
+ DO("malloc_zone_valloc" );
+#endif
}
static void init_ignore_fns(void)
@@ -2251,7 +2265,7 @@
VERB(1, "alloc-fns:");
for (i = 0; i < VG_(sizeXA)(alloc_fns); i++) {
Char** fn_ptr = VG_(indexXA)(alloc_fns, i);
- VERB(1, " %d: %s", i, *fn_ptr);
+ VERB(1, " %s", *fn_ptr);
}
VERB(1, "ignore-fns:");
diff --git a/massif/tests/culling1.stderr.exp b/massif/tests/culling1.stderr.exp
index 566b130..a4a91e2 100644
--- a/massif/tests/culling1.stderr.exp
+++ b/massif/tests/culling1.stderr.exp
@@ -1,18 +1,20 @@
Massif: alloc-fns:
-Massif: 0: malloc
-Massif: 1: __builtin_new
-Massif: 2: operator new(unsigned)
-Massif: 3: operator new(unsigned long)
-Massif: 4: __builtin_vec_new
-Massif: 5: operator new[](unsigned)
-Massif: 6: operator new[](unsigned long)
-Massif: 7: calloc
-Massif: 8: realloc
-Massif: 9: memalign
-Massif: 10: operator new(unsigned, std::nothrow_t const&)
-Massif: 11: operator new[](unsigned, std::nothrow_t const&)
-Massif: 12: operator new(unsigned long, std::nothrow_t const&)
-Massif: 13: operator new[](unsigned long, std::nothrow_t const&)
+Massif: malloc
+Massif: __builtin_new
+Massif: operator new(unsigned)
+Massif: operator new(unsigned long)
+Massif: __builtin_vec_new
+Massif: operator new[](unsigned)
+Massif: operator new[](unsigned long)
+Massif: calloc
+Massif: realloc
+Massif: memalign
+Massif: posix_memalign
+Massif: valloc
+Massif: operator new(unsigned, std::nothrow_t const&)
+Massif: operator new[](unsigned, std::nothrow_t const&)
+Massif: operator new(unsigned long, std::nothrow_t const&)
+Massif: operator new[](unsigned long, std::nothrow_t const&)
Massif: ignore-fns:
Massif: 0: __part_load_locale
Massif: 1: __time_load_locale
diff --git a/massif/tests/culling2.stderr.exp b/massif/tests/culling2.stderr.exp
index a928a13..b5fdf36 100644
--- a/massif/tests/culling2.stderr.exp
+++ b/massif/tests/culling2.stderr.exp
@@ -1,18 +1,20 @@
Massif: alloc-fns:
-Massif: 0: malloc
-Massif: 1: __builtin_new
-Massif: 2: operator new(unsigned)
-Massif: 3: operator new(unsigned long)
-Massif: 4: __builtin_vec_new
-Massif: 5: operator new[](unsigned)
-Massif: 6: operator new[](unsigned long)
-Massif: 7: calloc
-Massif: 8: realloc
-Massif: 9: memalign
-Massif: 10: operator new(unsigned, std::nothrow_t const&)
-Massif: 11: operator new[](unsigned, std::nothrow_t const&)
-Massif: 12: operator new(unsigned long, std::nothrow_t const&)
-Massif: 13: operator new[](unsigned long, std::nothrow_t const&)
+Massif: malloc
+Massif: __builtin_new
+Massif: operator new(unsigned)
+Massif: operator new(unsigned long)
+Massif: __builtin_vec_new
+Massif: operator new[](unsigned)
+Massif: operator new[](unsigned long)
+Massif: calloc
+Massif: realloc
+Massif: memalign
+Massif: posix_memalign
+Massif: valloc
+Massif: operator new(unsigned, std::nothrow_t const&)
+Massif: operator new[](unsigned, std::nothrow_t const&)
+Massif: operator new(unsigned long, std::nothrow_t const&)
+Massif: operator new[](unsigned long, std::nothrow_t const&)
Massif: ignore-fns:
Massif: 0: __part_load_locale
Massif: 1: __time_load_locale
diff --git a/massif/tests/deep-B.stderr.exp b/massif/tests/deep-B.stderr.exp
index 59fe6ee..e4b20e8 100644
--- a/massif/tests/deep-B.stderr.exp
+++ b/massif/tests/deep-B.stderr.exp
@@ -1,25 +1,27 @@
Massif: alloc-fns:
-Massif: 0: malloc
-Massif: 1: __builtin_new
-Massif: 2: operator new(unsigned)
-Massif: 3: operator new(unsigned long)
-Massif: 4: __builtin_vec_new
-Massif: 5: operator new[](unsigned)
-Massif: 6: operator new[](unsigned long)
-Massif: 7: calloc
-Massif: 8: realloc
-Massif: 9: memalign
-Massif: 10: operator new(unsigned, std::nothrow_t const&)
-Massif: 11: operator new[](unsigned, std::nothrow_t const&)
-Massif: 12: operator new(unsigned long, std::nothrow_t const&)
-Massif: 13: operator new[](unsigned long, std::nothrow_t const&)
-Massif: 14: a6
-Massif: 15: a7
-Massif: 16: a8
-Massif: 17: a9
-Massif: 18: a10
-Massif: 19: a11
-Massif: 20: a12
+Massif: malloc
+Massif: __builtin_new
+Massif: operator new(unsigned)
+Massif: operator new(unsigned long)
+Massif: __builtin_vec_new
+Massif: operator new[](unsigned)
+Massif: operator new[](unsigned long)
+Massif: calloc
+Massif: realloc
+Massif: memalign
+Massif: posix_memalign
+Massif: valloc
+Massif: operator new(unsigned, std::nothrow_t const&)
+Massif: operator new[](unsigned, std::nothrow_t const&)
+Massif: operator new(unsigned long, std::nothrow_t const&)
+Massif: operator new[](unsigned long, std::nothrow_t const&)
+Massif: a6
+Massif: a7
+Massif: a8
+Massif: a9
+Massif: a10
+Massif: a11
+Massif: a12
Massif: ignore-fns:
Massif: 0: __part_load_locale
Massif: 1: __time_load_locale
diff --git a/massif/tests/deep-C.stderr.exp b/massif/tests/deep-C.stderr.exp
index 3577914..3243ca6 100644
--- a/massif/tests/deep-C.stderr.exp
+++ b/massif/tests/deep-C.stderr.exp
@@ -1,28 +1,30 @@
Massif: alloc-fns:
-Massif: 0: malloc
-Massif: 1: __builtin_new
-Massif: 2: operator new(unsigned)
-Massif: 3: operator new(unsigned long)
-Massif: 4: __builtin_vec_new
-Massif: 5: operator new[](unsigned)
-Massif: 6: operator new[](unsigned long)
-Massif: 7: calloc
-Massif: 8: realloc
-Massif: 9: memalign
-Massif: 10: operator new(unsigned, std::nothrow_t const&)
-Massif: 11: operator new[](unsigned, std::nothrow_t const&)
-Massif: 12: operator new(unsigned long, std::nothrow_t const&)
-Massif: 13: operator new[](unsigned long, std::nothrow_t const&)
-Massif: 14: a3
-Massif: 15: a4
-Massif: 16: a5
-Massif: 17: a6
-Massif: 18: a7
-Massif: 19: a8
-Massif: 20: a9
-Massif: 21: a10
-Massif: 22: a11
-Massif: 23: a12
+Massif: malloc
+Massif: __builtin_new
+Massif: operator new(unsigned)
+Massif: operator new(unsigned long)
+Massif: __builtin_vec_new
+Massif: operator new[](unsigned)
+Massif: operator new[](unsigned long)
+Massif: calloc
+Massif: realloc
+Massif: memalign
+Massif: posix_memalign
+Massif: valloc
+Massif: operator new(unsigned, std::nothrow_t const&)
+Massif: operator new[](unsigned, std::nothrow_t const&)
+Massif: operator new(unsigned long, std::nothrow_t const&)
+Massif: operator new[](unsigned long, std::nothrow_t const&)
+Massif: a3
+Massif: a4
+Massif: a5
+Massif: a6
+Massif: a7
+Massif: a8
+Massif: a9
+Massif: a10
+Massif: a11
+Massif: a12
Massif: ignore-fns:
Massif: 0: __part_load_locale
Massif: 1: __time_load_locale
diff --git a/massif/tests/filter_stderr b/massif/tests/filter_stderr
index e9d50df..fe9be68 100755
--- a/massif/tests/filter_stderr
+++ b/massif/tests/filter_stderr
@@ -5,5 +5,12 @@
$dir/../../tests/filter_stderr_basic |
# Remove "Massif, ..." line and the following copyright line.
-sed "/^Massif, a heap profiler./ , /./ d"
+sed "/^Massif, a heap profiler./ , /./ d" |
+
+# Remove AIX-only alloc-fns
+perl -n -e 'print if !/^Massif: (malloc|calloc|realloc|memalign)_common$/' |
+
+# Remove Darwin-only alloc-fns
+perl -n -e 'print if !/^Massif: malloc_zone_(malloc|calloc|realloc|memalign|valloc)$/'
+
diff --git a/massif/tests/peak2.stderr.exp b/massif/tests/peak2.stderr.exp
index 39527b0..b5f190c 100644
--- a/massif/tests/peak2.stderr.exp
+++ b/massif/tests/peak2.stderr.exp
@@ -1,18 +1,20 @@
Massif: alloc-fns:
-Massif: 0: malloc
-Massif: 1: __builtin_new
-Massif: 2: operator new(unsigned)
-Massif: 3: operator new(unsigned long)
-Massif: 4: __builtin_vec_new
-Massif: 5: operator new[](unsigned)
-Massif: 6: operator new[](unsigned long)
-Massif: 7: calloc
-Massif: 8: realloc
-Massif: 9: memalign
-Massif: 10: operator new(unsigned, std::nothrow_t const&)
-Massif: 11: operator new[](unsigned, std::nothrow_t const&)
-Massif: 12: operator new(unsigned long, std::nothrow_t const&)
-Massif: 13: operator new[](unsigned long, std::nothrow_t const&)
+Massif: malloc
+Massif: __builtin_new
+Massif: operator new(unsigned)
+Massif: operator new(unsigned long)
+Massif: __builtin_vec_new
+Massif: operator new[](unsigned)
+Massif: operator new[](unsigned long)
+Massif: calloc
+Massif: realloc
+Massif: memalign
+Massif: posix_memalign
+Massif: valloc
+Massif: operator new(unsigned, std::nothrow_t const&)
+Massif: operator new[](unsigned, std::nothrow_t const&)
+Massif: operator new(unsigned long, std::nothrow_t const&)
+Massif: operator new[](unsigned long, std::nothrow_t const&)
Massif: ignore-fns:
Massif: 0: __part_load_locale
Massif: 1: __time_load_locale
diff --git a/massif/tests/realloc.stderr.exp b/massif/tests/realloc.stderr.exp
index d8fcf7e..2df136d 100644
--- a/massif/tests/realloc.stderr.exp
+++ b/massif/tests/realloc.stderr.exp
@@ -1,18 +1,20 @@
Massif: alloc-fns:
-Massif: 0: malloc
-Massif: 1: __builtin_new
-Massif: 2: operator new(unsigned)
-Massif: 3: operator new(unsigned long)
-Massif: 4: __builtin_vec_new
-Massif: 5: operator new[](unsigned)
-Massif: 6: operator new[](unsigned long)
-Massif: 7: calloc
-Massif: 8: realloc
-Massif: 9: memalign
-Massif: 10: operator new(unsigned, std::nothrow_t const&)
-Massif: 11: operator new[](unsigned, std::nothrow_t const&)
-Massif: 12: operator new(unsigned long, std::nothrow_t const&)
-Massif: 13: operator new[](unsigned long, std::nothrow_t const&)
+Massif: malloc
+Massif: __builtin_new
+Massif: operator new(unsigned)
+Massif: operator new(unsigned long)
+Massif: __builtin_vec_new
+Massif: operator new[](unsigned)
+Massif: operator new[](unsigned long)
+Massif: calloc
+Massif: realloc
+Massif: memalign
+Massif: posix_memalign
+Massif: valloc
+Massif: operator new(unsigned, std::nothrow_t const&)
+Massif: operator new[](unsigned, std::nothrow_t const&)
+Massif: operator new(unsigned long, std::nothrow_t const&)
+Massif: operator new[](unsigned long, std::nothrow_t const&)
Massif: ignore-fns:
Massif: 0: __part_load_locale
Massif: 1: __time_load_locale