From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cagney To: David Taylor Cc: gdb-patches@sourceware.cygnus.com Subject: Re: frameless_look_for_prologue Date: Fri, 09 Mar 2001 12:55:00 -0000 Message-id: <3AA93E14.2DAFC405@cygnus.com> References: <200103091450.JAA05215@texas.cygnus.com> X-SW-Source: 2001-03/msg00152.html 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 frame. 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. enjoy, Andrew