gdb: add names to unwinders, add debug messages when looking for unwinder
authorSimon Marchi <simon.marchi@polymtl.ca>
Tue, 29 Jun 2021 16:05:03 +0000 (12:05 -0400)
committerSimon Marchi <simon.marchi@polymtl.ca>
Tue, 29 Jun 2021 16:05:03 +0000 (12:05 -0400)
I wrote this while debugging a problem where the expected unwinder for a
frame wasn't used.  It adds messages to show which unwinders are
considered for a frame, why they are not selected (if an exception is
thrown), and finally which unwinder is selected in the end.

To be able to show a meaningful, human-readable name for the unwinders,
add a "name" field to struct frame_unwind, and update all instances to
include a name.

Here's an example of the output:

    [frame] frame_unwind_find_by_frame: this_frame=0
    [frame] frame_unwind_try_unwinder: trying unwinder "dummy"
    [frame] frame_unwind_try_unwinder: no
    [frame] frame_unwind_try_unwinder: trying unwinder "dwarf2 tailcall"
    [frame] frame_unwind_try_unwinder: no
    [frame] frame_unwind_try_unwinder: trying unwinder "inline"
    [frame] frame_unwind_try_unwinder: no
    [frame] frame_unwind_try_unwinder: trying unwinder "jit"
    [frame] frame_unwind_try_unwinder: no
    [frame] frame_unwind_try_unwinder: trying unwinder "python"
    [frame] frame_unwind_try_unwinder: no
    [frame] frame_unwind_try_unwinder: trying unwinder "amd64 epilogue"
    [frame] frame_unwind_try_unwinder: no
    [frame] frame_unwind_try_unwinder: trying unwinder "i386 epilogue"
    [frame] frame_unwind_try_unwinder: no
    [frame] frame_unwind_try_unwinder: trying unwinder "dwarf2"
    [frame] frame_unwind_try_unwinder: yes

gdb/ChangeLog:

* frame-unwind.h (struct frame_unwind) <name>: New.  Update
instances everywhere to include this field.
* frame-unwind.c (frame_unwind_try_unwinder,
frame_unwind_find_by_frame): Add debug messages.

Change-Id: I813f17777422425f0d08b22499817b23922e8ddb

78 files changed:
gdb/ChangeLog
gdb/aarch64-tdep.c
gdb/alpha-mdebug-tdep.c
gdb/alpha-tdep.c
gdb/amd64-obsd-tdep.c
gdb/amd64-tdep.c
gdb/amd64-windows-tdep.c
gdb/arc-tdep.c
gdb/arm-tdep.c
gdb/avr-tdep.c
gdb/bfin-tdep.c
gdb/bpf-tdep.c
gdb/cris-tdep.c
gdb/csky-tdep.c
gdb/dummy-frame.c
gdb/dwarf2/frame-tailcall.c
gdb/dwarf2/frame.c
gdb/frame-unwind.c
gdb/frame-unwind.h
gdb/frv-linux-tdep.c
gdb/frv-tdep.c
gdb/ft32-tdep.c
gdb/h8300-tdep.c
gdb/hppa-linux-tdep.c
gdb/hppa-tdep.c
gdb/i386-obsd-tdep.c
gdb/i386-tdep.c
gdb/ia64-tdep.c
gdb/inline-frame.c
gdb/iq2000-tdep.c
gdb/jit.c
gdb/lm32-tdep.c
gdb/m32c-tdep.c
gdb/m32r-linux-tdep.c
gdb/m32r-tdep.c
gdb/m68hc11-tdep.c
gdb/m68k-linux-tdep.c
gdb/m68k-tdep.c
gdb/mep-tdep.c
gdb/microblaze-tdep.c
gdb/mips-sde-tdep.c
gdb/mips-tdep.c
gdb/mn10300-tdep.c
gdb/moxie-tdep.c
gdb/msp430-tdep.c
gdb/nds32-tdep.c
gdb/nios2-tdep.c
gdb/or1k-tdep.c
gdb/ppc-fbsd-tdep.c
gdb/ppc-obsd-tdep.c
gdb/python/py-unwind.c
gdb/record-btrace.c
gdb/riscv-tdep.c
gdb/rl78-tdep.c
gdb/rs6000-aix-tdep.c
gdb/rs6000-tdep.c
gdb/rx-tdep.c
gdb/s12z-tdep.c
gdb/s390-linux-tdep.c
gdb/s390-tdep.c
gdb/score-tdep.c
gdb/sentinel-frame.c
gdb/sh-tdep.c
gdb/sparc-netbsd-tdep.c
gdb/sparc-obsd-tdep.c
gdb/sparc-sol2-tdep.c
gdb/sparc-tdep.c
gdb/sparc64-fbsd-tdep.c
gdb/sparc64-netbsd-tdep.c
gdb/sparc64-obsd-tdep.c
gdb/sparc64-sol2-tdep.c
gdb/sparc64-tdep.c
gdb/tic6x-tdep.c
gdb/tilegx-tdep.c
gdb/v850-tdep.c
gdb/vax-tdep.c
gdb/xstormy16-tdep.c
gdb/xtensa-tdep.c

index 3cda05433ce11f73533eb309401bdb86ffa5c233..db55c09870b4e829ba44db3fea3b15acf15fab93 100644 (file)
@@ -1,3 +1,10 @@
+2021-06-29  Simon Marchi  <simon.marchi@polymtl.ca>
+
+       * frame-unwind.h (struct frame_unwind) <name>: New.  Update
+       instances everywhere to include this field.
+       * frame-unwind.c (frame_unwind_try_unwinder,
+       frame_unwind_find_by_frame): Add debug messages.
+
 2021-06-29  Simon Marchi  <simon.marchi@polymtl.ca>
 
        * frame.h (frame_debug_printf): New.
index dea16e729c0324dd66c70266b0b3575b85e4b775..4b5af4616af5d591276df531d0898854a9ef82d0 100644 (file)
@@ -1116,6 +1116,7 @@ aarch64_prologue_prev_register (struct frame_info *this_frame,
 /* AArch64 prologue unwinder.  */
 static frame_unwind aarch64_prologue_unwind =
 {
+  "aarch64 prologue",
   NORMAL_FRAME,
   aarch64_prologue_frame_unwind_stop_reason,
   aarch64_prologue_this_id,
@@ -1210,6 +1211,7 @@ aarch64_stub_unwind_sniffer (const struct frame_unwind *self,
 /* AArch64 stub unwinder.  */
 static frame_unwind aarch64_stub_unwind =
 {
+  "aarch64 stub",
   NORMAL_FRAME,
   aarch64_stub_frame_unwind_stop_reason,
   aarch64_stub_this_id,
index a062ad99a9f32c6d34d113373407e7695d2b06f3..52d0bf02813fae61ce5425aa4b1900838ecd546c 100644 (file)
@@ -333,7 +333,9 @@ alpha_mdebug_frame_sniffer (const struct frame_unwind *self,
   return 1;
 }
 
-static const struct frame_unwind alpha_mdebug_frame_unwind = {
+static const struct frame_unwind alpha_mdebug_frame_unwind =
+{
+  "alpha mdebug",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   alpha_mdebug_frame_this_id,
index 90ff81319454a21702f99bb32b4568004b09afc2..7538c5603bb1bf338f7cede5410212728c7089a5 100644 (file)
@@ -1012,7 +1012,9 @@ alpha_sigtramp_frame_sniffer (const struct frame_unwind *self,
   return 0;
 }
 
-static const struct frame_unwind alpha_sigtramp_frame_unwind = {
+static const struct frame_unwind alpha_sigtramp_frame_unwind =
+{
+  "alpha sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   alpha_sigtramp_frame_this_id,
@@ -1429,7 +1431,9 @@ alpha_heuristic_frame_prev_register (struct frame_info *this_frame,
   return trad_frame_get_prev_register (this_frame, info->saved_regs, regnum);
 }
 
-static const struct frame_unwind alpha_heuristic_frame_unwind = {
+static const struct frame_unwind alpha_heuristic_frame_unwind =
+{
+  "alpha prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   alpha_heuristic_frame_this_id,
index cdb09d0272bcae309b6baa5e04d76a99255b1ab0..070f19635aabdbbc7abb58db8887f75a50f43209 100644 (file)
@@ -402,10 +402,12 @@ amd64obsd_trapframe_sniffer (const struct frame_unwind *self,
                   || (startswith (name, "Xintr"))));
 }
 
-static const struct frame_unwind amd64obsd_trapframe_unwind = {
+static const struct frame_unwind amd64obsd_trapframe_unwind =
+{
   /* FIXME: kettenis/20051219: This really is more like an interrupt
      frame, but SIGTRAMP_FRAME would print <signal handler called>,
      which really is not what we want here.  */
+  "amd64 openbsd trap",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   amd64obsd_trapframe_this_id,
index 3afac3c7e601f7dc49b44cfa5dab45210440d785..c028e1bd0f6573542842f3a54f410e98d903c54b 100644 (file)
@@ -2702,6 +2702,7 @@ amd64_frame_prev_register (struct frame_info *this_frame, void **this_cache,
 
 static const struct frame_unwind amd64_frame_unwind =
 {
+  "amd64 prologue",
   NORMAL_FRAME,
   amd64_frame_unwind_stop_reason,
   amd64_frame_this_id,
@@ -2846,6 +2847,7 @@ amd64_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind amd64_sigtramp_frame_unwind =
 {
+  "amd64 sigtramp",
   SIGTRAMP_FRAME,
   amd64_sigtramp_frame_unwind_stop_reason,
   amd64_sigtramp_frame_this_id,
@@ -2981,6 +2983,7 @@ amd64_epilogue_frame_this_id (struct frame_info *this_frame,
 
 static const struct frame_unwind amd64_epilogue_frame_unwind =
 {
+  "amd64 epilogue",
   NORMAL_FRAME,
   amd64_epilogue_frame_unwind_stop_reason,
   amd64_epilogue_frame_this_id,
index 5442e527653981a49059a295c7e1eb3c7eac9c4f..fe8a3a0b7aca3698760cef7cd8e31bd5490c7d0c 100644 (file)
@@ -1178,6 +1178,7 @@ amd64_windows_frame_this_id (struct frame_info *this_frame, void **this_cache,
 
 static const struct frame_unwind amd64_windows_frame_unwind =
 {
+  "amd64 windows",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   &amd64_windows_frame_this_id,
index 3afbf4264fe8122646fafddbf123619eb62a4c51..b793a18d8b9eb95d0a77a93c0ccfc0268b24e149 100644 (file)
@@ -1922,6 +1922,7 @@ arc_sigtramp_frame_sniffer (const struct frame_unwind *self,
    accepts the frame.  */
 
 static const struct frame_unwind arc_frame_unwind = {
+  "arc prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   arc_frame_this_id,
@@ -1937,6 +1938,7 @@ static const struct frame_unwind arc_frame_unwind = {
    context.  */
 
 static const struct frame_unwind arc_sigtramp_frame_unwind = {
+  "arc sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   arc_sigtramp_frame_this_id,
index 09b38e59e9e50b8cecc031afeae2b7d80906b1af..e4e7aec4e1c2604483b1d40fffe66591f09c3e85 100644 (file)
@@ -2027,6 +2027,7 @@ arm_prologue_prev_register (struct frame_info *this_frame,
 }
 
 static frame_unwind arm_prologue_unwind = {
+  "arm prologue",
   NORMAL_FRAME,
   arm_prologue_unwind_stop_reason,
   arm_prologue_this_id,
@@ -2736,6 +2737,7 @@ arm_exidx_unwind_sniffer (const struct frame_unwind *self,
 }
 
 struct frame_unwind arm_exidx_unwind = {
+  "arm exidx",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   arm_prologue_this_id,
@@ -2839,6 +2841,7 @@ arm_epilogue_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind arm_epilogue_frame_unwind =
 {
+  "arm epilogue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   arm_epilogue_frame_this_id,
@@ -2960,6 +2963,7 @@ arm_stub_unwind_sniffer (const struct frame_unwind *self,
 }
 
 struct frame_unwind arm_stub_unwind = {
+  "arm stub",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   arm_stub_this_id,
@@ -3171,6 +3175,7 @@ arm_m_exception_unwind_sniffer (const struct frame_unwind *self,
 
 struct frame_unwind arm_m_exception_unwind =
 {
+  "arm m exception",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   arm_m_exception_this_id,
index 5853e692ae46067daee8b78056742fa65ceee783..6ef73d5454908d7b8ea3e48dd575286a222d811b 100644 (file)
@@ -1154,6 +1154,7 @@ avr_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind avr_frame_unwind = {
+  "avr prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   avr_frame_this_id,
index e3d6eee8832e4dd335a672dc06074e7153c8cf1c..bdf8ab90a22ec5447dcb3c7f31c4b3b74be4c185 100644 (file)
@@ -374,6 +374,7 @@ bfin_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind bfin_frame_unwind =
 {
+  "bfin prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   bfin_frame_this_id,
index a29cd90ba38773d592a778de068332b2c10ad633..e520d5d3d49a46afefee25a08b953807e8e07340 100644 (file)
@@ -184,6 +184,7 @@ bpf_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind bpf_frame_unwind =
 {
+  "bpf prologue",
   NORMAL_FRAME,
   bpf_frame_unwind_stop_reason,
   bpf_frame_this_id,
index 01ef1604bffa70d7319f812d4b56266c0b60f935..a0ff59487ed6c7189b0a6a9a0d0348964db3c5c0 100644 (file)
@@ -437,6 +437,7 @@ cris_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind cris_sigtramp_frame_unwind =
 {
+  "cris sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   cris_sigtramp_frame_this_id,
@@ -900,6 +901,7 @@ cris_push_dummy_call (struct gdbarch *gdbarch, struct value *function,
 
 static const struct frame_unwind cris_frame_unwind = 
 {
+  "cris prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   cris_frame_this_id,
index 609b684265f7434e6cc8bdcb912285b5b27ffeb1..5940429e19213fab880ae723d558b637c8130837 100644 (file)
@@ -1916,6 +1916,7 @@ csky_frame_prev_register (struct frame_info *this_frame,
    unwinder.  */
 
 static const struct frame_unwind csky_unwind_cache = {
+  "cski prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   csky_frame_this_id,
@@ -1999,6 +2000,7 @@ csky_stub_prev_register (struct frame_info *this_frame,
 }
 
 static frame_unwind csky_stub_unwind = {
+  "csky stub",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   csky_stub_this_id,
index 68a6937974929d4a25a431a34069e5b39a2a0aa1..ed2c778be6c497dc4f2d77b79aaefbb188bf797a 100644 (file)
@@ -378,6 +378,7 @@ dummy_frame_this_id (struct frame_info *this_frame,
 
 const struct frame_unwind dummy_frame_unwind =
 {
+  "dummy",
   DUMMY_FRAME,
   default_frame_unwind_stop_reason,
   dummy_frame_this_id,
index d27211e9a88eaa2b5b51c5455d383842a5e286e6..f112b4ecca48e297fa0e078a429b0aa9a4c549cb 100644 (file)
@@ -468,6 +468,7 @@ tailcall_frame_prev_arch (struct frame_info *this_frame,
 
 const struct frame_unwind dwarf2_tailcall_frame_unwind =
 {
+  "dwarf2 tailcall",
   TAILCALL_FRAME,
   default_frame_unwind_stop_reason,
   tailcall_frame_this_id,
index f8612c96f274ea32ae561a6d448b9f4966cad54a..8d24559bb4da289a6360fa4fd52583491b88c23f 100644 (file)
@@ -1380,6 +1380,7 @@ dwarf2_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind dwarf2_frame_unwind =
 {
+  "dwarf2",
   NORMAL_FRAME,
   dwarf2_frame_unwind_stop_reason,
   dwarf2_frame_this_id,
@@ -1391,6 +1392,7 @@ static const struct frame_unwind dwarf2_frame_unwind =
 
 static const struct frame_unwind dwarf2_signal_frame_unwind =
 {
+  "dwarf2 signal",
   SIGTRAMP_FRAME,
   dwarf2_frame_unwind_stop_reason,
   dwarf2_frame_this_id,
index b19e95d350908545dd3ca7b6129ef07903d2352f..0fef2c1540e60849da8c7ebb86a7230d2d941bd1 100644 (file)
@@ -127,10 +127,13 @@ frame_unwind_try_unwinder (struct frame_info *this_frame, void **this_cache,
 
   try
     {
+      frame_debug_printf ("trying unwinder \"%s\"", unwinder->name);
       res = unwinder->sniffer (unwinder, this_frame, this_cache);
     }
   catch (const gdb_exception &ex)
     {
+      frame_debug_printf ("caught exception: %s", ex.message->c_str ());
+
       /* Catch all exceptions, caused by either interrupt or error.
         Reset *THIS_CACHE, unless something reinitialized the frame
         cache meanwhile, in which case THIS_FRAME/THIS_CACHE are now
@@ -153,9 +156,13 @@ frame_unwind_try_unwinder (struct frame_info *this_frame, void **this_cache,
     }
 
   if (res)
-    return 1;
+    {
+      frame_debug_printf ("yes");
+      return 1;
+    }
   else
     {
+      frame_debug_printf ("no");
       /* Don't set *THIS_CACHE to NULL here, because sniffer has to do
         so.  */
       frame_cleanup_after_sniffer (this_frame);
@@ -171,6 +178,8 @@ frame_unwind_try_unwinder (struct frame_info *this_frame, void **this_cache,
 void
 frame_unwind_find_by_frame (struct frame_info *this_frame, void **this_cache)
 {
+  frame_debug_printf ("this_frame=%d", frame_relative_level (this_frame));
+
   struct gdbarch *gdbarch = get_frame_arch (this_frame);
   struct frame_unwind_table *table
     = (struct frame_unwind_table *) gdbarch_data (gdbarch, frame_unwind_data);
index da0b4bcbe30fbcb26efa36c258788894441d5464..e46c7ff018b109b13b5d7a257c43b2f457b2382d 100644 (file)
@@ -158,6 +158,7 @@ typedef struct gdbarch *(frame_prev_arch_ftype) (struct frame_info *this_frame,
 
 struct frame_unwind
 {
+  const char *name;
   /* The frame's type.  Should this instead be a collection of
      predicates that test the frame for various attributes?  */
   enum frame_type type;
index 098df173c087c2d80bc45fcb7a0c83e9f3d81023..1f382157ecf79f08c7c4c8f0de0e4a9ec732bf25 100644 (file)
@@ -334,6 +334,7 @@ frv_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind frv_linux_sigtramp_frame_unwind =
 {
+  "frv linux sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   frv_linux_sigtramp_frame_this_id,
index f5edfc72ce3e700dab3b1be804b632a036d169f0..ead4488e146368e84d8fe3483395adce00699a2e 100644 (file)
@@ -1411,6 +1411,7 @@ frv_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind frv_frame_unwind = {
+  "frv prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   frv_frame_this_id,
index 2d8ffea3f84e4c7aa9e8c10870c749461d4d1b87..ff03acb4cbb4a3ed7bd9521ade389e50beb6a07a 100644 (file)
@@ -525,6 +525,7 @@ ft32_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind ft32_frame_unwind =
 {
+  "ft32 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   ft32_frame_this_id,
index 2afe970d0122c74930117be9abd3cc3ecf1de9e1..7d4495f6646b53496b459ec208baaa91c9ff2466 100644 (file)
@@ -501,6 +501,7 @@ h8300_frame_prev_register (struct frame_info *this_frame, void **this_cache,
 }
 
 static const struct frame_unwind h8300_frame_unwind = {
+  "h8300 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   h8300_frame_this_id,
index cea6768a1dd336d08704ca10f97427f1478ed1c1..4bdaa1dfaeec164b882547201cbc09006257466a 100644 (file)
@@ -309,6 +309,7 @@ hppa_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
 }
 
 static const struct frame_unwind hppa_linux_sigtramp_frame_unwind = {
+  "hppa linux sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   hppa_linux_sigtramp_frame_this_id,
index ffb3394f71d417ac60adac73464878b77d485720..db261956c60544ec80101a6a893c1529810c1959 100644 (file)
@@ -2302,6 +2302,7 @@ hppa_frame_unwind_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind hppa_frame_unwind =
 {
+  "hppa unwind table",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   hppa_frame_this_id,
@@ -2414,6 +2415,7 @@ hppa_fallback_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind hppa_fallback_frame_unwind =
 {
+  "hppa prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   hppa_fallback_frame_this_id,
@@ -2494,6 +2496,7 @@ hppa_stub_unwind_sniffer (const struct frame_unwind *self,
 }
 
 static const struct frame_unwind hppa_stub_frame_unwind = {
+  "hppa stub",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   hppa_stub_frame_this_id,
index 387863f859a944f0919354cf159f263f02fe261a..3f5606df006413bfedb8ed0e5975b8a3b3430bd4 100644 (file)
@@ -391,6 +391,7 @@ i386obsd_trapframe_sniffer (const struct frame_unwind *self,
 }
 
 static const struct frame_unwind i386obsd_trapframe_unwind = {
+  "i386 openbsd trap",
   /* FIXME: kettenis/20051219: This really is more like an interrupt
      frame, but SIGTRAMP_FRAME would print <signal handler called>,
      which really is not what we want here.  */
index 973085ef3370d5d6be52d357803edae2c188dc4f..e436437c6832f9f8c2196d066e06b1877a17e36d 100644 (file)
@@ -2196,6 +2196,7 @@ i386_frame_prev_register (struct frame_info *this_frame, void **this_cache,
 
 static const struct frame_unwind i386_frame_unwind =
 {
+  "i386 prologue",
   NORMAL_FRAME,
   i386_frame_unwind_stop_reason,
   i386_frame_this_id,
@@ -2317,6 +2318,7 @@ i386_epilogue_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind i386_epilogue_frame_unwind =
 {
+  "i386 epilogue",
   NORMAL_FRAME,
   i386_epilogue_frame_unwind_stop_reason,
   i386_epilogue_frame_this_id,
@@ -2398,6 +2400,7 @@ i386_stack_tramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind i386_stack_tramp_frame_unwind =
 {
+  "i386 stack tramp",
   NORMAL_FRAME,
   i386_epilogue_frame_unwind_stop_reason,
   i386_epilogue_frame_this_id,
@@ -2545,6 +2548,7 @@ i386_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind i386_sigtramp_frame_unwind =
 {
+  "i386 sigtramp",
   SIGTRAMP_FRAME,
   i386_sigtramp_frame_unwind_stop_reason,
   i386_sigtramp_frame_this_id,
index 895808ac08b9753604e41b7f20ba4582e644d4d2..aa47b211db5231687050a62ecfd37261a37aebe2 100644 (file)
@@ -2161,6 +2161,7 @@ ia64_frame_prev_register (struct frame_info *this_frame, void **this_cache,
  
 static const struct frame_unwind ia64_frame_unwind =
 {
+  "ia64 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   &ia64_frame_this_id,
@@ -2348,6 +2349,7 @@ ia64_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind ia64_sigtramp_frame_unwind =
 {
+  "ia64 sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   ia64_sigtramp_frame_this_id,
@@ -3006,6 +3008,7 @@ ia64_libunwind_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind ia64_libunwind_frame_unwind =
 {
+  "ia64 libunwind",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   ia64_libunwind_frame_this_id,
@@ -3094,6 +3097,7 @@ ia64_libunwind_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind ia64_libunwind_sigtramp_frame_unwind =
 {
+  "ia64 libunwind sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   ia64_libunwind_sigtramp_frame_this_id,
index 5ee94af71438b8b4d45a794b4eebd6b4d88f8194..c98af1842a6caab36898e38b791fbec043ed7217 100644 (file)
@@ -263,6 +263,7 @@ inline_frame_sniffer (const struct frame_unwind *self,
 }
 
 const struct frame_unwind inline_frame_unwind = {
+  "inline",
   INLINE_FRAME,
   default_frame_unwind_stop_reason,
   inline_frame_this_id,
index 7ec146993ab89104e7bca7fba17b15a4408ff7e9..69bc75860e425f8a3b020045bc50cff5fe05eb47 100644 (file)
@@ -426,6 +426,7 @@ iq2000_frame_this_id (struct frame_info *this_frame, void **this_cache,
 }
 
 static const struct frame_unwind iq2000_frame_unwind = {
+  "iq2000 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   iq2000_frame_this_id,
index 1de785b8de08c0e679fe51e2efe1fadff4e68571..b3c52c02eeea85cb6d1af4d5b0a20fbd482592eb 100644 (file)
--- a/gdb/jit.c
+++ b/gdb/jit.c
@@ -1048,6 +1048,7 @@ jit_frame_prev_register (struct frame_info *this_frame, void **cache, int reg)
 
 static const struct frame_unwind jit_frame_unwind =
 {
+  "jit",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   jit_frame_this_id,
index 6fed696102559e9468542bddb520bb45200eb03d..123a1a9fa9af96c69d559799b16c2176971ab8f5 100644 (file)
@@ -455,6 +455,7 @@ lm32_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind lm32_frame_unwind = {
+  "lm32 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   lm32_frame_this_id,
index 1095514588936f941f1d4646aa2567e0d4e627cc..550a63da7569a69c19e311b6bf750221db493b38 100644 (file)
@@ -1935,6 +1935,7 @@ m32c_prev_register (struct frame_info *this_frame,
 
 
 static const struct frame_unwind m32c_unwind = {
+  "m32c prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   m32c_this_id,
index 1d42a0a43fdf19c5ab521cafab04e9ef0ef912bf..24807de0b2b09d993ec9d2f0462fdb0b5df42dd9 100644 (file)
@@ -302,6 +302,7 @@ m32r_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
 }
 
 static const struct frame_unwind m32r_linux_sigtramp_frame_unwind = {
+  "m32r linux sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   m32r_linux_sigtramp_frame_this_id,
index e504f371d755faf99f99a83aa7ad936bdd08b7e0..b5839bebf96a88436ba18a0531293b32cf340319 100644 (file)
@@ -835,6 +835,7 @@ m32r_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind m32r_frame_unwind = {
+  "m32r prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   m32r_frame_this_id,
index 4a1d077b7d858340865010b42f56b1fd99f1cef0..c141711cc87d1c1b61afdfee5bf09486e9a1652c 100644 (file)
@@ -924,6 +924,7 @@ m68hc11_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind m68hc11_frame_unwind = {
+  "m68hc11 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   m68hc11_frame_this_id,
index c72f4851b4c549b7d49f340dfd1edb3f9ffafa45..7543a35e6112e60b7f79a056fa99143aaa7f4a2a 100644 (file)
@@ -316,6 +316,7 @@ m68k_linux_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind m68k_linux_sigtramp_frame_unwind =
 {
+  "m68k linux sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   m68k_linux_sigtramp_frame_this_id,
index 76cc38bd6ff0dd6f17d3ccca54c37da2a8b50f11..7397e622f4d82270e26b97993bb3ecc6163099ea 100644 (file)
@@ -1003,6 +1003,7 @@ m68k_frame_prev_register (struct frame_info *this_frame, void **this_cache,
 
 static const struct frame_unwind m68k_frame_unwind =
 {
+  "m68k prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   m68k_frame_this_id,
index 0dcfa48d67c118a068077e51dba386259ac45401..89fde0abd7db70238273af269867da02caf9493a 100644 (file)
@@ -2053,6 +2053,7 @@ mep_frame_prev_register (struct frame_info *this_frame,
 
 
 static const struct frame_unwind mep_frame_unwind = {
+  "mep prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   mep_frame_this_id,
index 5419dd329c5a598aa085630b6c54852762e4bfc0..0c3316dece1384691976e853afed44b705aab80b 100644 (file)
@@ -492,6 +492,7 @@ microblaze_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind microblaze_frame_unwind =
 {
+  "microblaze prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   microblaze_frame_this_id,
index f08dff4b082e9284913129b7f9d43762b5ee5f0d..63cac483b099ced3260e658d44583b7a9b114732 100644 (file)
@@ -164,6 +164,7 @@ mips_sde_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind mips_sde_frame_unwind =
 {
+  "mips sde sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   mips_sde_frame_this_id,
index 2aee4f10b316d45bc2b5dc554f805dfb2e4bd111..f16cdaa14ccb6bcf02646869ba3fd8006eb2f3ce 100644 (file)
@@ -2901,6 +2901,7 @@ mips_insn16_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind mips_insn16_frame_unwind =
 {
+  "mips insn16 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   mips_insn16_frame_this_id,
@@ -3336,6 +3337,7 @@ mips_micro_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind mips_micro_frame_unwind =
 {
+  "mips micro prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   mips_micro_frame_this_id,
@@ -3711,6 +3713,7 @@ mips_insn32_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind mips_insn32_frame_unwind =
 {
+  "mips insn32 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   mips_insn32_frame_this_id,
@@ -3827,6 +3830,7 @@ mips_stub_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind mips_stub_frame_unwind =
 {
+  "mips stub",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   mips_stub_frame_this_id,
index cefd547af52932c0563eeba6d892b8a4ac0d77e9..2961f2afde1f5f89013d94b6cfd79c05aa7ceda8 100644 (file)
@@ -1132,6 +1132,7 @@ mn10300_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind mn10300_frame_unwind = {
+  "mn10300 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   mn10300_frame_this_id, 
index 9af37d65cc59d89b12732adb8955ab9e008b0b7d..c48f9f75eb4eddd2a86e6bd9756f7a4366d6221c 100644 (file)
@@ -587,6 +587,7 @@ moxie_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind moxie_frame_unwind = {
+  "moxie prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   moxie_frame_this_id,
index 7fa4475aa2c24d0b5fd94e83850f4c577823153f..06a468ca85c60284033e0aecd71519793381b893 100644 (file)
@@ -538,6 +538,7 @@ msp430_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind msp430_unwind = {
+  "msp430 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   msp430_this_id,
index e30a016c5e338be7f3972d4840df2477057b08f9..36f4979c042ce89c0bd7007419a493a382c9f2b3 100644 (file)
@@ -997,6 +997,7 @@ nds32_frame_prev_register (struct frame_info *this_frame, void **this_cache,
 
 static const struct frame_unwind nds32_frame_unwind =
 {
+  "nds32 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   nds32_frame_this_id,
@@ -1380,6 +1381,7 @@ nds32_epilogue_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind nds32_epilogue_frame_unwind =
 {
+  "nds32 epilogue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   nds32_epilogue_frame_this_id,
index 8fd3695da2d251ff9be139c31d75e6c8160fd1cb..b090680a7afc1c5cd5436eec85bf8c70cd2c6c20 100644 (file)
@@ -1979,6 +1979,7 @@ nios2_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
 static const struct frame_unwind nios2_frame_unwind =
 {
+  "nios2 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   nios2_frame_this_id,
@@ -2079,6 +2080,7 @@ nios2_stub_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind nios2_stub_frame_unwind =
 {
+  "nios2 stub",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   nios2_stub_frame_this_id,
index db6c41b32f257e85b54c58985ec9165b8ad19239..91f21576bd53d24e35258fb89da9415bf13ef4ec 100644 (file)
@@ -1096,6 +1096,7 @@ or1k_frame_prev_register (struct frame_info *this_frame,
 /* Data structures for the normal prologue-analysis-based unwinder.  */
 
 static const struct frame_unwind or1k_frame_unwind = {
+  "or1k prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   or1k_frame_this_id,
index d03df9666fc4a0bd711aad11b2fdb7606ad63225..f41c8bb0be92d923d08f9ef5b5f221c6b0c6d784 100644 (file)
@@ -263,6 +263,7 @@ ppcfbsd_sigtramp_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind ppcfbsd_sigtramp_frame_unwind = {
+  "ppc freebsd sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   ppcfbsd_sigtramp_frame_this_id,
index b92f11c67ec1da08e66420696a5e6f6eacf780e5..98b3e4013e9ab8cfa2d158740d7e26337faef379 100644 (file)
@@ -232,6 +232,7 @@ ppcobsd_sigtramp_frame_prev_register (struct frame_info *this_frame,
 }
 
 static const struct frame_unwind ppcobsd_sigtramp_frame_unwind = {
+  "ppc openbsd sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   ppcobsd_sigtramp_frame_this_id,
index 18ea2434f87e63e495f7a403800c8e6346f06d8e..3d87a190846075b2c7ac15fa432f69ba56351f45 100644 (file)
@@ -680,6 +680,7 @@ pyuw_on_new_gdbarch (struct gdbarch *newarch)
       struct frame_unwind *unwinder
          = GDBARCH_OBSTACK_ZALLOC (newarch, struct frame_unwind);
 
+      unwinder->name = "python";
       unwinder->type = NORMAL_FRAME;
       unwinder->stop_reason = default_frame_unwind_stop_reason;
       unwinder->this_id = pyuw_this_id;
index 00affb85d22ea680b738a25f66b0ef8b2b5d8b99..bf899ebeb2466d162f4e9461b6e7f5350ed020bd 100644 (file)
@@ -1889,6 +1889,7 @@ record_btrace_frame_dealloc_cache (struct frame_info *self, void *this_cache)
 
 const struct frame_unwind record_btrace_frame_unwind =
 {
+  "record-btrace",
   NORMAL_FRAME,
   record_btrace_frame_unwind_stop_reason,
   record_btrace_frame_this_id,
@@ -1900,6 +1901,7 @@ const struct frame_unwind record_btrace_frame_unwind =
 
 const struct frame_unwind record_btrace_tailcall_frame_unwind =
 {
+  "record-btrace tailcall",
   TAILCALL_FRAME,
   record_btrace_frame_unwind_stop_reason,
   record_btrace_frame_this_id,
index d942b059f55bfb7e585630d4d8e97de18e191475..19e2616c9c0e4909135db2cef7f3593708439f75 100644 (file)
@@ -3320,6 +3320,7 @@ riscv_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind riscv_frame_unwind =
 {
+  /*.name          =*/ "riscv prologue",
   /*.type          =*/ NORMAL_FRAME,
   /*.stop_reason   =*/ default_frame_unwind_stop_reason,
   /*.this_id       =*/ riscv_frame_this_id,
index c9394b235e97d28e8674701e0020e6adca5b5559..1c4829f68dfde6e447716e0107a8981576242730 100644 (file)
@@ -1183,6 +1183,7 @@ rl78_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind rl78_unwind =
 {
+  "rl78 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   rl78_this_id,
index 02d492b337719b7526c877b5e18e9cfe7e05eccb..3717f2b4b2aa6716184c965f03a10add0a0c4672 100644 (file)
@@ -156,6 +156,7 @@ aix_sighandle_frame_sniffer (const struct frame_unwind *self,
 /* AIX signal handler frame unwinder */
 
 static const struct frame_unwind aix_sighandle_frame_unwind = {
+  "rs6000 aix sighandle",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   aix_sighandle_frame_this_id,
index a629450d746fa8729a0f82ae4acf73ecaf1dab25..826f0266ed84bfa3ae661af82eb079236c7a55ba 100644 (file)
@@ -3783,6 +3783,7 @@ rs6000_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind rs6000_frame_unwind =
 {
+  "rs6000 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   rs6000_frame_this_id,
@@ -3882,6 +3883,7 @@ rs6000_epilogue_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind rs6000_epilogue_frame_unwind =
 {
+  "rs6000 epilogue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   rs6000_epilogue_frame_this_id, rs6000_epilogue_frame_prev_register,
index 4aaff4e3f5c823034015ce8c557d10ca1196b280..6715e73c3c7ad0df42d9b5d8fbb0a085a1bcd564 100644 (file)
@@ -630,6 +630,7 @@ rx_exception_sniffer (const struct frame_unwind *self,
    analyzer.  */
 
 static const struct frame_unwind rx_frame_unwind = {
+  "rx prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   rx_frame_this_id,
@@ -642,6 +643,7 @@ static const struct frame_unwind rx_frame_unwind = {
    analyzer.  */
 
 static const struct frame_unwind rx_exception_unwind = {
+  "rx exception",
   /* SIGTRAMP_FRAME could be used here, but backtraces are less informative.  */
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
index 13615f0abacacd8ebbc22ac97f6ebcca8c218434..faf63c4030543b68e9c1d4fd31326be893e31b00 100644 (file)
@@ -467,6 +467,7 @@ s12z_frame_prev_register (struct frame_info *this_frame,
 
 /* Data structures for the normal prologue-analysis-based unwinder.  */
 static const struct frame_unwind s12z_frame_unwind = {
+  "s12z prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   s12z_frame_this_id,
index 4a39681f43f816d5b7f5535cf430fa6c7fe6c696..04a4ff8df34a0aa0dbeac3d697371f2cc382d91e 100644 (file)
@@ -542,6 +542,7 @@ s390_sigtramp_frame_sniffer (const struct frame_unwind *self,
 /* S390 sigtramp frame unwinder.  */
 
 static const struct frame_unwind s390_sigtramp_frame_unwind = {
+  "s390 linux sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   s390_sigtramp_frame_this_id,
index 4905bcab36e450e14f1d4e476fb9c7c8e9d7b4ad..2579ee82b203fb1b1a7f901dbe5794b3a023de04 100644 (file)
@@ -2634,6 +2634,7 @@ s390_frame_prev_register (struct frame_info *this_frame,
 /* Default S390 frame unwinder.  */
 
 static const struct frame_unwind s390_frame_unwind = {
+  "s390 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   s390_frame_this_id,
@@ -2727,6 +2728,7 @@ s390_stub_frame_sniffer (const struct frame_unwind *self,
 /* S390 stub frame unwinder.  */
 
 static const struct frame_unwind s390_stub_frame_unwind = {
+  "s390 stub",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   s390_stub_frame_this_id,
index 531b308749cd47ee220f52c7d824e083acfd460c..91d79f410647c52bb8f3de0100badc18ec57e3ee 100644 (file)
@@ -1351,6 +1351,7 @@ score_prologue_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind score_prologue_unwind =
 {
+  "score prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   score_prologue_this_id,
index 8016d0658e321f0b3b4149abe9aef7a3ca628bcf..42ef722f5c68b2789c3caf1be6289b9eff18dfcb 100644 (file)
@@ -79,6 +79,7 @@ sentinel_frame_prev_arch (struct frame_info *this_frame,
 
 const struct frame_unwind sentinel_frame_unwind =
 {
+  "sentinel",
   SENTINEL_FRAME,
   default_frame_unwind_stop_reason,
   sentinel_frame_this_id,
index 4dd5d9fbb3085d56ae3a0644a7f1584a0c429fa7..bfb220adf79206f5c92cc78f672fa2652b9ac3d9 100644 (file)
@@ -1968,6 +1968,7 @@ sh_frame_this_id (struct frame_info *this_frame, void **this_cache,
 }
 
 static const struct frame_unwind sh_frame_unwind = {
+  "sh prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   sh_frame_this_id,
@@ -2034,6 +2035,7 @@ sh_stub_unwind_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind sh_stub_unwind =
 {
+  "sh stub",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   sh_stub_this_id,
index c2de5b544c2eae583659371daca38994b8e5464e..e34405c849e39e4089b82e40ae856799e5f6876e 100644 (file)
@@ -251,6 +251,7 @@ sparc32nbsd_sigcontext_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind sparc32nbsd_sigcontext_frame_unwind =
 {
+  "sparc32 netbsd sigcontext",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   sparc32nbsd_sigcontext_frame_this_id,
index e198e9702cdb07a37ab08f1cc06609680357d980..1215bdd3465d286b7895c1677829b6db94e5a88e 100644 (file)
@@ -136,6 +136,7 @@ sparc32obsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
 }
 static const struct frame_unwind sparc32obsd_sigtramp_frame_unwind =
 {
+  "sparc32 openbsd sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   sparc32obsd_sigtramp_frame_this_id,
index ce92e7b22e35fc6b5ff2b9ca41103343e3810c67..f214449373836efb8637cda8c78d4eeed4f0fdca 100644 (file)
@@ -182,6 +182,7 @@ sparc32_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind sparc32_sol2_sigtramp_frame_unwind =
 {
+  "sparc32 solaris sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   sparc32_sol2_sigtramp_frame_this_id,
index a6df0fcb58b47132619ea59e1bd53198c1ba184a..1b42068af1926f319f6240414e8695ddff6923db 100644 (file)
@@ -1358,6 +1358,7 @@ sparc32_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind sparc32_frame_unwind =
 {
+  "sparc32 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   sparc32_frame_this_id,
index 6f906d53173bf7da60332dcee37f3fe64f877cbb..6dad813c356c9907a3ab828ea616eae5fd7f8cbc 100644 (file)
@@ -199,6 +199,7 @@ sparc64fbsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind sparc64fbsd_sigtramp_frame_unwind =
 {
+  "sparc64 freebsd sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   sparc64fbsd_sigtramp_frame_this_id,
index 7fa0c1a29afa6809369422cf0be6acb273b29fb7..0438093563eecee33cc819c4e2741a0cd850553e 100644 (file)
@@ -225,6 +225,7 @@ sparc64nbsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind sparc64nbsd_sigcontext_frame_unwind =
 {
+  "sparc64 netbsd sigcontext",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   sparc64nbsd_sigcontext_frame_this_id,
index cf3138a7ab149bbf185a60b4f6f3a02847e289f6..033779e273dee64f872fa08e985709c138f5904d 100644 (file)
@@ -222,6 +222,7 @@ sparc64obsd_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind sparc64obsd_frame_unwind =
 {
+  "sparc64 openbsd sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   sparc64obsd_frame_this_id,
@@ -305,6 +306,7 @@ sparc64obsd_trapframe_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind sparc64obsd_trapframe_unwind =
 {
+  "sparc64 openbsd trap",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   sparc64obsd_trapframe_this_id,
index c4293c938e7ceac62afabef92ac5eb83bab6b516..6aea8bd56d7d8fbd79e773a66963696c1b5a8fd0 100644 (file)
@@ -185,6 +185,7 @@ sparc64_sol2_sigtramp_frame_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind sparc64_sol2_sigtramp_frame_unwind =
 {
+  "sparc64 solaris sigtramp",
   SIGTRAMP_FRAME,
   default_frame_unwind_stop_reason,
   sparc64_sol2_sigtramp_frame_this_id,
index 4157594d1533b20c5bd945c66d37286d6a2b778b..3464411512e4683ffbc5ad7dbc2ba7ba17706537 100644 (file)
@@ -1141,6 +1141,7 @@ sparc64_frame_prev_register (struct frame_info *this_frame, void **this_cache,
 
 static const struct frame_unwind sparc64_frame_unwind =
 {
+  "sparc64 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   sparc64_frame_this_id,
index 01dd86c541c4f73763b31bff5d41e1a79f6f6656..fb18b798db2f508295a3acfd9ea6aaceb325bc13 100644 (file)
@@ -457,6 +457,7 @@ tic6x_frame_base_address (struct frame_info *this_frame, void **this_cache)
 
 static const struct frame_unwind tic6x_frame_unwind =
 {
+  "tic6x prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   tic6x_frame_this_id,
@@ -519,6 +520,7 @@ tic6x_stub_unwind_sniffer (const struct frame_unwind *self,
 
 static const struct frame_unwind tic6x_stub_unwind =
 {
+  "tic6x stub",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   tic6x_stub_this_id,
index 73ed1d8d8481815cb37d5925c252d06651c124e0..9451ff50844b2a38281a1ce6cc1533f09b7f54a6 100644 (file)
@@ -905,6 +905,7 @@ tilegx_frame_base_address (struct frame_info *this_frame, void **this_cache)
 }
 
 static const struct frame_unwind tilegx_frame_unwind = {
+  "tilegx prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   tilegx_frame_this_id,
index 5114c1bd2d26c8770107eec170b97a38f43cf4bb..8f25198205e9fcd0ca483e785291ac9b9f9512d9 100644 (file)
@@ -1320,6 +1320,7 @@ v850_frame_this_id (struct frame_info *this_frame, void **this_cache,
 }
 
 static const struct frame_unwind v850_frame_unwind = {
+  "v850 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   v850_frame_this_id,
index 5e6c65ae44216edb51bff0b9efd1940b356dadc0..249b0bf6773036dbf59d77c967a17ec5a33499c8 100644 (file)
@@ -390,6 +390,7 @@ vax_frame_prev_register (struct frame_info *this_frame,
 
 static const struct frame_unwind vax_frame_unwind =
 {
+  "vax prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   vax_frame_this_id,
index 834c8f0c8759930f9ea5eb33e39c6c9eae0a7a4d..0d348bf267405bcabde6a9f3868877d7be22a843 100644 (file)
@@ -736,6 +736,7 @@ xstormy16_frame_base_address (struct frame_info *this_frame, void **this_cache)
 }
 
 static const struct frame_unwind xstormy16_frame_unwind = {
+  "xstormy16 prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   xstormy16_frame_this_id,
index 246921253d2b0ba75d54095347bb3fc5857eceb5..6862a03ea2be1918cc53efc58e795f7827934d78 100644 (file)
@@ -1499,6 +1499,7 @@ xtensa_frame_prev_register (struct frame_info *this_frame,
 static const struct frame_unwind
 xtensa_unwind =
 {
+  "xtensa prologue",
   NORMAL_FRAME,
   default_frame_unwind_stop_reason,
   xtensa_frame_this_id,