This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
[commit] Default to new frame code
- From: Andrew Cagney <cagney at gnu dot org>
- To: gdb-patches at sources dot redhat dot com
- Date: Sun, 08 Feb 2004 13:55:25 -0500
- Subject: [commit] Default to new frame code
Hello,
That at present, if your architecture has implemented no frame code, GDB
tries to use the legacy frame code :-( This reverses things so that
instead, with nothing implemented, the new frame code is used.
committed,
Andrew
2004-02-08 Andrew Cagney <cagney@redhat.com>
* 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.
Index: frame.c
===================================================================
RCS file: /cvs/src/src/gdb/frame.c,v
retrieving revision 1.156
diff -u -r1.156 frame.c
--- frame.c 4 Feb 2004 16:34:51 -0000 1.156
+++ frame.c 8 Feb 2004 18:50:29 -0000
@@ -2280,11 +2280,28 @@
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 ()
- || DEPRECATED_FRAME_CHAIN_P ()
- || !gdbarch_unwind_dummy_id_p (current_gdbarch));
+ if (DEPRECATED_INIT_FRAME_PC_P ()
+ || DEPRECATED_INIT_FRAME_PC_FIRST_P ()
+ || DEPRECATED_INIT_EXTRA_FRAME_INFO_P ()
+ || DEPRECATED_FRAME_CHAIN_P ())
+ /* No question, it's a legacy frame. */
+ return 1;
+ if (gdbarch_unwind_dummy_id_p (current_gdbarch))
+ /* No question, it's not a legacy frame (provided none of the
+ deprecated methods checked above are present that is). */
+ return 0;
+ if (DEPRECATED_TARGET_READ_FP_P ()
+ || DEPRECATED_FP_REGNUM >= 0)
+ /* Assume it's legacy. If you're trying to convert a legacy frame
+ target to the new mechanism, get rid of these. legacy
+ get_prev_frame requires these when unwind_frame_id isn't
+ available. */
+ return 1;
+ /* Default to assuming that it's brand new code, and hence not
+ legacy. Force it down the non-legacy path so that the new code
+ uses the new frame mechanism from day one. Dummy frame's won't
+ work very well but we can live with that. */
+ return 0;
}
extern initialize_file_ftype _initialize_frame; /* -Wmissing-prototypes */