This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: Debugging a frameless function
- From: Eli Zaretskii <eliz at gnu dot org>
- To: Mark Kettenis <mark dot kettenis at xs4all dot nl>
- Cc: drow at false dot org, gdb at sourceware dot org
- Date: Sat, 02 May 2009 12:22:14 +0300
- Subject: Re: Debugging a frameless function
- References: <83zldzco0p.fsf@gnu.org> <20090429183946.GA28155@caradoc.them.org> <83ws93cmp0.fsf@gnu.org> <200904291908.n3TJ8ic6007273@brahms.sibelius.xs4all.nl>
- Reply-to: Eli Zaretskii <eliz at gnu dot org>
> Date: Wed, 29 Apr 2009 21:08:44 +0200 (CEST)
> From: Mark Kettenis <mark.kettenis@xs4all.nl>
> CC: drow@false.org, gdb@sourceware.org
>
> > > Date: Wed, 29 Apr 2009 14:39:46 -0400
> > > From: Daniel Jacobowitz <drow@false.org>
> > > Cc: gdb@sourceware.org
> >
> > Thanks for responding.
> >
> > > Sounds like the debug info is bad.
> >
> > But then why does GDB 6.1 have no problems debugging the same binary?
>
> Did GDB 6.1 have the DWARF2 frame unwinder enabled for DJGPP?
Interestingly, it did, at least if my reading of the code is correct.
i386-tdep.c from GDB 6.1 says:
/* Hook in the DWARF CFI frame unwinder. */
frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
whereas in current CVS we have this instead:
/* Hook in the DWARF CFI frame unwinder. */
dwarf2_append_unwinders (gdbarch);
and dwarf2_append_unwinders is simply
/* Append the DWARF-2 frame unwinders to GDBARCH's list. */
void
dwarf2_append_unwinders (struct gdbarch *gdbarch)
{
frame_unwind_append_unwinder (gdbarch, &dwarf2_frame_unwind);
frame_unwind_append_unwinder (gdbarch, &dwarf2_signal_frame_unwind);
}
So the only difference, beyond the code changes in the called
subroutines, is that in the current code base we also append an
unwinder for signal frames. But since DJGPP does not have such
frames, that isn't supposed to do any harm, is it?
TIA