aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2004-02-08 19:34:17 +0000
committerAndrew Cagney <cagney@redhat.com>2004-02-08 19:34:17 +0000
commit1152e35e879dc17287a4a549f397b0a39ae05c9d (patch)
treeec211939ab7659fb68133221375e8a57eff6d0a8
parent31b75dbf5410d081e14d67edb8cf95bd8bb679be (diff)
downloadgdb-1152e35e879dc17287a4a549f397b0a39ae05c9d.zip
gdb-1152e35e879dc17287a4a549f397b0a39ae05c9d.tar.gz
gdb-1152e35e879dc17287a4a549f397b0a39ae05c9d.tar.bz2
2004-02-08 Andrew Cagney <cagney@redhat.com>
* frame.c (legacy_saved_regs_this_id): Return a null frame ID. (get_frame_id): Allow the UNKNOWN_FRAME. (frame_register_unwind, get_frame_type): Ditto.
-rw-r--r--gdb/ChangeLog4
-rw-r--r--gdb/frame.c12
2 files changed, 10 insertions, 6 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c0c1f6a..cfddb8a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,9 @@
2004-02-08 Andrew Cagney <cagney@redhat.com>
+ * frame.c (legacy_saved_regs_this_id): Return a null frame ID.
+ (get_frame_id): Allow the UNKNOWN_FRAME.
+ (frame_register_unwind, get_frame_type): Ditto.
+
* frame.c (legacy_frame_p): Check for DEPRECATED_TARGET_READ_FP_P
and DEPRECATED_FP_REGNUM. Don't assume that the lack of
unwind_dummy_id indicates a legacy frame.
diff --git a/gdb/frame.c b/gdb/frame.c
index 455d560..1c54f56 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -234,7 +234,6 @@ get_frame_id (struct frame_info *fi)
directly. Unfortunately, legacy code, called by
legacy_get_prev_frame, explicitly set the frames type
using the method deprecated_set_frame_type(). */
- gdb_assert (fi->unwind->type != UNKNOWN_FRAME);
fi->type = fi->unwind->type;
}
/* Find THIS frame's ID. */
@@ -538,7 +537,6 @@ frame_register_unwind (struct frame_info *frame, int regnum,
directly. Unfortunately, legacy code, called by
legacy_get_prev_frame, explicitly set the frames type using
the method deprecated_set_frame_type(). */
- gdb_assert (frame->unwind->type != UNKNOWN_FRAME);
frame->type = frame->unwind->type;
}
@@ -1029,9 +1027,12 @@ legacy_saved_regs_this_id (struct frame_info *next_frame,
void **this_prologue_cache,
struct frame_id *id)
{
- /* legacy_get_prev_frame() always sets ->this_id.p, hence this is
- never needed. */
- internal_error (__FILE__, __LINE__, "legacy_saved_regs_this_id() called");
+ /* A developer is trying to bring up a new architecture, help them
+ by providing a default unwinder that refuses to unwind anything
+ (the ID is always NULL). In the case of legacy code,
+ legacy_get_prev_frame() will have previously set ->this_id.p, so
+ this code won't be called. */
+ (*id) = null_frame_id;
}
const struct frame_unwind legacy_saved_regs_unwinder = {
@@ -2133,7 +2134,6 @@ get_frame_type (struct frame_info *frame)
directly. Unfortunately, legacy code, called by
legacy_get_prev_frame, explicitly set the frames type using
the method deprecated_set_frame_type(). */
- gdb_assert (frame->unwind->type != UNKNOWN_FRAME);
frame->type = frame->unwind->type;
}
if (frame->type == UNKNOWN_FRAME)