]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2003-07-16 Andrew Cagney <cagney@redhat.com>
authorAndrew Cagney <cagney@redhat.com>
Wed, 16 Jul 2003 22:29:13 +0000 (22:29 +0000)
committerAndrew Cagney <cagney@redhat.com>
Wed, 16 Jul 2003 22:29:13 +0000 (22:29 +0000)
* frame-base.h (frame_base_p_ftype): Delete definition.
(frame_base_append_predicate): Delete declaration.
* frame-unwind.h (frame_unwind_p_ftype): Delete definition.
(frame_unwind_append_predicate): Delete declaration.
* frame-unwind.c (struct frame_unwind_table): Delete field "p".
(append_predicate): Delete parameter "p".
(frame_unwind_append_predicate): Delete function.
(frame_unwind_append_sniffer): Update call to append_predicate.
(frame_unwind_free): Delete function.
(_initialize_frame_unwind): Pass NULL as "free" to
register_gdbarch_data.
(frame_unwind_init): Append the dummy_frame_sniffer.
(frame_unwind_find_by_frame): Simplify.
* frame-base.c (struct frame_base_table): Delete field "p".
(append_predicate): Delete parameter "p".
(frame_base_append_predicate): Delete function.
(frame_base_append_sniffer): Update call to append_predicate.
(frame_base_free): Delete function.
(frame_base_find_by_frame): Simplify.
(_initialize_frame_base): Pass NULL as "free" to
register_gdbarch_data.
* x86-64-tdep.c (x86_64_frame_sniffer): Replace "x86_64_frame_p".
(x86_64_sigtramp_frame_sniffer): Replace
"x86_64_sigtramp_frame_p".
(x86_64_init_abi): Set the frame unwind sniffers.
* m68k-tdep.c (m68k_frame_sniffer): Replace "m68k_frame_p".
(m68k_sigtramp_frame_sniffer): Replace "m68k_sigtramp_frame_p"
(m68k_gdbarch_init): Set the frame unwind sniffers.
* i386-tdep.c (i386_sigtramp_frame_sniffer): Replace
"i386_sigtramp_frame_p".
(i386_frame_sniffer): Replace "i386_frame_p".
(i386_gdbarch_init): Set the frame unwind sniffers.
* avr-tdep.c (avr_frame_sniffer): Replace "avr_frame_sniffer".
(avr_gdbarch_init): Set the frame unwind sniffers.
* alpha-tdep.c (alpha_sigtramp_frame_sniffer): Replace
"alpha_sigtramp_frame_p"
(alpha_heuristic_frame_sniffer): Replace
"alpha_heuristic_frame_p".
(alpha_gdbarch_init): Set the frame unwind sniffers.
(alpha_dwarf2_init_abi): Ditto.
* alpha-mdebug-tdep.c (alpha_mdebug_frame_sniffer): Replace
"alpha_debug_frame_p".
(alpha_mdebug_frame_base_sniffer): Replace
"alpha_mdebug_frame_base_p".
(alpha_mdebug_init_abi): Set the frame unwind sniffers.
* d10v-tdep.c (d10v_frame_sniffer): Replace "d10v_frame_p".
(d10v_gdbarch_init): Set the frame unwind sniffer.
* dwarf2-frame.c (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
(dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
* dwarf2-frame.h (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
(dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
* dummy-frame.c (dummy_frame_sniffer): Replace "dummy_frame_p".
* dummy-frame.h (dummy_frame_sniffer): Replace "dummy_frame_p".

16 files changed:
gdb/ChangeLog
gdb/alpha-mdebug-tdep.c
gdb/alpha-tdep.c
gdb/avr-tdep.c
gdb/d10v-tdep.c
gdb/dummy-frame.c
gdb/dummy-frame.h
gdb/dwarf2-frame.c
gdb/dwarf2-frame.h
gdb/frame-base.c
gdb/frame-base.h
gdb/frame-unwind.c
gdb/frame-unwind.h
gdb/i386-tdep.c
gdb/m68k-tdep.c
gdb/x86-64-tdep.c

index 880eae2f7f5fa1a6469683dddce8230cb67f598f..2d74ba23ba52cce85d4a8da3438a670627d83d60 100644 (file)
@@ -1,3 +1,59 @@
+2003-07-16  Andrew Cagney  <cagney@redhat.com>
+
+       * frame-base.h (frame_base_p_ftype): Delete definition.
+       (frame_base_append_predicate): Delete declaration.
+       * frame-unwind.h (frame_unwind_p_ftype): Delete definition.
+       (frame_unwind_append_predicate): Delete declaration.
+       * frame-unwind.c (struct frame_unwind_table): Delete field "p".
+       (append_predicate): Delete parameter "p".
+       (frame_unwind_append_predicate): Delete function.
+       (frame_unwind_append_sniffer): Update call to append_predicate.
+       (frame_unwind_free): Delete function.
+       (_initialize_frame_unwind): Pass NULL as "free" to
+       register_gdbarch_data.
+       (frame_unwind_init): Append the dummy_frame_sniffer.
+       (frame_unwind_find_by_frame): Simplify.
+       * frame-base.c (struct frame_base_table): Delete field "p".
+       (append_predicate): Delete parameter "p".
+       (frame_base_append_predicate): Delete function.
+       (frame_base_append_sniffer): Update call to append_predicate.
+       (frame_base_free): Delete function.
+       (frame_base_find_by_frame): Simplify.
+       (_initialize_frame_base): Pass NULL as "free" to
+       register_gdbarch_data.
+       * x86-64-tdep.c (x86_64_frame_sniffer): Replace "x86_64_frame_p".
+       (x86_64_sigtramp_frame_sniffer): Replace
+       "x86_64_sigtramp_frame_p".
+       (x86_64_init_abi): Set the frame unwind sniffers.
+       * m68k-tdep.c (m68k_frame_sniffer): Replace "m68k_frame_p".
+       (m68k_sigtramp_frame_sniffer): Replace "m68k_sigtramp_frame_p"
+       (m68k_gdbarch_init): Set the frame unwind sniffers.
+       * i386-tdep.c (i386_sigtramp_frame_sniffer): Replace
+       "i386_sigtramp_frame_p".
+       (i386_frame_sniffer): Replace "i386_frame_p".
+       (i386_gdbarch_init): Set the frame unwind sniffers.
+       * avr-tdep.c (avr_frame_sniffer): Replace "avr_frame_sniffer".
+       (avr_gdbarch_init): Set the frame unwind sniffers.
+       * alpha-tdep.c (alpha_sigtramp_frame_sniffer): Replace
+       "alpha_sigtramp_frame_p"
+       (alpha_heuristic_frame_sniffer): Replace
+       "alpha_heuristic_frame_p".
+       (alpha_gdbarch_init): Set the frame unwind sniffers.
+       (alpha_dwarf2_init_abi): Ditto.
+       * alpha-mdebug-tdep.c (alpha_mdebug_frame_sniffer): Replace
+       "alpha_debug_frame_p".
+       (alpha_mdebug_frame_base_sniffer): Replace
+       "alpha_mdebug_frame_base_p".
+       (alpha_mdebug_init_abi): Set the frame unwind sniffers.
+       * d10v-tdep.c (d10v_frame_sniffer): Replace "d10v_frame_p".
+       (d10v_gdbarch_init): Set the frame unwind sniffer.
+       * dwarf2-frame.c (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
+       (dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
+       * dwarf2-frame.h (dwarf2_frame_sniffer): Replace "dwarf2_frame_p".
+       (dwarf2_frame_base_sniffer): Replace "dwarf2_frame_base_p".
+       * dummy-frame.c (dummy_frame_sniffer): Replace "dummy_frame_p".
+       * dummy-frame.h (dummy_frame_sniffer): Replace "dummy_frame_p".
+
 2003-07-16  Michael Snyder  <msnyder@redhat.com>
 
        * sh-tdep.c (sh_gdbarch_init): Fetch_registers for the sh3-dsp
index 9eb9c62c7da7d7ac8331a13b32a36e30096516d9..153ed11ce7d212eaf6e49211c355228e4204dcae 100644 (file)
@@ -304,8 +304,9 @@ static const struct frame_unwind alpha_mdebug_frame_unwind = {
 };
 
 const struct frame_unwind *
-alpha_mdebug_frame_p (CORE_ADDR pc)
+alpha_mdebug_frame_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   alpha_extra_func_info_t proc_desc;
 
   /* If this PC does not map to a PDR, then clearly this isn't an
@@ -360,8 +361,9 @@ static const struct frame_base alpha_mdebug_frame_base = {
 };
 
 static const struct frame_base *
-alpha_mdebug_frame_base_p (CORE_ADDR pc)
+alpha_mdebug_frame_base_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   alpha_extra_func_info_t proc_desc;
 
   /* If this PC does not map to a PDR, then clearly this isn't an
@@ -379,6 +381,6 @@ alpha_mdebug_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
   struct gdbarch_tdep *tdep = gdbarch_tdep (gdbarch);
 
-  frame_unwind_append_predicate (gdbarch, alpha_mdebug_frame_p);
-  frame_base_append_predicate (gdbarch, alpha_mdebug_frame_base_p);
+  frame_unwind_append_sniffer (gdbarch, alpha_mdebug_frame_sniffer);
+  frame_base_append_sniffer (gdbarch, alpha_mdebug_frame_base_sniffer);
 }
index 0a3185fd8909c99ec424117e046a763545cd7efa..646b2619ffcbd43b783f9d6836d00b38e6e6f0d9 100644 (file)
@@ -858,8 +858,9 @@ static const struct frame_unwind alpha_sigtramp_frame_unwind = {
 };
 
 static const struct frame_unwind *
-alpha_sigtramp_frame_p (CORE_ADDR pc)
+alpha_sigtramp_frame_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   char *name;
 
   /* We shouldn't even bother to try if the OSABI didn't register
@@ -1199,7 +1200,7 @@ static const struct frame_unwind alpha_heuristic_frame_unwind = {
 };
 
 static const struct frame_unwind *
-alpha_heuristic_frame_p (CORE_ADDR pc)
+alpha_heuristic_frame_sniffer (struct frame_info *next_frame)
 {
   return &alpha_heuristic_frame_unwind;
 }
@@ -1571,8 +1572,8 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   if (tdep->jb_pc >= 0)
     set_gdbarch_get_longjmp_target (gdbarch, alpha_get_longjmp_target);
 
-  frame_unwind_append_predicate (gdbarch, alpha_sigtramp_frame_p);
-  frame_unwind_append_predicate (gdbarch, alpha_heuristic_frame_p);
+  frame_unwind_append_sniffer (gdbarch, alpha_sigtramp_frame_sniffer);
+  frame_unwind_append_sniffer (gdbarch, alpha_heuristic_frame_sniffer);
 
   frame_base_set_default (gdbarch, &alpha_heuristic_frame_base);
 
@@ -1582,8 +1583,8 @@ alpha_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 void
 alpha_dwarf2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
 {
-  frame_unwind_append_predicate (gdbarch, dwarf2_frame_p);
-  frame_base_append_predicate (gdbarch, dwarf2_frame_base_p);
+  frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
+  frame_base_append_sniffer (gdbarch, dwarf2_frame_base_sniffer);
   set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info);
 }
 
index b060ea6732f2148cea453843041e49f1bbd0d4cd..3e3d26446ea604dce3cdd18a874eb8210ae7c5d6 100644 (file)
@@ -1080,7 +1080,7 @@ static const struct frame_unwind avr_frame_unwind = {
 };
 
 const struct frame_unwind *
-avr_frame_p (CORE_ADDR pc)
+avr_frame_sniffer (struct frame_info *next_frame)
 {
   return &avr_frame_unwind;
 }
@@ -1350,7 +1350,7 @@ avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_frameless_function_invocation (gdbarch,
                                              frameless_look_for_prologue);
 
-  frame_unwind_append_predicate (gdbarch, avr_frame_p);
+  frame_unwind_append_sniffer (gdbarch, avr_frame_sniffer);
   frame_base_set_default (gdbarch, &avr_frame_base);
 
   set_gdbarch_unwind_dummy_id (gdbarch, avr_unwind_dummy_id);
index eafe0ccc9beb24d85cb1787348056cfc5edbcd1f..ac52ab615f98c76bf5587acd4053e8010a3c0d91 100644 (file)
@@ -1440,7 +1440,7 @@ static const struct frame_unwind d10v_frame_unwind = {
 };
 
 static const struct frame_unwind *
-d10v_frame_p (CORE_ADDR pc)
+d10v_frame_sniffer (struct frame_info *next_frame)
 {
   return &d10v_frame_unwind;
 }
@@ -1580,7 +1580,7 @@ d10v_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
 
   set_gdbarch_print_registers_info (gdbarch, d10v_print_registers_info);
 
-  frame_unwind_append_predicate (gdbarch, d10v_frame_p);
+  frame_unwind_append_sniffer (gdbarch, d10v_frame_sniffer);
   frame_base_set_default (gdbarch, &d10v_frame_base);
 
   /* Methods for saving / extracting a dummy frame's ID.  The ID's
index 9870433c3e153b18909dbf231082fac7db6a5ac3..36c7dbb690aa7e1e7bd32b3ec7e3a4ec36cd847b 100644 (file)
@@ -408,8 +408,9 @@ static struct frame_unwind dummy_frame_unwind =
 };
 
 const struct frame_unwind *
-dummy_frame_p (CORE_ADDR pc)
+dummy_frame_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   if (DEPRECATED_PC_IN_CALL_DUMMY_P ()
       ? DEPRECATED_PC_IN_CALL_DUMMY (pc, 0, 0)
       : pc_in_dummy_frame (pc))
index ae090e3598d151be0a4e479bb97d8f737535a07f..cde9eb7f12f95759db89ee1d63ad1d357a06c10e 100644 (file)
@@ -48,7 +48,7 @@ struct frame_id;
 /* If the PC falls in a dummy frame, return a dummy frame
    unwinder.  */
 
-extern const struct frame_unwind *dummy_frame_p (CORE_ADDR pc);
+extern const struct frame_unwind *dummy_frame_sniffer (struct frame_info *next_frame);
 
 /* Does the PC fall in a dummy frame?
 
index e0b1a0530cb2540f458c89c71b4d6efb28610370..1ddf914a83cb5e6196be981ac5ccb0dc3a182012 100644 (file)
@@ -708,8 +708,9 @@ static const struct frame_unwind dwarf2_frame_unwind =
 };
 
 const struct frame_unwind *
-dwarf2_frame_p (CORE_ADDR pc)
+dwarf2_frame_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   /* The way GDB works, this function can be called with PC just after
      the last instruction of the function we're supposed to return the
      unwind methods for.  In that case we won't find the correct FDE;
@@ -748,8 +749,9 @@ static const struct frame_base dwarf2_frame_base =
 };
 
 const struct frame_base *
-dwarf2_frame_base_p (CORE_ADDR pc)
+dwarf2_frame_base_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   if (dwarf2_frame_find_fde (&pc))
     return &dwarf2_frame_base;
 
index 4b4c1a5ab2f4ca4cc9700b4b18f9cc2320de25ba..9fd85bd28916912caceb5a09fc5445041a76d164 100644 (file)
@@ -29,12 +29,12 @@ struct objfile;
 /* Return the frame unwind methods for the function that contains PC,
    or NULL if it can't be handled by DWARF CFI frame unwinder.  */
 
-const struct frame_unwind *dwarf2_frame_p (CORE_ADDR pc);
+const struct frame_unwind *dwarf2_frame_sniffer (struct frame_info *next_frame);
 
 /* Return the frame base methods for the function that contains PC, or
    NULL if it can't be handled by the DWARF CFI frame unwinder.  */
 
-const struct frame_base *dwarf2_frame_base_p (CORE_ADDR pc);
+const struct frame_base *dwarf2_frame_base_sniffer (struct frame_info *next_frame);
 
 /* Register the DWARF CFI for OBJFILE.  */
 
index 86d955b30699cc8e37230198409c520b8896a4bc..ad2d7b895c0b00cfb901a7cf5edc25722b415a7a 100644 (file)
@@ -70,7 +70,6 @@ static struct gdbarch_data *frame_base_data;
 
 struct frame_base_table
 {
-  frame_base_p_ftype **p;
   frame_base_sniffer_ftype **sniffer;
   const struct frame_base *default_base;
   int nr;
@@ -84,16 +83,6 @@ frame_base_init (struct gdbarch *gdbarch)
   return table;
 }
 
-static void
-frame_base_free (struct gdbarch *gdbarch, void *data)
-{
-  struct frame_base_table *table =
-    gdbarch_data (gdbarch, frame_base_data);
-  xfree (table->p);
-  xfree (table->sniffer);
-  xfree (table);
-}
-
 static struct frame_base_table *
 frame_base_table (struct gdbarch *gdbarch)
 {
@@ -110,33 +99,22 @@ frame_base_table (struct gdbarch *gdbarch)
 
 /* Append a predicate to the end of the table.  */
 static void
-append_predicate (struct frame_base_table *table, frame_base_p_ftype *p,
+append_predicate (struct frame_base_table *table,
                  frame_base_sniffer_ftype *sniffer)
 {
-  table->p = xrealloc (table->p, ((table->nr + 1)
-                                 * sizeof (frame_base_p_ftype *)));
   table->sniffer = xrealloc (table->sniffer,
                             ((table->nr + 1)
                              * sizeof (frame_base_sniffer_ftype *)));
-  table->p[table->nr] = p;
   table->sniffer[table->nr] = sniffer;
   table->nr++;
 }
 
-void
-frame_base_append_predicate (struct gdbarch *gdbarch,
-                            frame_base_p_ftype *p)
-{
-  struct frame_base_table *table = frame_base_table (gdbarch);
-  append_predicate (table, p, NULL);
-}
-
 void
 frame_base_append_sniffer (struct gdbarch *gdbarch,
                           frame_base_sniffer_ftype *sniffer)
 {
   struct frame_base_table *table = frame_base_table (gdbarch);
-  append_predicate (table, NULL, sniffer);
+  append_predicate (table, sniffer);
 }
 
 void
@@ -156,10 +134,7 @@ frame_base_find_by_frame (struct frame_info *next_frame)
   for (i = 0; i < table->nr; i++)
     {
       const struct frame_base *desc = NULL;
-      if (table->p[i] != NULL)
-       desc = table->p[i] (frame_pc_unwind (next_frame));
-      else if (table->sniffer[i] != NULL)
-       desc = table->sniffer[i] (next_frame);
+      desc = table->sniffer[i] (next_frame);
       if (desc != NULL)
        return desc;
     }
@@ -171,6 +146,5 @@ extern initialize_file_ftype _initialize_frame_base; /* -Wmissing-prototypes */
 void
 _initialize_frame_base (void)
 {
-  frame_base_data = register_gdbarch_data (frame_base_init,
-                                          frame_base_free);
+  frame_base_data = register_gdbarch_data (frame_base_init, NULL);
 }
index 7433c54f8905d3ed786fa061ca78e8cc570009c1..680e9d59ffb9b12d44579fdbf87a57d117facd5a 100644 (file)
@@ -29,12 +29,6 @@ struct frame_base;
 struct gdbarch;
 struct regcache;
 
-/* For compatibility.  */
-
-typedef const struct frame_base *(frame_base_p_ftype) (CORE_ADDR pc);
-extern void frame_base_append_predicate (struct gdbarch *gdbarch,
-                                        frame_base_p_ftype *p);
-
 /* Assuming the frame chain: (outer) prev <-> this <-> next (inner);
    and that this is a `normal frame'; use the NEXT frame, and its
    register unwind method, to determine the address of THIS frame's
index ed43cb3bf51c11cd671129cc3d53ba44d1b05ed4..dda92b03c77243cc27c5e589c286479ea46e7acb 100644 (file)
@@ -29,21 +29,17 @@ static struct gdbarch_data *frame_unwind_data;
 
 struct frame_unwind_table
 {
-  frame_unwind_p_ftype **p;
   frame_unwind_sniffer_ftype **sniffer;
   int nr;
 };
 
 /* Append a predicate to the end of the table.  */
 static void
-append_predicate (struct frame_unwind_table *table, frame_unwind_p_ftype *p,
+append_predicate (struct frame_unwind_table *table,
                  frame_unwind_sniffer_ftype *sniffer)
 {
-  table->p = xrealloc (table->p, ((table->nr + 1)
-                                 * sizeof (frame_unwind_p_ftype *)));
   table->sniffer = xrealloc (table->sniffer, ((table->nr + 1)
                                              * sizeof (frame_unwind_sniffer_ftype *)));
-  table->p[table->nr] = p;
   table->sniffer[table->nr] = sniffer;
   table->nr++;
 }
@@ -52,36 +48,10 @@ static void *
 frame_unwind_init (struct gdbarch *gdbarch)
 {
   struct frame_unwind_table *table = XCALLOC (1, struct frame_unwind_table);
-  append_predicate (table, dummy_frame_p, NULL);
+  append_predicate (table, dummy_frame_sniffer);
   return table;
 }
 
-static void
-frame_unwind_free (struct gdbarch *gdbarch, void *data)
-{
-  struct frame_unwind_table *table =
-    gdbarch_data (gdbarch, frame_unwind_data);
-  xfree (table->p);
-  xfree (table->sniffer);
-  xfree (table);
-}
-
-void
-frame_unwind_append_predicate (struct gdbarch *gdbarch,
-                              frame_unwind_p_ftype *p)
-{
-  struct frame_unwind_table *table =
-    gdbarch_data (gdbarch, frame_unwind_data);
-  if (table == NULL)
-    {
-      /* ULGH, called during architecture initialization.  Patch
-         things up.  */
-      table = frame_unwind_init (gdbarch);
-      set_gdbarch_data (gdbarch, frame_unwind_data, table);
-    }
-  append_predicate (table, p, NULL);
-}
-
 void
 frame_unwind_append_sniffer (struct gdbarch *gdbarch,
                             frame_unwind_sniffer_ftype *sniffer)
@@ -95,7 +65,7 @@ frame_unwind_append_sniffer (struct gdbarch *gdbarch,
       table = frame_unwind_init (gdbarch);
       set_gdbarch_data (gdbarch, frame_unwind_data, table);
     }
-  append_predicate (table, NULL, sniffer);
+  append_predicate (table, sniffer);
 }
 
 const struct frame_unwind *
@@ -113,12 +83,7 @@ frame_unwind_find_by_frame (struct frame_info *next_frame)
   for (i = 0; i < table->nr; i++)
     {
       const struct frame_unwind *desc;
-      if (table->p[i] != NULL)
-       desc = table->p[i] (frame_pc_unwind (next_frame));
-      else if (table->sniffer[i] != NULL)
-       desc = table->sniffer[i] (next_frame);
-      else
-       internal_error (__FILE__, __LINE__, "Missing sniffer?");
+      desc = table->sniffer[i] (next_frame);
       if (desc != NULL)
        return desc;
     }
@@ -130,6 +95,5 @@ extern initialize_file_ftype _initialize_frame_unwind; /* -Wmissing-prototypes *
 void
 _initialize_frame_unwind (void)
 {
-  frame_unwind_data = register_gdbarch_data (frame_unwind_init,
-                                            frame_unwind_free);
+  frame_unwind_data = register_gdbarch_data (frame_unwind_init, NULL);
 }
index 80ce4b6dd0d8e55cdccbeceb8d1cadb88ad9a115..8d17280fc9afa630293885479d324e299d9bb3ec 100644 (file)
@@ -30,12 +30,6 @@ struct regcache;
 
 #include "frame.h"             /* For enum frame_type.  */
 
-/* For compatibility with the old frame code.  See end of header for
-   new methods.  */
-typedef const struct frame_unwind *(frame_unwind_p_ftype) (CORE_ADDR pc);
-extern void frame_unwind_append_predicate (struct gdbarch *gdbarch,
-                                          frame_unwind_p_ftype *p);
-
 /* The following unwind functions assume a chain of frames forming the
    sequence: (outer) prev <-> this <-> next (inner).  All the
    functions are called with called with the next frame's `struct
index 3b981806dc2677d6e56e17d8a0d3750abc05c6bf..66741944cf91e4ffecaba9c86db519a39fb8429a 100644 (file)
@@ -851,7 +851,7 @@ static const struct frame_unwind i386_frame_unwind =
 };
 
 static const struct frame_unwind *
-i386_frame_p (CORE_ADDR pc)
+i386_frame_sniffer (struct frame_info *next_frame)
 {
   return &i386_frame_unwind;
 }
@@ -929,8 +929,9 @@ static const struct frame_unwind i386_sigtramp_frame_unwind =
 };
 
 static const struct frame_unwind *
-i386_sigtramp_frame_p (CORE_ADDR pc)
+i386_sigtramp_frame_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   char *name;
 
   /* We shouldn't even bother to try if the OSABI didn't register
@@ -1811,7 +1812,7 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   set_gdbarch_fetch_pointer_argument (gdbarch, i386_fetch_pointer_argument);
 
   /* Hook in the DWARF CFI frame unwinder.  */
-  frame_unwind_append_predicate (gdbarch, dwarf2_frame_p);
+  frame_unwind_append_sniffer (gdbarch, dwarf2_frame_sniffer);
   set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info);
 
   frame_base_set_default (gdbarch, &i386_frame_base);
@@ -1819,8 +1820,8 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   /* Hook in ABI-specific overrides, if they have been registered.  */
   gdbarch_init_osabi (info, gdbarch);
 
-  frame_unwind_append_predicate (gdbarch, i386_sigtramp_frame_p);
-  frame_unwind_append_predicate (gdbarch, i386_frame_p);
+  frame_unwind_append_sniffer (gdbarch, i386_sigtramp_frame_sniffer);
+  frame_unwind_append_sniffer (gdbarch, i386_frame_sniffer);
 
   return gdbarch;
 }
index 97ac076ab53878f3502411d115968e60d6757524..bbc14d3410e373276659d9d716ce88695caad817 100644 (file)
@@ -784,7 +784,7 @@ static const struct frame_unwind m68k_frame_unwind =
 };
 
 static const struct frame_unwind *
-m68k_frame_p (CORE_ADDR pc)
+m68k_frame_sniffer (struct frame_info *next_frame)
 {
   return &m68k_frame_unwind;
 }
@@ -851,8 +851,9 @@ static const struct frame_unwind m68k_sigtramp_frame_unwind =
 };
 
 static const struct frame_unwind *
-m68k_sigtramp_frame_p (CORE_ADDR pc)
+m68k_sigtramp_frame_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   char *name;
 
   /* We shouldn't even bother to try if the OSABI didn't register
@@ -1162,8 +1163,8 @@ m68k_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
   if (tdep->jb_pc >= 0)
     set_gdbarch_get_longjmp_target (gdbarch, m68k_get_longjmp_target);
 
-  frame_unwind_append_predicate (gdbarch, m68k_sigtramp_frame_p);
-  frame_unwind_append_predicate (gdbarch, m68k_frame_p);
+  frame_unwind_append_sniffer (gdbarch, m68k_sigtramp_frame_sniffer);
+  frame_unwind_append_sniffer (gdbarch, m68k_frame_sniffer);
 
   return gdbarch;
 }
index a93af05dc8ade471cb149763e0172673c377be5a..a2ae63189f4db6c93f6b61dc0b65cbba3e43ab91 100644 (file)
@@ -1077,7 +1077,7 @@ static const struct frame_unwind x86_64_frame_unwind =
 };
 
 static const struct frame_unwind *
-x86_64_frame_p (CORE_ADDR pc)
+x86_64_frame_sniffer (struct frame_info *next_frame)
 {
   return &x86_64_frame_unwind;
 }
@@ -1149,8 +1149,9 @@ static const struct frame_unwind x86_64_sigtramp_frame_unwind =
 };
 
 static const struct frame_unwind *
-x86_64_sigtramp_frame_p (CORE_ADDR pc)
+x86_64_sigtramp_frame_sniffer (struct frame_info *next_frame)
 {
+  CORE_ADDR pc = frame_pc_unwind (next_frame);
   char *name;
 
   find_pc_partial_function (pc, &name, NULL, NULL);
@@ -1260,8 +1261,8 @@ x86_64_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
      in the future.  */
   set_gdbarch_in_solib_call_trampoline (gdbarch, in_plt_section);
 
-  frame_unwind_append_predicate (gdbarch, x86_64_sigtramp_frame_p);
-  frame_unwind_append_predicate (gdbarch, x86_64_frame_p);
+  frame_unwind_append_sniffer (gdbarch, x86_64_sigtramp_frame_sniffer);
+  frame_unwind_append_sniffer (gdbarch, x86_64_frame_sniffer);
   frame_base_set_default (gdbarch, &x86_64_frame_base);
 }
 \f