diff options
author | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-12-30 15:27:52 +0000 |
---|---|---|
committer | Jim Kingdon <jkingdon@engr.sgi.com> | 1993-12-30 15:27:52 +0000 |
commit | f1619234902c29fefb4badac25714fa9c5f3e606 (patch) | |
tree | 0b193ec076c11f0b8effe18fe5fba05ba53faf17 | |
parent | 6816e053e6eab5fbf76cc7a86cdb39845b2ea8b2 (diff) | |
download | gdb-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.
-rw-r--r-- | gdb/ChangeLog | 7 | ||||
-rw-r--r-- | gdb/infrun.c | 25 |
2 files changed, 22 insertions, 10 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e568f8b..9ff71f9 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 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 |