]> git.ipfire.org Git - thirdparty/valgrind.git/commitdiff
fix 339721 assertion 'check_sibling == sibling' failed in readdwarf3.c ...
authorPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Mon, 6 Oct 2014 21:46:43 +0000 (21:46 +0000)
committerPhilippe Waroquiers <philippe.waroquiers@skynet.be>
Mon, 6 Oct 2014 21:46:43 +0000 (21:46 +0000)
The skip code was wrongly skipping 16 bytes, while only 8 are read
for a DW_FORM_ref_sig8.

Note that the problem is made visible by an assert when using
--trace-symtab=yes but in fact this is a real bug in the dwarf reader,
that was introduced in one of the optimisations done for the inline info.

It can manifest itself with other symptoms:

One of the 2 following assertions can fail:
   vg_assert (check_sibling == sibling);
   vg_assert (get_position_of_Cursor (&check_skip)
              == get_position_of_Cursor (&c));

Or the following error can be given:
--29973-- WARNING: Serious error when reading debug info
--29973-- When reading debug info from /home/philippe/valgrind/trunk_untouched/memcheck/tests/dw4:
--29973-- Overrun whilst reading .debug_info section

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

NEWS
coregrind/m_debuginfo/readdwarf3.c

diff --git a/NEWS b/NEWS
index a9c16fa4a58f28c1e86ca0db33d73e841476aade..de86c41c98d7e9ef20a2b49040dddea54faf36e8 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -32,11 +32,12 @@ where XXXXXX is the bug number as listed below.
 339156 gdbsrv not called for fatal signal
 339442 Fix testsuite build failure on OS X 10.9
 339645 Use correct tag names in sys_getdents/64 wrappers
-n-i-bz Old STABS code is still being compiled, but never used. Remove it.
-n-i-bz Fix compilation on distros with glibc < 2.5
 339182 ppc64: AvSplat ought to load destination vector register with 16/16
        bytes stored prior
 339433 ppc64 lxvw4x instruction uses four 32-byte loads
+339721 assertion 'check_sibling == sibling' failed in readdwarf3.c ...
+n-i-bz Old STABS code is still being compiled, but never used. Remove it.
+n-i-bz Fix compilation on distros with glibc < 2.5
 
 
 Release 3.10.0 (10 September 2014)
index 995ef58bbd82dfc63b6b5a0d94a19933516c7490..1a933d9bfe5f6a3de998b9ef87d68d93e9961a79 100644 (file)
@@ -1498,7 +1498,7 @@ UInt get_Form_szB (CUConst* cc, DW_FORM form )
       case DW_FORM_block:
          return VARSZ_FORM;
       case DW_FORM_ref_sig8:
-         return 8 + 8;
+         return 8;
       case DW_FORM_indirect:
          return VARSZ_FORM;
       case DW_FORM_GNU_ref_alt: