aboutsummaryrefslogtreecommitdiff
path: root/gdb/infrun.c
diff options
context:
space:
mode:
authorJim Kingdon <jkingdon@engr.sgi.com>1993-12-30 15:27:52 +0000
committerJim Kingdon <jkingdon@engr.sgi.com>1993-12-30 15:27:52 +0000
commitf1619234902c29fefb4badac25714fa9c5f3e606 (patch)
tree0b193ec076c11f0b8effe18fe5fba05ba53faf17 /gdb/infrun.c
parent6816e053e6eab5fbf76cc7a86cdb39845b2ea8b2 (diff)
downloadgdb-f1619234902c29fefb4badac25714fa9c5f3e606.zip
gdb-f1619234902c29fefb4badac25714fa9c5f3e606.tar.gz
gdb-f1619234902c29fefb4badac25714fa9c5f3e606.tar.bz2
* 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.
Diffstat (limited to 'gdb/infrun.c')
-rw-r--r--gdb/infrun.c25
1 files changed, 15 insertions, 10 deletions
diff --git a/gdb/infrun.c b/gdb/infrun.c
index 0c2153b..f8720c3 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