Thank you for a quick reply.
The error message observed is actually what check_mmap() in
coregrind/m_ume/elf.c reports.
I suspect that we run into issue with VG_(am_get_advisory)() but I want to be
sure.

Please could you grab Valgrind source, apply the attached patch to it
and build it as per http://valgrind.org/downloads/repository.html.
This should create additional debug output which would point at the culprit.

I.
diff --git a/coregrind/m_ume/elf.c b/coregrind/m_ume/elf.c
index 21eb52bcb..427e9937d 100644
--- a/coregrind/m_ume/elf.c
+++ b/coregrind/m_ume/elf.c
@@ -445,14 +445,14 @@ ESZ(Addr) mapelf(struct elfinfo *e, ESZ(Addr) base)
       //
       // The condition handles the case of a zero-length segment.
       if (VG_PGROUNDUP(bss)-VG_PGROUNDDN(addr) > 0) {
-         if (0) VG_(debugLog)(0,"ume","mmap_file_fixed_client #1\n");
+         if (1) VG_(debugLog)(0,"ume","mmap_file_fixed_client #1\n");
          res = VG_(am_mmap_file_fixed_client)(
                   VG_PGROUNDDN(addr),
                   VG_PGROUNDUP(bss)-VG_PGROUNDDN(addr),
                   prot, /*VKI_MAP_FIXED|VKI_MAP_PRIVATE, */
                   e->fd, VG_PGROUNDDN(off)
                );
-         if (0) VG_(am_show_nsegments)(0,"after #1");
+         if (1) VG_(am_show_nsegments)(0,"after #1");
          check_mmap(res, VG_PGROUNDDN(addr),
                          VG_PGROUNDUP(bss)-VG_PGROUNDDN(addr));
       }
@@ -463,12 +463,12 @@ ESZ(Addr) mapelf(struct elfinfo *e, ESZ(Addr) base)
 
          bytes = VG_PGROUNDUP(brkaddr)-VG_PGROUNDUP(bss);
          if (bytes > 0) {
-            if (0) VG_(debugLog)(0,"ume","mmap_anon_fixed_client #2\n");
+            if (1) VG_(debugLog)(0,"ume","mmap_anon_fixed_client #2\n");
             res = VG_(am_mmap_anon_fixed_client)(
                      VG_PGROUNDUP(bss), bytes,
                      prot
                   );
-            if (0) VG_(am_show_nsegments)(0,"after #2");
+            if (1) VG_(am_show_nsegments)(0,"after #2");
             check_mmap(res, VG_PGROUNDUP(bss), bytes);
          }
 
@@ -816,7 +816,7 @@ Int VG_(load_ELF)(Int fd, const HChar* name, /*MOD*/ExeInfo* info)
       if (!ok) {
          /* bomb out */
          SysRes res = VG_(mk_SysRes_Error)(VKI_EINVAL);
-         if (0) VG_(printf)("reserve for interp: failed\n");
+         if (1) VG_(printf)("reserve for interp: failed\n");
          check_mmap(res, (Addr)interp_addr, interp_size);
          /*NOTREACHED*/
       }
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Valgrind-users mailing list
Valgrind-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/valgrind-users

Reply via email to