This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Fix Java PR gdb/1322 (was Re: [rfa/doc] Document pr gdb/1322 in PROBLEMS)
- From: Daniel Jacobowitz <drow at mvista dot com>
- To: gdb-patches at sources dot redhat dot com
- Date: Sun, 24 Aug 2003 12:56:07 -0400
- Subject: Fix Java PR gdb/1322 (was Re: [rfa/doc] Document pr gdb/1322 in PROBLEMS)
- References: <200308181832.h7IIWKUx004464@duracef.shout.net>
On Mon, Aug 18, 2003 at 02:32:20PM -0400, Michael Elizabeth Chastain wrote:
> +
> + gdb/1322: "internal-error: sect_index_text not initialized" after printing a java type
> +
> + When gdb debugs a Java program which uses shared libraries, it can
> + generate this internal error.
> +
> + If you get this error when debugging Java, you can try working around
> + the problem by relinking your program with no shared libraries at all
> + (even the standard C library). With the GNU linker, use the "-static"
> + argument to do this.
> +
> + You can also try this patch for gdb:
> +
> + http://sources.redhat.com/ml/gdb-prs/2003-q3/msg00190.html
How about we fix it instead? This patch depends on Mark K's
per-objfile-data patch, but only because it touches the same area, I
think.
Dwarf maintainers, is this OK? Could someone test that it fixes the
Java problems on HEAD?
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
2003-08-24 Daniel Jacobowitz <drow@mvista.com>
PR gdb/1322
* dwarf2-frame.c (dwarf2_frame_find_fde): Check whether any FDEs are
available before calling SECT_OFF_TEXT.
Index: dwarf2-frame.c
===================================================================
RCS file: /cvs/src/src/gdb/dwarf2-frame.c,v
retrieving revision 1.11
diff -u -p -r1.11 dwarf2-frame.c
--- dwarf2-frame.c 21 Aug 2003 22:35:33 -0000 1.11
+++ dwarf2-frame.c 24 Aug 2003 16:52:24 -0000
@@ -1024,9 +1024,12 @@ dwarf2_frame_find_fde (CORE_ADDR *pc)
struct dwarf2_fde *fde;
CORE_ADDR offset;
- offset = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
-
fde = objfile_data (objfile, dwarf2_frame_data);
+ if (fde == NULL)
+ continue;
+
+ offset = ANOFFSET (objfile->section_offsets, SECT_OFF_TEXT (objfile));
+
while (fde)
{
if (*pc >= fde->initial_location + offset