]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
Fix expected output of massif/tests/mmapunmap on Solaris.
authorIvo Raisr <ivosh@ivosh.net>
Mon, 14 Dec 2015 20:14:44 +0000 (20:14 +0000)
committerIvo Raisr <ivosh@ivosh.net>
Mon, 14 Dec 2015 20:14:44 +0000 (20:14 +0000)
On Solaris and Linux, mmap() is an optimized function without
prologue and epilogue. However, Solaris libc does not currently
bear any DWARF CFI. Therefore stack chain unwinder grabs only
two entries: IP inside mmap() and return address from the previous
frame which points inside _start(), right after where main()
is invoked. By introducing an intermediate function f(), main()
is now visible in the stack trace even on Solaris.
n-i-bz

git-svn-id: svn://svn.valgrind.org/valgrind/trunk@15749

massif/tests/mmapunmap.c
massif/tests/mmapunmap.post.exp
massif/tests/mmapunmap.vgtest

index 4bb4e5a18e944188d0f96c8ce1b73541b989949f..d5fef5c4753b2254584f41d181f865711df9d4bd 100644 (file)
@@ -4,13 +4,16 @@
 #include <unistd.h>
 #include "tests/sys_mman.h"
 
-int main()
+static void *f(void)
 {
-   void *m;
+   return mmap(NULL, 80 * 1000 * 1024,
+               PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
+               -1, 0);
+}
 
-   m = mmap(NULL, 80 * 1000 * 1024,
-            PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-            -1, 0);
+int main()
+{
+   void *m = f();
    munmap(m, 80 * 1000 * 1024);
    return 0;
 }
index 50e5c6ea95a0cf0a6326acc86b762b999316b9a9..dd097373e28b1d241b2376441032853fe23dc47b 100644 (file)
@@ -1 +1 @@
 n0: 81920000 0x........: main (mmapunmap.c:11)
n0: 81920000 0x........: main (mmapunmap.c:16)
index 3ad713fdb3e1ac9073aa4349f0a5cec69d24e3bc..503b750f9203c1eefc318030ced3e88ef08ddf2e 100644 (file)
@@ -2,5 +2,5 @@ prog: mmapunmap
 vgopts: --pages-as-heap=yes --threshold=30.0 -q
 vgopts: --stacks=no --time-unit=B --depth=8 --massif-out-file=massif.out
 vgopts: --ignore-fn=__part_load_locale --ignore-fn=__time_load_locale --ignore-fn=dwarf2_unwind_dyld_add_image_hook --ignore-fn=get_or_create_key_element
-post: grep -A3 -e =peak massif.out | grep -e 'main (mmapunmap.c:11)' | ../../tests/filter_addresses
+post: grep -A4 -e =peak massif.out | grep -e 'main (mmapunmap.c:16)' | tr -s ' ' | ../../tests/filter_addresses
 cleanup: rm massif.out