forked from Imagelibrary/binutils-gdb
2004-08-02 Andrew Cagney <cagney@gnu.org>
* gdbarch.sh (deprecated_frameless_function_invocation): Delete. * gdbarch.h, gdbarch.c: Re-generate. * arm-tdep.c (arm_frameless_function_invocation): Delete. (arm_gdbarch_init) Do not set frameless function invocation. * frame.h (legacy_frameless_look_for_prologue): Delete declaration. * blockframe.c (legacy_frameless_look_for_prologue): Delete function. * frv-tdep.c (frv_frameless_function_invocation): Delete. (frv_gdbarch_init): Do not set frameless function invocation. * sh64-tdep.c (sh64_gdbarch_init): Ditto. * sh-tdep.c (sh_gdbarch_init): Ditto. * m32r-tdep.c (m32r_gdbarch_init): Ditto. * h8300-tdep.c (h8300_gdbarch_init): Ditto. * avr-tdep.c (avr_gdbarch_init): Ditto.
This commit is contained in:
@@ -135,44 +135,6 @@ inside_entry_func (struct frame_info *this_frame)
|
||||
return (get_frame_func (this_frame) == entry_point_address ());
|
||||
}
|
||||
|
||||
/* Return nonzero if the function for this frame lacks a prologue.
|
||||
Many machines can define DEPRECATED_FRAMELESS_FUNCTION_INVOCATION
|
||||
to just call this function. */
|
||||
|
||||
int
|
||||
legacy_frameless_look_for_prologue (struct frame_info *frame)
|
||||
{
|
||||
CORE_ADDR func_start;
|
||||
|
||||
func_start = get_frame_func (frame);
|
||||
if (func_start)
|
||||
{
|
||||
func_start += DEPRECATED_FUNCTION_START_OFFSET;
|
||||
/* NOTE: cagney/2004-02-09: Eliminated per-architecture
|
||||
PROLOGUE_FRAMELESS_P call as architectures with custom
|
||||
implementations had all been deleted. Eventually even this
|
||||
function can go - GDB no longer tries to differentiate
|
||||
between framed, frameless and stackless functions. They are
|
||||
all now considered equally evil :-^. */
|
||||
/* If skipping the prologue ends up skips nothing, there must be
|
||||
no prologue and hence no code creating a frame. There for
|
||||
the function is "frameless" :-/. */
|
||||
return func_start == SKIP_PROLOGUE (func_start);
|
||||
}
|
||||
else if (get_frame_pc (frame) == 0)
|
||||
/* A frame with a zero PC is usually created by dereferencing a
|
||||
NULL function pointer, normally causing an immediate core dump
|
||||
of the inferior. Mark function as frameless, as the inferior
|
||||
has no chance of setting up a stack frame. */
|
||||
return 1;
|
||||
else
|
||||
/* If we can't find the start of the function, we don't really
|
||||
know whether the function is frameless, but we should be able
|
||||
to get a reasonable (i.e. best we can do under the
|
||||
circumstances) backtrace by saying that it isn't. */
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Return the innermost lexical block in execution
|
||||
in a specified stack frame. The frame address is assumed valid.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user