summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Cagney <cagney@redhat.com>2003-03-13 18:09:30 +0000
committerAndrew Cagney <cagney@redhat.com>2003-03-13 18:09:30 +0000
commit1be76f8c92383fb990bd77b431ba39ba5d3c0bda (patch)
tree1b2fac673caff554e8a20bf3d3968c5d62538b18
parente95f7acdf8363e974d9634d6697ba599a68b72fd (diff)
downloadgdb-1be76f8c92383fb990bd77b431ba39ba5d3c0bda.tar.gz
2003-03-13 Andrew Cagney <cagney@redhat.com>
* frame.c (legacy_frame_p): New function. (get_prev_frame): Use legacy_frame_p. * frame.h (legacy_frame_p): Declare.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/frame.c14
-rw-r--r--gdb/frame.h4
3 files changed, 20 insertions, 4 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index c9ec531b46d..fa4f836ad2f 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,9 @@
+2003-03-13 Andrew Cagney <cagney@redhat.com>
+
+ * frame.c (legacy_frame_p): New function.
+ (get_prev_frame): Use legacy_frame_p.
+ * frame.h (legacy_frame_p): Declare.
+
2003-03-13 D. Venkatasubramanian <dvenkat@noida.hcltech.com>
* MAINTAINERS (write after approval): Alphabetically
diff --git a/gdb/frame.c b/gdb/frame.c
index 267d484b606..94e9a4ae6d5 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -1327,10 +1327,7 @@ get_prev_frame (struct frame_info *this_frame)
the legacy get_prev_frame method. Just don't try to unwind a
sentinel frame using that method - it doesn't work. All sentinal
frames use the new unwind code. */
- if ((DEPRECATED_INIT_FRAME_PC_P ()
- || DEPRECATED_INIT_FRAME_PC_FIRST_P ()
- || DEPRECATED_INIT_EXTRA_FRAME_INFO_P ()
- || FRAME_CHAIN_P ())
+ if (legacy_frame_p (current_gdbarch)
&& this_frame->level >= 0)
{
prev_frame = legacy_get_prev_frame (this_frame);
@@ -1696,6 +1693,15 @@ deprecated_frame_xmalloc_with_cleanup (long sizeof_saved_regs,
return frame;
}
+int
+legacy_frame_p (struct gdbarch *current_gdbarch)
+{
+ return (DEPRECATED_INIT_FRAME_PC_P ()
+ || DEPRECATED_INIT_FRAME_PC_FIRST_P ()
+ || DEPRECATED_INIT_EXTRA_FRAME_INFO_P ()
+ || FRAME_CHAIN_P ());
+}
+
void
_initialize_frame (void)
{
diff --git a/gdb/frame.h b/gdb/frame.h
index 18c4df4397f..9e477a6c4e7 100644
--- a/gdb/frame.h
+++ b/gdb/frame.h
@@ -701,4 +701,8 @@ extern struct context *deprecated_get_frame_context (struct frame_info *fi);
extern void deprecated_set_frame_context (struct frame_info *fi,
struct context *context);
+/* Return non-zero if the architecture is relying on legacy frame
+ code. */
+extern int legacy_frame_p (struct gdbarch *gdbarch);
+
#endif /* !defined (FRAME_H) */