Andrew Cagney
Fri Mar 9 12:55:00 GMT 2001

David Taylor wrote:
> I believe that every target that does:
>   set_gdbarch_frameless_function_invocation (gdbarch,
>                                              frameless_look_for_prologue);
> has a bug.
> The function frameless_look_for_prologue invokes PROLOGUE_FRAMELESS_P
> with one argument -- the pc of the *START* of the function.
> For backtraces, get_prev_frame wants to know not "does this function
> eventually set up a frame if I execute far enough into it", but rather
> "does this function have a frame at the point where the program has
> currently stopped".

I don't think this is right.  As far as I know, the behavour is:

	o	gdb sets a breakpoint at the end
		of the function prologue

		i.e.	break foo
		not	break *foo

	o	the target runs through to the end of 
		the prologue so that the stack frame's
		construction is complete.

GDB can only do correct backtraces after the frame has been
constructed.  GDB doesn't handle backtraces part way through a stack

As far as I know, to make things so that GDB could re-construct a
partially built frame, GDB would need to understand things like dwarf2's
live range splitting stuff (correct name?) along with a few other dwarf2
(?) features which would, together, let GDB construct its frame frame
based on an aribtrary function address.


More information about the Gdb-patches mailing list