This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Relocate debug information in object files (e.g. add-symbol-file) [take 2]
- From: David Carlton <carlton at math dot stanford dot edu>
- To: Elena Zannoni <ezannoni at redhat dot com>
- Cc: Daniel Jacobowitz <drow at mvista dot com>, gdb-patches at sources dot redhat dot com
- Date: 31 Jan 2003 16:59:40 -0800
- Subject: Re: [RFA] Relocate debug information in object files (e.g. add-symbol-file) [take 2]
- References: <20020404170610.A3717@nevyn.them.org><20021011144448.GA31467@nevyn.them.org><15929.47017.286393.193280@localhost.redhat.com><20030131192707.GA23658@nevyn.them.org><ro1k7gkdfq4.fsf@jackfruit.Stanford.EDU><15931.6461.240936.968974@localhost.redhat.com>
On Fri, 31 Jan 2003 19:47:57 -0500, Elena Zannoni <ezannoni@redhat.com> said:
>> I haven't looked at it at all closely; but dwarf2_read_section (and
>> hence symfile_relocate_debug_section) is getting passed a NULL
>> section from this part of dwarf2_build_psymtabs:
>>
>> if (dwarf_ranges_offset)
>> dwarf_ranges_buffer = dwarf2_read_section (objfile,
>> dwarf_ranges_offset,
>> dwarf_ranges_size,
>> dwarf_ranges_section);
>> else
>> dwarf_ranges_buffer = NULL;
>>
> It's odd, if the dwarf_ranges_offset is zero, the call shouldn't be made.
> Maybe something is trashing the stack?
> What gcc did you use? I tried with 2.96 (from RHL 7.2) and didn't see
> the error.
Did you specify DWARF 2? I saw this on 3.1.
I've found the problem, though: nobody seems to be setting
dwarf_ranges_section! Patch enclosed below; I'm running it through
the testsuite, and I'll commit it as obvious if it cures the problem.
David Carlton
carlton@math.stanford.edu
2003-01-31 David Carlton <carlton@math.stanford.edu>
* dwarf2read.c (dwarf2_locate_sections): Set
dwarf_ranges_section.
Index: dwarf2read.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2read.c,v
retrieving revision 1.81
diff -u -p -r1.81 dwarf2read.c
--- dwarf2read.c 31 Jan 2003 19:22:18 -0000 1.81
+++ dwarf2read.c 1 Feb 2003 00:57:49 -0000
@@ -1002,6 +1002,7 @@ dwarf2_locate_sections (bfd *ignore_abfd
{
dwarf_ranges_offset = sectp->filepos;
dwarf_ranges_size = bfd_get_section_size_before_reloc (sectp);
+ dwarf_ranges_section = sectp;
}
}