summaryrefslogtreecommitdiff
path: root/gdb/inline-frame.c
diff options
context:
space:
mode:
authorJoel Brobecker <brobecker@gnat.com>2009-09-13 16:28:28 +0000
committerJoel Brobecker <brobecker@gnat.com>2009-09-13 16:28:28 +0000
commit3caedd1374c797abfb6ac2953585f4fa12108d28 (patch)
tree8f5c121e9850e7ad171a075ac1d41ef068995d9e /gdb/inline-frame.c
parent49f4cdad356746dd51f1d0db8c46bcf6a2eae373 (diff)
downloadgdb-3caedd1374c797abfb6ac2953585f4fa12108d28.tar.gz
gdb/
* frame.c (get_frame_id): Default to outer_frame_id if the this_id method does not supply an ID. Assert that the result is not null_frame_id. (outer_frame_id): New. (frame_id_p): Accept outer_frame_id. (frame_id_eq): Allow outer_frame_id to be equal to itself. (frame_find_by_id): Revert previous local workarounds. (get_prev_frame_1): Adjust end-of-stack check to test outer_frame_id. * frame.h (null_frame_id, frame_id_p): Update comments. (outer_frame_id): Declare. * infrun.c (handle_inferior_event): Do not treat all steps from the outermost frame as subroutine calls. * libunwind-frame.c (libunwind_frame_this_id): Do not clear THIS_ID. * hppa-tdep.c (hppa_stub_frame_this_id): Likewise. * ia64-tdep.c (ia64_frame_this_id): Likewise. (ia64_libunwind_frame_this_id, ia64_libunwind_sigtramp_frame_this_id): Use outer_frame_id instead of null_frame_id. * amd64obsd-tdep.c (amd64obsd_trapframe_cache): Use outer_frame_id. * i386obsd-tdep.c (i386obsd_trapframe_cache): Likewise. * inline-frame.c (inline_frame_this_id): Refuse outer_frame_id. * thread.c (restore_selected_frame): Update comment and remove frame_id_p check. gdb/doc/ * gdbint.texinfo (Unwinding the Frame ID): Reference outer_frame_id.
Diffstat (limited to 'gdb/inline-frame.c')
-rw-r--r--gdb/inline-frame.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gdb/inline-frame.c b/gdb/inline-frame.c
index 731d3adcaaf..0e6dae323fd 100644
--- a/gdb/inline-frame.c
+++ b/gdb/inline-frame.c
@@ -148,6 +148,10 @@ inline_frame_this_id (struct frame_info *this_frame,
frame"). This will take work. */
gdb_assert (frame_id_p (*this_id));
+ /* For now, require we don't match outer_frame_id either (see
+ comment above). */
+ gdb_assert (!frame_id_eq (*this_id, outer_frame_id));
+
/* Future work NOTE: Alexandre Oliva applied a patch to GCC 4.3
which generates DW_AT_entry_pc for inlined functions when
possible. If this attribute is available, we should use it