This is the mail archive of the
gdb@sources.redhat.com
mailing list for the GDB project.
Re: dwarf-frame.c question
- From: Mark Kettenis <kettenis at chello dot nl>
- To: Richard Henderson <rth at redhat dot com>
- Cc: gdb at sources dot redhat dot com
- Date: 01 Jun 2003 12:00:36 +0200
- Subject: Re: dwarf-frame.c question
- References: <20030601055751.GA12187@redhat.com>
Richard Henderson <rth@redhat.com> writes:
> [ Pasted from web archives, sorry. ]
>
> Mark Kettenis:
> > Andrew, it seems that we should tweak the frame code
> > to make sure that frame_unwind_by_pc is always passed a PC *within* the
> > function.
>
> Andrew Cagney:
> > True, but how? It would effectively be frame_unwind_address_in_block() but
> > how reliably/where could it be used?
>
> Careful; this silliness of subtracting one is not universal.
>
> ABI's with more thought in them (e.g. IA64) require the compiler
> to put *something* after a noreturn call that ends a function.
> This being a relatively uncommon case, it does not add much code
> size, and it solves some of the ambiguity problems you're seeing.
Note that it is not only noreturn calls that end a function that pose
a problem. As Andrew and Alexandre pointed out, branch instructions
pose a problem too.
Do you think we should require (or politely ask ;-)) the compiler to
put something after a noreturn call on other targets as well?
Mark