diff options
author | Mark Kettenis <kettenis@gnu.org> | 2001-04-19 11:39:48 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@gnu.org> | 2001-04-19 11:39:48 +0000 |
commit | 539ffe0b42135dbf2714c3bb836aad493c7081a3 (patch) | |
tree | 524f736053a0df22f73c3a5f91f8eddcb41d2dbb /gdb | |
parent | 653165cc0d1803bb11bfef2288778c85ac32bbe7 (diff) | |
download | fsf-binutils-gdb-539ffe0b42135dbf2714c3bb836aad493c7081a3.zip fsf-binutils-gdb-539ffe0b42135dbf2714c3bb836aad493c7081a3.tar.gz fsf-binutils-gdb-539ffe0b42135dbf2714c3bb836aad493c7081a3.tar.bz2 |
* 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.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/config/i386/tm-i386.h | 11 | ||||
-rw-r--r-- | gdb/i386-tdep.c | 13 |
3 files changed, 26 insertions, 5 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8f311d1..f3024e2 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2001-04-19 Mark Kettenis <kettenis@gnu.org> + + * 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 <hunt@redhat.com> * 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 c4b64a5..8939d86 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 15b261c..7477266 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 |