This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: [RFA] Artifical dwarf2 debug info
- From: Michal Ludvig <mludvig at suse dot cz>
- To: Andrew Cagney <ac131313 at redhat dot com>
- Cc: GDB Patches <gdb-patches at sources dot redhat dot com>
- Date: Mon, 16 Dec 2002 18:40:19 +0100
- Subject: Re: [RFA] Artifical dwarf2 debug info
- Organization: SuSE CR
- References: <3DFBD14C.7090501@suse.cz> <3DFE0741.7020902@redhat.com>
Andrew Cagney wrote:
If I understand this correctly, you've created create dwarf2cfi info for
a function that has no such info. That way the dwarf2cfi code can
unwind a function that doesn't actually have CFI?
Yes.
If that is the case then I don't think this is either necessary or
correct. A `struct frame_info' allows frame specific unwind functions -
at present only dummy-frame and saved-regs-frame versions are
implemented, however the next ones to implement are cfi-frame (unwind
using CFI info) and regs-frame (unwind using the register cache).
I think cfi_frame_chain() does what you expect from cfi-frame unwinding
function. However it is useless if you have no CFI info ;-) And that's
the goal of my patch - provide a CFI when there are none and continue as
if it was there for ages.
For your problem, wouldn't it be better to, instead of creating fake CFI
info, implement custom frame unwind functions that handle your case?
There is a lot of different cases (functions with and without prologue,
functions allocating some space on the stack, signal trampolines, etc.),
and each one of would need to have a special handler. My approach seems
to be more general to me (only one more function per architecture and
several sets of data). And no, it wouldn't be better to do it a
different way, because this way it's already written and verified that
it works ;-)
Michal Ludvig
--
* SuSE CR, s.r.o * mludvig@suse.cz
* (+420) 296.545.373 * http://www.suse.cz