bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/6832] Crash while handling DW_AT_abstract_origin for a las


From: divis1969 at gmail dot com
Subject: [Bug binutils/6832] Crash while handling DW_AT_abstract_origin for a last comp unit
Date: 11 Dec 2009 14:19:12 -0000

------- Additional Comments From divis1969 at gmail dot com  2009-12-11 14:19 
-------
Hi,

While running my program with BFD 2.20.51.20090916 (which I had grabbed from 
GDB 
7.0) I see there is still a possibility for the problem reported by this bug.

It does not crash but produces a message like 
Dwarf Error: Could not find abbrev number 

The problem, on my mind, is caused by the following sequence:
My program tries to locate an address and find the line number, function etc.
The ELF file has just one debug info section.
One of the comp unit was already loaded (by parse_comp_unit() I suppose) but 
scan_unit_for_symbols() was not yet called yet for it.
At some stage, all the comp units of this alone sections are loaded and parsed 
and stash->sec_info_ptr was advanced to the end of this section (line 3224 of 
dwarf2.c)
Finally, when find_line tries to find locate some address in this unit and 
scan_unit_for_symbols is called, it produces such an error message. This 
happens 
when find_abstract_instance_name() tries to read some attribute, referred by 
DW_FORM_ref_addr. It tries to read from beyond the scope of the debug info 
section due to line 1751:
  info_ptr = unit->stash->sec_info_ptr + die_ref;
As I said before, unit->stash->sec_info_ptr is pointing to the end if section.

Dmitry






-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|FIXED                       |


http://sourceware.org/bugzilla/show_bug.cgi?id=6832

------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]