From 539ffe0b42135dbf2714c3bb836aad493c7081a3 Mon Sep 17 00:00:00 2001 From: Mark Kettenis Date: Thu, 19 Apr 2001 11:39:48 +0000 Subject: [PATCH] * i386-tdep.c (i386_frameless_function_invocation): New function. * config/i386/tm-i386.h (FRAMELESS_FUNCTION_INVOCATION): Redefine in terms of i386_frameless_function_invocation. Adjust comment. (i386_frameless_function_invocation): New prototype. --- gdb/ChangeLog | 7 +++++++ gdb/config/i386/tm-i386.h | 11 ++++++----- gdb/i386-tdep.c | 13 +++++++++++++ 3 files changed, 26 insertions(+), 5 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8f311d13162..f3024e22a4e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2001-04-19 Mark Kettenis + + * i386-tdep.c (i386_frameless_function_invocation): New function. + * config/i386/tm-i386.h (FRAMELESS_FUNCTION_INVOCATION): Redefine + in terms of i386_frameless_function_invocation. Adjust comment. + (i386_frameless_function_invocation): New prototype. + 2001-04-18 Martin M. Hunt * top.c (gdb_init): Don't call cli_out_new() to diff --git a/gdb/config/i386/tm-i386.h b/gdb/config/i386/tm-i386.h index c4b64a547f2..8939d86ca1c 100644 --- a/gdb/config/i386/tm-i386.h +++ b/gdb/config/i386/tm-i386.h @@ -328,12 +328,13 @@ extern CORE_ADDR i386_extract_struct_value_address (char *regbuf); #define FRAME_CHAIN(frame) i386_frame_chain ((frame)) extern CORE_ADDR i386_frame_chain (struct frame_info *frame); -/* A macro that tells us whether the function invocation represented - by FI does not have a frame on the stack associated with it. If it - does not, FRAMELESS is set to 1, else 0. */ +/* Determine whether the function invocation represented by FRAME does + not have a from on the stack associated with it. If it does not, + return non-zero, otherwise return zero. */ -#define FRAMELESS_FUNCTION_INVOCATION(FI) \ - (((FI)->signal_handler_caller) ? 0 : frameless_look_for_prologue(FI)) +#define FRAMELESS_FUNCTION_INVOCATION(frame) \ + i386_frameless_function_invocation (frame) +extern int i386_frameless_function_invocation (struct frame_info *frame); /* Saved Pc. Get it from sigcontext if within sigtramp. */ diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index 15b261ca474..7477266f433 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -365,6 +365,19 @@ i386_frame_chain (struct frame_info *frame) return 0; } +/* Determine whether the function invocation represented by FRAME does + not have a from on the stack associated with it. If it does not, + return non-zero, otherwise return zero. */ + +int +i386_frameless_function_invocation (struct frame_info *frame) +{ + if (frame->signal_handler_caller) + return 0; + + return frameless_look_for_prologue (frame); +} + /* Immediately after a function call, return the saved pc. */ CORE_ADDR -- 2.30.2