aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2003-10-16 18:24:13 +0000
committerAndrew Cagney <cagney@redhat.com>2003-10-16 18:24:13 +0000
commit65815ea1330d1fcb97eb177105826dd5c7961aea (patch)
treed0c0d9e7a4613b8be3eee8d2522bb481f8e681c3
parent40324f1b404edf73cafbf8c6c7deb017a4623ba8 (diff)
downloadgdb-65815ea1330d1fcb97eb177105826dd5c7961aea.zip
gdb-65815ea1330d1fcb97eb177105826dd5c7961aea.tar.gz
gdb-65815ea1330d1fcb97eb177105826dd5c7961aea.tar.bz2
2003-10-16 Andrew Cagney <cagney@redhat.com>
* infrun.c (handle_inferior_event): Add comment about "frame_id_inner" being too weak.
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/infrun.c16
2 files changed, 21 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 3834c54..654f63f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,8 @@
+2003-10-16 Andrew Cagney <cagney@redhat.com>
+
+ * infrun.c (handle_inferior_event): Add comment about
+ "frame_id_inner" being too weak.
+
2003-10-16 Elena Zannoni <ezannoni@redhat.com>
* minsyms.c (lookup_minimal_symbol_solib_trampoline): Remove
diff --git a/gdb/infrun.c b/gdb/infrun.c
index e22a90a..7412080 100644
--- a/gdb/infrun.c
+++ b/gdb/infrun.c
@@ -2636,6 +2636,22 @@ process_event_stop_test:
/* In the case where we just stepped out of a function into the
middle of a line of the caller, continue stepping, but
step_frame_id must be modified to current frame */
+#if 0
+ /* NOTE: cagney/2003-10-16: I think this frame ID inner test is too
+ generous. It will trigger on things like a step into a frameless
+ stackless leaf function. I think the logic should instead look
+ at the unwound frame ID has that should give a more robust
+ indication of what happened. */
+ if (step-ID == current-ID)
+ still stepping in same function;
+ else if (step-ID == unwind (current-ID))
+ stepped into a function;
+ else
+ stepped out of a function;
+ /* Of course this assumes that the frame ID unwind code is robust
+ and we're willing to introduce frame unwind logic into this
+ function. Fortunatly, those days are nearly upon us. */
+#endif
{
struct frame_id current_frame = get_frame_id (get_current_frame ());
if (!(frame_id_inner (current_frame, step_frame_id)))