From f1619234902c29fefb4badac25714fa9c5f3e606 Mon Sep 17 00:00:00 2001 From: Jim Kingdon Date: Thu, 30 Dec 1993 15:27:52 +0000 Subject: [PATCH] * infrun.c (wait_for_inferior): Enable code which assumes that if we jump into the prologue from another function, then it was a subroutine call. #if 0 AT_FUNCTION_START; the above code should take care of this case. --- gdb/ChangeLog | 7 +++++++ gdb/infrun.c | 25 +++++++++++++++---------- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e568f8b7db1..9ff71f91b8e 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +Thu Dec 30 10:16:54 1993 Jim Kingdon (kingdon@lioth.cygnus.com) + + * infrun.c (wait_for_inferior): Enable code which assumes that if + we jump into the prologue from another function, then it was a + subroutine call. #if 0 AT_FUNCTION_START; the above code should + take care of this case. + Wed Dec 29 12:32:08 1993 Jim Kingdon (kingdon@lioth.cygnus.com) * valprint.c (val_print_string): Change chunksize from 200 diff --git a/gdb/infrun.c b/gdb/infrun.c index 0c2153b2acb..f8720c3e14b 100644 --- a/gdb/infrun.c +++ b/gdb/infrun.c @@ -1005,20 +1005,25 @@ switch_thread: like a subroutine call. */ ! stop_func_start - /* If we do a call, we will be at the start of a function. */ + /* If we do a call, we will be at the start of a function... */ || stop_pc == stop_func_start +#if 0 + /* Should be taken care of by the stop_pc < prologue_pc check + below. Also, on irix5 where this checks for stop_pc + equal to stop_func_start plus 12, it would seem to be + wrong for a function with a 4 byte prologue, and an 8 byte + call; a "return" could end up at stop_func_start+12. */ + || AT_FUNCTION_START (stop_pc, stop_func_name, stop_func_start) +#endif + + /* ...except on the Alpha with -O (and also Irix 5 and + perhaps others), in which we might call the address + after the load of gp. Since prologues don't contain + calls, we can't return to within one, and we don't + jump back into them, so this check is OK. */ -#if 0 - /* Not conservative enough for 4.11. FIXME: enable this - after 4.11. */ - /* Except on the Alpha with -O (and perhaps other machines - with similar calling conventions), in which we might - call the address after the load of gp. Since prologues - don't contain calls, we can't return to within one, and - we don't jump back into them, so this check is OK. */ || stop_pc < prologue_pc -#endif /* If we end up in certain places, it means we did a subroutine call. I'm not completely sure this is necessary now that we -- 2.30.2