This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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 */

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]