[PATCH 6/7] Register the proxy unwinder.

Sanjoy Das
2011-08-09T15:21:52Z

Register the proxy unwinder introduced in the previous commit so that
it actually gets picked up and used.
---
gdb/ChangeLog | 25 +++++++++++++++++++++++++
gdb/alpha-tdep.c | 2 ++
gdb/arm-tdep.c | 2 ++
gdb/bfin-tdep.c | 2 ++
gdb/cris-tdep.c | 2 ++
gdb/h8300-tdep.c | 2 ++
gdb/i386-tdep.c | 2 ++
gdb/iq2000-tdep.c | 2 ++
gdb/m68hc11-tdep.c | 2 ++
gdb/microblaze-tdep.c | 2 ++
gdb/mips-tdep.c | 2 ++
gdb/mn10300-tdep.c | 2 ++
gdb/mt-tdep.c | 2 ++
gdb/rs6000-tdep.c | 2 ++
gdb/rx-tdep.c | 2 ++
gdb/s390-tdep.c | 3 +++
gdb/score-tdep.c | 2 ++
gdb/sh64-tdep.c | 2 ++
gdb/sparc-linux-tdep.c | 2 ++
gdb/sparc64-linux-tdep.c | 2 ++
gdb/v850-tdep.c | 2 ++
gdb/xstormy16-tdep.c | 2 ++
gdb/xtensa-tdep.c | 2 ++
23 files changed, 70 insertions(+), 0 deletions(-)

diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 2556be7..2b3dc1a 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,30 @@
2011-08-09 Sanjoy Das <sdas@igalia.com>

+ * alpha-tdep.c (alpha_dwarf2_init_abi): Call jit_prepend_unwinder.
+ * arm-tdep.c (arm_gdbarch_init): Likewise.
+ * bfin-tdep.c (bfin_gdbarch_init): Likewise.
+ * cris-tdep.c (cris_gdbarch_init): Likewise.
+ * h8300-tdep.c (h8300_gdbarch_init): Likewise.
+ * i386-tdep.c (i386_gdbarch_init): Likewise.
+ * iq2000-tdep.c (iq2000_gdbarch_init): Likewise.
+ * m68hc11-tdep.c (m68hc11_gdbarch_init): Likewise.
+ * microblaze-tdep.c (microblaze_gdbarch_init): Likewise.
+ * mips-tdep.c (mips_gdbarch_init): Likewise.
+ * mn10300-tdep.c (mn10300_gdbarch_init): Likewise.
+ * mt-tdep.c (mt_gdbarch_init): Likewise.
+ * rs6000-tdep.c (rs6000_gdbarch_init): Likewise.
+ * rx-tdep.c (rx_gdbarch_init): Likewise.
+ * s390-tdep.c (s390_gdbarch_init): Likewise.
+ * score-tdep.c (score_gdbarch_init): Likewise.
+ * sh64-tdep.c (sh64_gdbarch_init): Likewise.
+ * sparc-linux-tdep.c (sparc_linux_init_abi): Likewise.
+ * sparc64-linux-tdep.c (sparc64_linux_init_abi): Likewise.
+ * v850-tdep.c (v858_gdbarch_init): Likewise.
+ * xstormy16-tdep.c (xstormy16_gdbarch_init): Likewise.
+ * xtensa-tdep.c (xtensa_gdbarch_init): Likewise.
+
+2011-08-09 Sanjoy Das <sdas@igalia.com>
+
* jit.c (jut_unwind_reg_set_impl, free_reg_value_impl)
(jit_unwind_reg_get_impl, jit_frame_sniffer)
(jit_frame_unwind_stop_reason, jit_frame_this_id)
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index 77782e8..818449e 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -42,6 +42,7 @@
#include "block.h"
#include "infcall.h"
#include "trad-frame.h"
+#include "jit.h"

#include "elf-bfd.h"

@@ -1770,6 +1771,7 @@ void
alpha_dwarf2_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)
{
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_base_append_sniffer (gdbarch, dwarf2_frame_base_sniffer);
}

diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c
index 1a75af1..19e0e57 100644
--- a/gdb/arm-tdep.c
+++ b/gdb/arm-tdep.c
@@ -44,6 +44,7 @@
#include "target-descriptions.h"
#include "user-regs.h"
#include "observer.h"
+#include "jit.h"

#include "arm-tdep.h"
#include "gdb/sim-arm.h"
@@ -8687,6 +8688,7 @@ arm_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Add some default predicates. */
frame_unwind_append_unwinder (gdbarch, &arm_stub_unwind);
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &arm_exidx_unwind);
frame_unwind_append_unwinder (gdbarch, &arm_prologue_unwind);

diff --git a/gdb/bfin-tdep.c b/gdb/bfin-tdep.c
index 5522c5b..977f62f 100644
--- a/gdb/bfin-tdep.c
+++ b/gdb/bfin-tdep.c
@@ -42,6 +42,7 @@
#include "infcall.h"
#include "xml-syscall.h"
#include "bfin-tdep.h"
+#include "jit.h"

/* Macros used by prologue functions. */
#define P_LINKAGE 0xE800
@@ -853,6 +854,7 @@ bfin_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
gdbarch_init_osabi (info, gdbarch);

dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);

frame_base_set_default (gdbarch, &bfin_frame_base);

diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c
index f79e84c..a88afed 100644
--- a/gdb/cris-tdep.c
+++ b/gdb/cris-tdep.c
@@ -38,6 +38,7 @@
#include "arch-utils.h"
#include "regcache.h"
#include "gdb_assert.h"
+#include "jit.h"

#include "objfiles.h"

@@ -4228,6 +4229,7 @@ cris_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

frame_unwind_append_unwinder (gdbarch, &cris_frame_unwind);
frame_base_set_default (gdbarch, &cris_frame_base);
+ jit_prepend_unwinder (gdbarch);

set_solib_svr4_fetch_link_map_offsets
(gdbarch, svr4_ilp32_fetch_link_map_offsets);
diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c
index fa39dee..a1052be 100644
--- a/gdb/h8300-tdep.c
+++ b/gdb/h8300-tdep.c
@@ -35,6 +35,7 @@
#include "dwarf2-frame.h"
#include "frame-base.h"
#include "frame-unwind.h"
+#include "jit.h"

enum gdb_regnum
{
@@ -1355,6 +1356,7 @@ h8300_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

/* Hook in the DWARF CFI frame unwinder. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &h8300_frame_unwind);

return gdbarch;
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 5fb2efb..f4fbc43 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -48,6 +48,7 @@
#include "exceptions.h"
#include "gdb_assert.h"
#include "gdb_string.h"
+#include "jit.h"

#include "i386-tdep.h"
#include "i387-tdep.h"
@@ -7357,6 +7358,7 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
to the list before the prologue-based unwinders, so that DWARF
CFI info will be used if it is available. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);

frame_base_set_default (gdbarch, &i386_frame_base);

diff --git a/gdb/iq2000-tdep.c b/gdb/iq2000-tdep.c
index 1926da6..e0b17e7 100644
--- a/gdb/iq2000-tdep.c
+++ b/gdb/iq2000-tdep.c
@@ -34,6 +34,7 @@
#include "regcache.h"
#include "osabi.h"
#include "gdbcore.h"
+#include "jit.h"

enum gdb_regnum
{
@@ -851,6 +852,7 @@ iq2000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
gdbarch_init_osabi (info, gdbarch);

dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &iq2000_frame_unwind);

return gdbarch;
diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c
index b789ce7..333f867 100644
--- a/gdb/m68hc11-tdep.c
+++ b/gdb/m68hc11-tdep.c
@@ -40,6 +40,7 @@
#include "arch-utils.h"
#include "regcache.h"
#include "reggroups.h"
+#include "jit.h"

#include "target.h"
#include "opcode/m68hc11.h"
@@ -1534,6 +1535,7 @@ m68hc11_gdbarch_init (struct gdbarch_info info,

/* Hook in the DWARF CFI frame unwinder. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);

frame_unwind_append_unwinder (gdbarch, &m68hc11_frame_unwind);
frame_base_set_default (gdbarch, &m68hc11_frame_base);
diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c
index 2482c87..9a04dcc 100644
--- a/gdb/microblaze-tdep.c
+++ b/gdb/microblaze-tdep.c
@@ -34,6 +34,7 @@
#include "frame-unwind.h"
#include "dwarf2-frame.h"
#include "osabi.h"
+#include "jit.h"

#include "gdb_assert.h"
#include "gdb_string.h"
@@ -724,6 +725,7 @@ microblaze_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

/* Unwind the frame. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &microblaze_frame_unwind);
frame_base_append_sniffer (gdbarch, dwarf2_frame_base_sniffer);

diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c
index 47d9182..4f30eb3 100644
--- a/gdb/mips-tdep.c
+++ b/gdb/mips-tdep.c
@@ -59,6 +59,7 @@
#include "user-regs.h"
#include "valprint.h"
#include "ax.h"
+#include "jit.h"

static const struct objfile_data *mips_pdr_data;

@@ -6303,6 +6304,7 @@ mips_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

/* Unwind the frame. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &mips_stub_frame_unwind);
frame_unwind_append_unwinder (gdbarch, &mips_insn16_frame_unwind);
frame_unwind_append_unwinder (gdbarch, &mips_insn32_frame_unwind);
diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c
index e949b40..de14a59 100644
--- a/gdb/mn10300-tdep.c
+++ b/gdb/mn10300-tdep.c
@@ -37,6 +37,7 @@
#include "infcall.h"
#include "prologue-value.h"
#include "target.h"
+#include "jit.h"

#include "mn10300-tdep.h"

@@ -1203,6 +1204,7 @@ static void
mn10300_frame_unwind_init (struct gdbarch *gdbarch)
{
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &mn10300_frame_unwind);
set_gdbarch_dummy_id (gdbarch, mn10300_dummy_id);
set_gdbarch_unwind_pc (gdbarch, mn10300_unwind_pc);
diff --git a/gdb/mt-tdep.c b/gdb/mt-tdep.c
index ee98d3d..99e19ea 100644
--- a/gdb/mt-tdep.c
+++ b/gdb/mt-tdep.c
@@ -39,6 +39,7 @@
#include "gdb_assert.h"
#include "language.h"
#include "valprint.h"
+#include "jit.h"

enum mt_arch_constants
{
@@ -1191,6 +1192,7 @@ mt_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
/* Register the DWARF 2 sniffer first, and then the traditional prologue
based sniffer. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &mt_frame_unwind);
frame_base_set_default (gdbarch, &mt_frame_base);

diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c
index 6539644..ad6eaed 100644
--- a/gdb/rs6000-tdep.c
+++ b/gdb/rs6000-tdep.c
@@ -41,6 +41,7 @@
#include "dwarf2-frame.h"
#include "target-descriptions.h"
#include "user-regs.h"
+#include "jit.h"

#include "libbfd.h" /* for bfd_default_set_arch_mach */
#include "coff/internal.h" /* for libcoff.h */
@@ -4081,6 +4082,7 @@ rs6000_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

/* Hook in the DWARF CFI frame unwinder. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
dwarf2_frame_set_adjust_regnum (gdbarch, rs6000_adjust_frame_regnum);

/* Frame handling. */
diff --git a/gdb/rx-tdep.c b/gdb/rx-tdep.c
index 16637b0..185e38a 100644
--- a/gdb/rx-tdep.c
+++ b/gdb/rx-tdep.c
@@ -33,6 +33,7 @@
#include "value.h"
#include "gdbcore.h"
#include "dwarf2-frame.h"
+#include "jit.h"

#include "elf/rx.h"
#include "elf-bfd.h"
@@ -844,6 +845,7 @@ rx_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
so it's turned off for now. */
dwarf2_append_unwinders (gdbarch);
#endif
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &rx_frame_unwind);

/* Methods for saving / extracting a dummy frame's ID.
diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c
index ca7ecc7..ea117aa 100644
--- a/gdb/s390-tdep.c
+++ b/gdb/s390-tdep.c
@@ -45,6 +45,7 @@
#include "prologue-value.h"
#include "linux-tdep.h"
#include "s390-tdep.h"
+#include "jit.h"

#include "features/s390-linux32.c"
#include "features/s390-linux64.c"
@@ -2915,6 +2916,8 @@ s390_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
dwarf2_frame_set_init_reg (gdbarch, s390_dwarf2_frame_init_reg);
dwarf2_frame_set_adjust_regnum (gdbarch, s390_adjust_frame_regnum);
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
+
frame_base_append_sniffer (gdbarch, dwarf2_frame_base_sniffer);
frame_unwind_append_unwinder (gdbarch, &s390_stub_frame_unwind);
frame_unwind_append_unwinder (gdbarch, &s390_sigtramp_frame_unwind);
diff --git a/gdb/score-tdep.c b/gdb/score-tdep.c
index 4ddcd27..4364acd 100644
--- a/gdb/score-tdep.c
+++ b/gdb/score-tdep.c
@@ -38,6 +38,7 @@
#include "trad-frame.h"
#include "dwarf2-frame.h"
#include "score-tdep.h"
+#include "jit.h"

#define G_FLD(_i,_ms,_ls) \
((unsigned)((_i) << (31 - (_ms))) >> (31 - (_ms) + (_ls)))
@@ -1543,6 +1544,7 @@ score_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)

/* Normal frame hooks. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_base_append_sniffer (gdbarch, dwarf2_frame_base_sniffer);
frame_unwind_append_unwinder (gdbarch, &score_prologue_unwind);
frame_base_append_sniffer (gdbarch, score_prologue_frame_base_sniffer);
diff --git a/gdb/sh64-tdep.c b/gdb/sh64-tdep.c
index a4da7a4..01b9540 100644
--- a/gdb/sh64-tdep.c
+++ b/gdb/sh64-tdep.c
@@ -40,6 +40,7 @@
#include "regcache.h"
#include "osabi.h"
#include "valprint.h"
+#include "jit.h"

#include "elf-bfd.h"

@@ -2567,6 +2568,7 @@ sh64_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
gdbarch_init_osabi (info, gdbarch);

dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &sh64_frame_unwind);

return gdbarch;
diff --git a/gdb/sparc-linux-tdep.c b/gdb/sparc-linux-tdep.c
index b21b7a8..c5abf3c 100644
--- a/gdb/sparc-linux-tdep.c
+++ b/gdb/sparc-linux-tdep.c
@@ -34,6 +34,7 @@
#include "tramp-frame.h"
#include "xml-syscall.h"
#include "linux-tdep.h"
+#include "jit.h"

/* The syscall's XML filename for sparc 32-bit. */
#define XML_SYSCALL_FILENAME_SPARC32 "syscalls/sparc-linux.xml"
@@ -307,6 +308,7 @@ sparc32_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)

/* Hook in the DWARF CFI frame unwinder. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);

set_gdbarch_write_pc (gdbarch, sparc_linux_write_pc);

diff --git a/gdb/sparc64-linux-tdep.c b/gdb/sparc64-linux-tdep.c
index 87e7285..ff71256 100644
--- a/gdb/sparc64-linux-tdep.c
+++ b/gdb/sparc64-linux-tdep.c
@@ -33,6 +33,7 @@
#include "tramp-frame.h"
#include "xml-syscall.h"
#include "linux-tdep.h"
+#include "jit.h"

/* The syscall's XML filename for sparc 64-bit. */
#define XML_SYSCALL_FILENAME_SPARC64 "syscalls/sparc64-linux.xml"
@@ -254,6 +255,7 @@ sparc64_linux_init_abi (struct gdbarch_info info, struct gdbarch *gdbarch)

/* Hook in the DWARF CFI frame unwinder. */
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);

sparc64_init_abi (info, gdbarch);

diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c
index ac5d83f..1beac57 100644
--- a/gdb/v850-tdep.c
+++ b/gdb/v850-tdep.c
@@ -33,6 +33,7 @@
#include "regcache.h"
#include "dis-asm.h"
#include "osabi.h"
+#include "jit.h"

enum
{
@@ -1041,6 +1042,7 @@ v850_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
gdbarch_init_osabi (info, gdbarch);

dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &v850_frame_unwind);

return gdbarch;
diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c
index bf32cbd..6e6cbc0 100644
--- a/gdb/xstormy16-tdep.c
+++ b/gdb/xstormy16-tdep.c
@@ -38,6 +38,7 @@
#include "doublest.h"
#include "osabi.h"
#include "objfiles.h"
+#include "jit.h"

enum gdb_regnum
{
@@ -849,6 +850,7 @@ xstormy16_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
gdbarch_init_osabi (info, gdbarch);

dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);
frame_unwind_append_unwinder (gdbarch, &xstormy16_frame_unwind);

return gdbarch;
diff --git a/gdb/xtensa-tdep.c b/gdb/xtensa-tdep.c
index 518b77b..515ece9 100644
--- a/gdb/xtensa-tdep.c
+++ b/gdb/xtensa-tdep.c
@@ -33,6 +33,7 @@
#include "regcache.h"
#include "reggroups.h"
#include "regset.h"
+#include "jit.h"

#include "dummy-frame.h"
#include "dwarf2.h"
@@ -3277,6 +3278,7 @@ xtensa_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
frame_base_set_default (gdbarch, &xtensa_frame_base);
frame_unwind_append_unwinder (gdbarch, &xtensa_unwind);
dwarf2_append_unwinders (gdbarch);
+ jit_prepend_unwinder (gdbarch);

set_gdbarch_print_insn (gdbarch, print_insn_xtensa);

--
1.7.5.4