diff options
79 files changed, 146 insertions, 1 deletions
diff --git a/gdb/aarch64-tdep.c b/gdb/aarch64-tdep.c index b97e215..abbf8dc 100644 --- a/gdb/aarch64-tdep.c +++ b/gdb/aarch64-tdep.c @@ -1208,6 +1208,7 @@ static frame_unwind aarch64_prologue_unwind = { "aarch64 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, aarch64_prologue_frame_unwind_stop_reason, aarch64_prologue_this_id, aarch64_prologue_prev_register, @@ -1303,6 +1304,7 @@ static frame_unwind aarch64_stub_unwind = { "aarch64 stub", NORMAL_FRAME, + FRAME_UNWIND_ARCH, aarch64_stub_frame_unwind_stop_reason, aarch64_stub_this_id, aarch64_prologue_prev_register, diff --git a/gdb/alpha-mdebug-tdep.c b/gdb/alpha-mdebug-tdep.c index 7691a53..f7323a4 100644 --- a/gdb/alpha-mdebug-tdep.c +++ b/gdb/alpha-mdebug-tdep.c @@ -335,6 +335,7 @@ static const struct frame_unwind alpha_mdebug_frame_unwind = { "alpha mdebug", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, alpha_mdebug_frame_this_id, alpha_mdebug_frame_prev_register, diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c index cafadae..1d07fe2 100644 --- a/gdb/alpha-tdep.c +++ b/gdb/alpha-tdep.c @@ -1011,6 +1011,7 @@ static const struct frame_unwind alpha_sigtramp_frame_unwind = { "alpha sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, alpha_sigtramp_frame_this_id, alpha_sigtramp_frame_prev_register, @@ -1430,6 +1431,7 @@ static const struct frame_unwind alpha_heuristic_frame_unwind = { "alpha prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, alpha_heuristic_frame_this_id, alpha_heuristic_frame_prev_register, diff --git a/gdb/amd64-obsd-tdep.c b/gdb/amd64-obsd-tdep.c index 9cca6b1..a359802 100644 --- a/gdb/amd64-obsd-tdep.c +++ b/gdb/amd64-obsd-tdep.c @@ -409,6 +409,7 @@ static const struct frame_unwind amd64obsd_trapframe_unwind = which really is not what we want here. */ "amd64 openbsd trap", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, amd64obsd_trapframe_this_id, amd64obsd_trapframe_prev_register, diff --git a/gdb/amd64-tdep.c b/gdb/amd64-tdep.c index baca309..6b868c2 100644 --- a/gdb/amd64-tdep.c +++ b/gdb/amd64-tdep.c @@ -2662,6 +2662,7 @@ static const struct frame_unwind amd64_frame_unwind = { "amd64 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, amd64_frame_unwind_stop_reason, amd64_frame_this_id, amd64_frame_prev_register, @@ -2808,6 +2809,7 @@ static const struct frame_unwind amd64_sigtramp_frame_unwind = { "amd64 sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, amd64_sigtramp_frame_unwind_stop_reason, amd64_sigtramp_frame_this_id, amd64_sigtramp_frame_prev_register, @@ -3000,6 +3002,7 @@ static const struct frame_unwind amd64_epilogue_override_frame_unwind = { "amd64 epilogue override", NORMAL_FRAME, + FRAME_UNWIND_ARCH, amd64_epilogue_frame_unwind_stop_reason, amd64_epilogue_frame_this_id, amd64_frame_prev_register, @@ -3011,6 +3014,7 @@ static const struct frame_unwind amd64_epilogue_frame_unwind = { "amd64 epilogue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, amd64_epilogue_frame_unwind_stop_reason, amd64_epilogue_frame_this_id, amd64_frame_prev_register, diff --git a/gdb/amd64-windows-tdep.c b/gdb/amd64-windows-tdep.c index 50304e1..d423f2b 100644 --- a/gdb/amd64-windows-tdep.c +++ b/gdb/amd64-windows-tdep.c @@ -1185,6 +1185,7 @@ static const struct frame_unwind amd64_windows_frame_unwind = { "amd64 windows", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, &amd64_windows_frame_this_id, &amd64_windows_frame_prev_register, diff --git a/gdb/amdgpu-tdep.c b/gdb/amdgpu-tdep.c index 44252e5..ac0ed0c 100644 --- a/gdb/amdgpu-tdep.c +++ b/gdb/amdgpu-tdep.c @@ -895,6 +895,7 @@ amdgpu_frame_prev_register (frame_info_ptr this_frame, void **this_cache, static const frame_unwind amdgpu_frame_unwind = { "amdgpu", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, amdgpu_frame_this_id, amdgpu_frame_prev_register, diff --git a/gdb/arc-tdep.c b/gdb/arc-tdep.c index 84e211c..fa52ad0 100644 --- a/gdb/arc-tdep.c +++ b/gdb/arc-tdep.c @@ -1903,6 +1903,7 @@ arc_sigtramp_frame_sniffer (const struct frame_unwind *self, static const struct frame_unwind arc_frame_unwind = { "arc prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, arc_frame_this_id, arc_frame_prev_register, @@ -1919,6 +1920,7 @@ static const struct frame_unwind arc_frame_unwind = { static const struct frame_unwind arc_sigtramp_frame_unwind = { "arc sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, arc_sigtramp_frame_this_id, arc_sigtramp_frame_prev_register, diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 081e934..086fa56 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -2472,6 +2472,7 @@ arm_prologue_prev_register (frame_info_ptr this_frame, static frame_unwind arm_prologue_unwind = { "arm prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, arm_prologue_unwind_stop_reason, arm_prologue_this_id, arm_prologue_prev_register, @@ -3191,6 +3192,7 @@ arm_exidx_unwind_sniffer (const struct frame_unwind *self, struct frame_unwind arm_exidx_unwind = { "arm exidx", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, arm_prologue_this_id, arm_prologue_prev_register, @@ -3301,6 +3303,7 @@ static const struct frame_unwind arm_epilogue_frame_unwind = { "arm epilogue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, arm_epilogue_frame_this_id, arm_epilogue_frame_prev_register, @@ -3430,6 +3433,7 @@ arm_stub_unwind_sniffer (const struct frame_unwind *self, struct frame_unwind arm_stub_unwind = { "arm stub", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, arm_stub_this_id, arm_prologue_prev_register, @@ -3956,6 +3960,7 @@ struct frame_unwind arm_m_exception_unwind = { "arm m exception lockup sec_fnc", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, arm_m_exception_frame_unwind_stop_reason, arm_m_exception_this_id, arm_m_exception_prev_register, diff --git a/gdb/avr-tdep.c b/gdb/avr-tdep.c index 63b45be..701cec8 100644 --- a/gdb/avr-tdep.c +++ b/gdb/avr-tdep.c @@ -1158,6 +1158,7 @@ avr_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind avr_frame_unwind = { "avr prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, avr_frame_this_id, avr_frame_prev_register, diff --git a/gdb/bfin-tdep.c b/gdb/bfin-tdep.c index 877fd94..3194296 100644 --- a/gdb/bfin-tdep.c +++ b/gdb/bfin-tdep.c @@ -376,6 +376,7 @@ static const struct frame_unwind bfin_frame_unwind = { "bfin prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, bfin_frame_this_id, bfin_frame_prev_register, diff --git a/gdb/bpf-tdep.c b/gdb/bpf-tdep.c index 4409a1e..603d0cc 100644 --- a/gdb/bpf-tdep.c +++ b/gdb/bpf-tdep.c @@ -186,6 +186,7 @@ static const struct frame_unwind bpf_frame_unwind = { "bpf prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, bpf_frame_unwind_stop_reason, bpf_frame_this_id, bpf_frame_prev_register, diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 1f10874..aa70a17 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -439,6 +439,7 @@ static const struct frame_unwind cris_sigtramp_frame_unwind = { "cris sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, cris_sigtramp_frame_this_id, cris_sigtramp_frame_prev_register, @@ -904,6 +905,7 @@ static const struct frame_unwind cris_frame_unwind = { "cris prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, cris_frame_this_id, cris_frame_prev_register, diff --git a/gdb/csky-tdep.c b/gdb/csky-tdep.c index 2aa6c0a..4fcc707 100644 --- a/gdb/csky-tdep.c +++ b/gdb/csky-tdep.c @@ -2162,6 +2162,7 @@ csky_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind csky_unwind_cache = { "cski prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, csky_frame_this_id, csky_frame_prev_register, @@ -2296,6 +2297,7 @@ csky_stub_prev_register (frame_info_ptr this_frame, static frame_unwind csky_stub_unwind = { "csky stub", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, csky_stub_this_id, csky_stub_prev_register, diff --git a/gdb/dummy-frame.c b/gdb/dummy-frame.c index 309483d..dd0a466 100644 --- a/gdb/dummy-frame.c +++ b/gdb/dummy-frame.c @@ -380,6 +380,7 @@ const struct frame_unwind dummy_frame_unwind = { "dummy", DUMMY_FRAME, + FRAME_UNWIND_GDB, default_frame_unwind_stop_reason, dummy_frame_this_id, dummy_frame_prev_register, diff --git a/gdb/dwarf2/frame-tailcall.c b/gdb/dwarf2/frame-tailcall.c index 27a820a..18abd2a 100644 --- a/gdb/dwarf2/frame-tailcall.c +++ b/gdb/dwarf2/frame-tailcall.c @@ -473,6 +473,7 @@ const struct frame_unwind dwarf2_tailcall_frame_unwind = { "dwarf2 tailcall", TAILCALL_FRAME, + FRAME_UNWIND_DEBUGINFO, default_frame_unwind_stop_reason, tailcall_frame_this_id, tailcall_frame_prev_register, diff --git a/gdb/dwarf2/frame.c b/gdb/dwarf2/frame.c index fc6704f..f747b9b 100644 --- a/gdb/dwarf2/frame.c +++ b/gdb/dwarf2/frame.c @@ -1344,6 +1344,7 @@ static const struct frame_unwind dwarf2_frame_unwind = { "dwarf2", NORMAL_FRAME, + FRAME_UNWIND_DEBUGINFO, dwarf2_frame_unwind_stop_reason, dwarf2_frame_this_id, dwarf2_frame_prev_register, @@ -1356,6 +1357,7 @@ static const struct frame_unwind dwarf2_signal_frame_unwind = { "dwarf2 signal", SIGTRAMP_FRAME, + FRAME_UNWIND_DEBUGINFO, dwarf2_frame_unwind_stop_reason, dwarf2_frame_this_id, dwarf2_frame_prev_register, diff --git a/gdb/frame-unwind.c b/gdb/frame-unwind.c index 877f1e5..86e330d 100644 --- a/gdb/frame-unwind.c +++ b/gdb/frame-unwind.c @@ -68,6 +68,28 @@ get_frame_unwind_table (struct gdbarch *gdbarch) return table; } +static const char * +frame_unwinder_class_str (frame_unwind_class uclass) +{ + switch (uclass) + { + case FRAME_UNWIND_GDB: + return "FRAME_UNWIND_GDB"; + + case FRAME_UNWIND_EXTENSION: + return "FRAME_UNWIND_EXTENSION"; + + case FRAME_UNWIND_DEBUGINFO: + return "FRAME_UNWIND_DEBUGINFOD"; + + case FRAME_UNWIND_ARCH: + return "FRAME_UNWIND_ARCH"; + + default: + return "<unknown class>"; + }; +} + void frame_unwind_prepend_unwinder (struct gdbarch *gdbarch, const struct frame_unwind *unwinder) @@ -324,19 +346,22 @@ maintenance_info_frame_unwinders (const char *args, int from_tty) std::vector<const frame_unwind*> table = get_frame_unwind_table (gdbarch); ui_out *uiout = current_uiout; - ui_out_emit_table table_emitter (uiout, 2, -1, "FrameUnwinders"); + ui_out_emit_table table_emitter (uiout, 3, -1, "FrameUnwinders"); uiout->table_header (27, ui_left, "name", "Name"); uiout->table_header (25, ui_left, "type", "Type"); + uiout->table_header (25, ui_left, "class", "Class"); uiout->table_body (); for (const struct frame_unwind* unwinder: table) { const char *name = unwinder->name; const char *type = frame_type_str (unwinder->type); + const char *uclass = frame_unwinder_class_str (unwinder->unwinder_class); ui_out_emit_list tuple_emitter (uiout, nullptr); uiout->field_string ("name", name); uiout->field_string ("type", type); + uiout->field_string ("class", uclass); uiout->text ("\n"); } } diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h index 9e97889..86bb092 100644 --- a/gdb/frame-unwind.h +++ b/gdb/frame-unwind.h @@ -156,12 +156,23 @@ typedef void (frame_dealloc_cache_ftype) (frame_info *self, typedef struct gdbarch *(frame_prev_arch_ftype) (frame_info_ptr this_frame, void **this_prologue_cache); +enum frame_unwind_class { + FRAME_UNWIND_GDB, + FRAME_UNWIND_EXTENSION, + FRAME_UNWIND_DEBUGINFO, + FRAME_UNWIND_ARCH, +}; + 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; + /* What kind of unwinder is this. It generally follows from where + the unwinder was added or where it looks for information to do the + unwinding. */ + enum frame_unwind_class unwinder_class; /* Should an attribute indicating the frame's address-in-block go here? */ frame_unwind_stop_reason_ftype *stop_reason; diff --git a/gdb/frv-linux-tdep.c b/gdb/frv-linux-tdep.c index e02d339..657377c 100644 --- a/gdb/frv-linux-tdep.c +++ b/gdb/frv-linux-tdep.c @@ -336,6 +336,7 @@ static const struct frame_unwind frv_linux_sigtramp_frame_unwind = { "frv linux sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, frv_linux_sigtramp_frame_this_id, frv_linux_sigtramp_frame_prev_register, diff --git a/gdb/frv-tdep.c b/gdb/frv-tdep.c index 1994dd7..b1dc0a2 100644 --- a/gdb/frv-tdep.c +++ b/gdb/frv-tdep.c @@ -1408,6 +1408,7 @@ frv_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind frv_frame_unwind = { "frv prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, frv_frame_this_id, frv_frame_prev_register, diff --git a/gdb/ft32-tdep.c b/gdb/ft32-tdep.c index 069d40f..22a0fbf 100644 --- a/gdb/ft32-tdep.c +++ b/gdb/ft32-tdep.c @@ -528,6 +528,7 @@ static const struct frame_unwind ft32_frame_unwind = { "ft32 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, ft32_frame_this_id, ft32_frame_prev_register, diff --git a/gdb/h8300-tdep.c b/gdb/h8300-tdep.c index da5b105..ef73e78 100644 --- a/gdb/h8300-tdep.c +++ b/gdb/h8300-tdep.c @@ -503,6 +503,7 @@ h8300_frame_prev_register (frame_info_ptr this_frame, void **this_cache, static const struct frame_unwind h8300_frame_unwind = { "h8300 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, h8300_frame_this_id, h8300_frame_prev_register, diff --git a/gdb/hppa-linux-tdep.c b/gdb/hppa-linux-tdep.c index 4f94b41..c187ff1 100644 --- a/gdb/hppa-linux-tdep.c +++ b/gdb/hppa-linux-tdep.c @@ -311,6 +311,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, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, hppa_linux_sigtramp_frame_this_id, hppa_linux_sigtramp_frame_prev_register, diff --git a/gdb/hppa-tdep.c b/gdb/hppa-tdep.c index 32e46b8..d5c41db 100644 --- a/gdb/hppa-tdep.c +++ b/gdb/hppa-tdep.c @@ -2287,6 +2287,7 @@ static const struct frame_unwind hppa_frame_unwind = { "hppa unwind table", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, hppa_frame_this_id, hppa_frame_prev_register, @@ -2400,6 +2401,7 @@ static const struct frame_unwind hppa_fallback_frame_unwind = { "hppa prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, hppa_fallback_frame_this_id, hppa_fallback_frame_prev_register, @@ -2481,6 +2483,7 @@ hppa_stub_unwind_sniffer (const struct frame_unwind *self, static const struct frame_unwind hppa_stub_frame_unwind = { "hppa stub", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, hppa_stub_frame_this_id, hppa_stub_frame_prev_register, diff --git a/gdb/i386-obsd-tdep.c b/gdb/i386-obsd-tdep.c index 38ba280..4b790ee 100644 --- a/gdb/i386-obsd-tdep.c +++ b/gdb/i386-obsd-tdep.c @@ -396,6 +396,7 @@ static const struct frame_unwind i386obsd_trapframe_unwind = { frame, but SIGTRAMP_FRAME would print <signal handler called>, which really is not what we want here. */ NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, i386obsd_trapframe_this_id, i386obsd_trapframe_prev_register, diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c index d8691f0..d98b332 100644 --- a/gdb/i386-tdep.c +++ b/gdb/i386-tdep.c @@ -2200,6 +2200,7 @@ static const struct frame_unwind i386_frame_unwind = { "i386 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, i386_frame_unwind_stop_reason, i386_frame_this_id, i386_frame_prev_register, @@ -2355,6 +2356,7 @@ static const struct frame_unwind i386_epilogue_override_frame_unwind = { "i386 epilogue override", NORMAL_FRAME, + FRAME_UNWIND_ARCH, i386_epilogue_frame_unwind_stop_reason, i386_epilogue_frame_this_id, i386_epilogue_frame_prev_register, @@ -2366,6 +2368,7 @@ static const struct frame_unwind i386_epilogue_frame_unwind = { "i386 epilogue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, i386_epilogue_frame_unwind_stop_reason, i386_epilogue_frame_this_id, i386_epilogue_frame_prev_register, @@ -2448,6 +2451,7 @@ static const struct frame_unwind i386_stack_tramp_frame_unwind = { "i386 stack tramp", NORMAL_FRAME, + FRAME_UNWIND_ARCH, i386_epilogue_frame_unwind_stop_reason, i386_epilogue_frame_this_id, i386_epilogue_frame_prev_register, @@ -2597,6 +2601,7 @@ static const struct frame_unwind i386_sigtramp_frame_unwind = { "i386 sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, i386_sigtramp_frame_unwind_stop_reason, i386_sigtramp_frame_this_id, i386_sigtramp_frame_prev_register, diff --git a/gdb/ia64-tdep.c b/gdb/ia64-tdep.c index afff210..53bac38 100644 --- a/gdb/ia64-tdep.c +++ b/gdb/ia64-tdep.c @@ -2166,6 +2166,7 @@ static const struct frame_unwind ia64_frame_unwind = { "ia64 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, &ia64_frame_this_id, &ia64_frame_prev_register, @@ -2355,6 +2356,7 @@ static const struct frame_unwind ia64_sigtramp_frame_unwind = { "ia64 sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, ia64_sigtramp_frame_this_id, ia64_sigtramp_frame_prev_register, @@ -3015,6 +3017,7 @@ static const struct frame_unwind ia64_libunwind_frame_unwind = { "ia64 libunwind", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, ia64_libunwind_frame_this_id, ia64_libunwind_frame_prev_register, @@ -3104,6 +3107,7 @@ static const struct frame_unwind ia64_libunwind_sigtramp_frame_unwind = { "ia64 libunwind sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, ia64_libunwind_sigtramp_frame_this_id, ia64_libunwind_sigtramp_frame_prev_register, diff --git a/gdb/inline-frame.c b/gdb/inline-frame.c index 02dbcd1..575fab6 100644 --- a/gdb/inline-frame.c +++ b/gdb/inline-frame.c @@ -268,6 +268,7 @@ inline_frame_sniffer (const struct frame_unwind *self, const struct frame_unwind inline_frame_unwind = { "inline", INLINE_FRAME, + FRAME_UNWIND_GDB, default_frame_unwind_stop_reason, inline_frame_this_id, inline_frame_prev_register, diff --git a/gdb/iq2000-tdep.c b/gdb/iq2000-tdep.c index 937a351..0cf0737 100644 --- a/gdb/iq2000-tdep.c +++ b/gdb/iq2000-tdep.c @@ -427,6 +427,7 @@ iq2000_frame_this_id (frame_info_ptr this_frame, void **this_cache, static const struct frame_unwind iq2000_frame_unwind = { "iq2000 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, iq2000_frame_this_id, iq2000_frame_prev_register, @@ -1108,6 +1108,7 @@ static const struct frame_unwind jit_frame_unwind = { "jit", NORMAL_FRAME, + FRAME_UNWIND_EXTENSION, default_frame_unwind_stop_reason, jit_frame_this_id, jit_frame_prev_register, diff --git a/gdb/lm32-tdep.c b/gdb/lm32-tdep.c index 12e9b5a..a132dec 100644 --- a/gdb/lm32-tdep.c +++ b/gdb/lm32-tdep.c @@ -450,6 +450,7 @@ lm32_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind lm32_frame_unwind = { "lm32 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, lm32_frame_this_id, lm32_frame_prev_register, diff --git a/gdb/loongarch-tdep.c b/gdb/loongarch-tdep.c index 0f4622a..3e017c4 100644 --- a/gdb/loongarch-tdep.c +++ b/gdb/loongarch-tdep.c @@ -453,6 +453,7 @@ loongarch_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind loongarch_frame_unwind = { "loongarch prologue", /*.type =*/NORMAL_FRAME, + /*.unwinder_class=*/FRAME_UNWIND_ARCH, /*.stop_reason =*/default_frame_unwind_stop_reason, /*.this_id =*/loongarch_frame_this_id, /*.prev_register =*/loongarch_frame_prev_register, diff --git a/gdb/m32c-tdep.c b/gdb/m32c-tdep.c index 8da15fe..5a91160 100644 --- a/gdb/m32c-tdep.c +++ b/gdb/m32c-tdep.c @@ -1958,6 +1958,7 @@ m32c_prev_register (frame_info_ptr this_frame, static const struct frame_unwind m32c_unwind = { "m32c prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, m32c_this_id, m32c_prev_register, diff --git a/gdb/m32r-linux-tdep.c b/gdb/m32r-linux-tdep.c index ec054fa..4287c81 100644 --- a/gdb/m32r-linux-tdep.c +++ b/gdb/m32r-linux-tdep.c @@ -304,6 +304,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, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, m32r_linux_sigtramp_frame_this_id, m32r_linux_sigtramp_frame_prev_register, diff --git a/gdb/m32r-tdep.c b/gdb/m32r-tdep.c index 7385594..8210662 100644 --- a/gdb/m32r-tdep.c +++ b/gdb/m32r-tdep.c @@ -834,6 +834,7 @@ m32r_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind m32r_frame_unwind = { "m32r prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, m32r_frame_this_id, m32r_frame_prev_register, diff --git a/gdb/m68hc11-tdep.c b/gdb/m68hc11-tdep.c index a8466e3..bbb2976 100644 --- a/gdb/m68hc11-tdep.c +++ b/gdb/m68hc11-tdep.c @@ -939,6 +939,7 @@ m68hc11_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind m68hc11_frame_unwind = { "m68hc11 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, m68hc11_frame_this_id, m68hc11_frame_prev_register, diff --git a/gdb/m68k-linux-tdep.c b/gdb/m68k-linux-tdep.c index 9004b2e..f2b6905 100644 --- a/gdb/m68k-linux-tdep.c +++ b/gdb/m68k-linux-tdep.c @@ -318,6 +318,7 @@ static const struct frame_unwind m68k_linux_sigtramp_frame_unwind = { "m68k linux sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, m68k_linux_sigtramp_frame_this_id, m68k_linux_sigtramp_frame_prev_register, diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c index 1ae5c33..3f7e89a 100644 --- a/gdb/m68k-tdep.c +++ b/gdb/m68k-tdep.c @@ -1011,6 +1011,7 @@ static const struct frame_unwind m68k_frame_unwind = { "m68k prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, m68k_frame_this_id, m68k_frame_prev_register, diff --git a/gdb/mep-tdep.c b/gdb/mep-tdep.c index 573711e..a0c648a 100644 --- a/gdb/mep-tdep.c +++ b/gdb/mep-tdep.c @@ -2064,6 +2064,7 @@ mep_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind mep_frame_unwind = { "mep prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, mep_frame_this_id, mep_frame_prev_register, diff --git a/gdb/microblaze-tdep.c b/gdb/microblaze-tdep.c index fc83634..ced8b75 100644 --- a/gdb/microblaze-tdep.c +++ b/gdb/microblaze-tdep.c @@ -482,6 +482,7 @@ static const struct frame_unwind microblaze_frame_unwind = { "microblaze prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, microblaze_frame_this_id, microblaze_frame_prev_register, diff --git a/gdb/mips-sde-tdep.c b/gdb/mips-sde-tdep.c index e54440e..07a43d0 100644 --- a/gdb/mips-sde-tdep.c +++ b/gdb/mips-sde-tdep.c @@ -165,6 +165,7 @@ static const struct frame_unwind mips_sde_frame_unwind = { "mips sde sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, mips_sde_frame_this_id, mips_sde_frame_prev_register, diff --git a/gdb/mips-tdep.c b/gdb/mips-tdep.c index bf0b66c..457b875 100644 --- a/gdb/mips-tdep.c +++ b/gdb/mips-tdep.c @@ -2933,6 +2933,7 @@ static const struct frame_unwind mips_insn16_frame_unwind = { "mips insn16 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, mips_insn16_frame_this_id, mips_insn16_frame_prev_register, @@ -3369,6 +3370,7 @@ static const struct frame_unwind mips_micro_frame_unwind = { "mips micro prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, mips_micro_frame_this_id, mips_micro_frame_prev_register, @@ -3748,6 +3750,7 @@ static const struct frame_unwind mips_insn32_frame_unwind = { "mips insn32 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, mips_insn32_frame_this_id, mips_insn32_frame_prev_register, @@ -3865,6 +3868,7 @@ static const struct frame_unwind mips_stub_frame_unwind = { "mips stub", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, mips_stub_frame_this_id, mips_stub_frame_prev_register, diff --git a/gdb/mn10300-tdep.c b/gdb/mn10300-tdep.c index 4d65fed..307f199 100644 --- a/gdb/mn10300-tdep.c +++ b/gdb/mn10300-tdep.c @@ -1130,6 +1130,7 @@ mn10300_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind mn10300_frame_unwind = { "mn10300 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, mn10300_frame_this_id, mn10300_frame_prev_register, diff --git a/gdb/moxie-tdep.c b/gdb/moxie-tdep.c index 4a80355..1eeec7d 100644 --- a/gdb/moxie-tdep.c +++ b/gdb/moxie-tdep.c @@ -588,6 +588,7 @@ moxie_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind moxie_frame_unwind = { "moxie prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, moxie_frame_this_id, moxie_frame_prev_register, diff --git a/gdb/msp430-tdep.c b/gdb/msp430-tdep.c index 6bbb1d4..6bbcc1e 100644 --- a/gdb/msp430-tdep.c +++ b/gdb/msp430-tdep.c @@ -545,6 +545,7 @@ msp430_prev_register (frame_info_ptr this_frame, static const struct frame_unwind msp430_unwind = { "msp430 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, msp430_this_id, msp430_prev_register, diff --git a/gdb/nds32-tdep.c b/gdb/nds32-tdep.c index d4be42c..d816b9a 100644 --- a/gdb/nds32-tdep.c +++ b/gdb/nds32-tdep.c @@ -992,6 +992,7 @@ static const struct frame_unwind nds32_frame_unwind = { "nds32 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, nds32_frame_this_id, nds32_frame_prev_register, @@ -1376,6 +1377,7 @@ static const struct frame_unwind nds32_epilogue_frame_unwind = { "nds32 epilogue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, nds32_epilogue_frame_this_id, nds32_epilogue_frame_prev_register, diff --git a/gdb/nios2-tdep.c b/gdb/nios2-tdep.c index 196f50b..5f4aa44 100644 --- a/gdb/nios2-tdep.c +++ b/gdb/nios2-tdep.c @@ -1981,6 +1981,7 @@ static const struct frame_unwind nios2_frame_unwind = { "nios2 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, nios2_frame_this_id, nios2_frame_prev_register, @@ -2082,6 +2083,7 @@ static const struct frame_unwind nios2_stub_frame_unwind = { "nios2 stub", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, nios2_stub_frame_this_id, nios2_stub_frame_prev_register, diff --git a/gdb/or1k-tdep.c b/gdb/or1k-tdep.c index c8365dc..a1dfbf6 100644 --- a/gdb/or1k-tdep.c +++ b/gdb/or1k-tdep.c @@ -1128,6 +1128,7 @@ or1k_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind or1k_frame_unwind = { "or1k prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, or1k_frame_this_id, or1k_frame_prev_register, diff --git a/gdb/ppc-fbsd-tdep.c b/gdb/ppc-fbsd-tdep.c index e70056a..03c3e28 100644 --- a/gdb/ppc-fbsd-tdep.c +++ b/gdb/ppc-fbsd-tdep.c @@ -265,6 +265,7 @@ ppcfbsd_sigtramp_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind ppcfbsd_sigtramp_frame_unwind = { "ppc freebsd sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, ppcfbsd_sigtramp_frame_this_id, ppcfbsd_sigtramp_frame_prev_register, diff --git a/gdb/ppc-obsd-tdep.c b/gdb/ppc-obsd-tdep.c index d9e21e3..4985bf8 100644 --- a/gdb/ppc-obsd-tdep.c +++ b/gdb/ppc-obsd-tdep.c @@ -234,6 +234,7 @@ ppcobsd_sigtramp_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind ppcobsd_sigtramp_frame_unwind = { "ppc openbsd sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, ppcobsd_sigtramp_frame_this_id, ppcobsd_sigtramp_frame_prev_register, diff --git a/gdb/python/py-unwind.c b/gdb/python/py-unwind.c index c55b5aa..e669295 100644 --- a/gdb/python/py-unwind.c +++ b/gdb/python/py-unwind.c @@ -965,6 +965,7 @@ pyuw_on_new_gdbarch (gdbarch *newarch) unwinder->name = "python"; unwinder->type = NORMAL_FRAME; + unwinder->unwinder_class = FRAME_UNWIND_EXTENSION; unwinder->stop_reason = default_frame_unwind_stop_reason; unwinder->this_id = pyuw_this_id; unwinder->prev_register = pyuw_prev_register; diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c index 030547a..6b1415d 100644 --- a/gdb/record-btrace.c +++ b/gdb/record-btrace.c @@ -1898,6 +1898,7 @@ const struct frame_unwind record_btrace_frame_unwind = { "record-btrace", NORMAL_FRAME, + FRAME_UNWIND_GDB, record_btrace_frame_unwind_stop_reason, record_btrace_frame_this_id, record_btrace_frame_prev_register, @@ -1910,6 +1911,7 @@ const struct frame_unwind record_btrace_tailcall_frame_unwind = { "record-btrace tailcall", TAILCALL_FRAME, + FRAME_UNWIND_GDB, record_btrace_frame_unwind_stop_reason, record_btrace_frame_this_id, record_btrace_frame_prev_register, diff --git a/gdb/riscv-tdep.c b/gdb/riscv-tdep.c index 9a7cfa3..4ecc761 100644 --- a/gdb/riscv-tdep.c +++ b/gdb/riscv-tdep.c @@ -3905,6 +3905,7 @@ static const struct frame_unwind riscv_frame_unwind = { /*.name =*/ "riscv prologue", /*.type =*/ NORMAL_FRAME, + /*.unwinder_class=*/FRAME_UNWIND_ARCH, /*.stop_reason =*/ default_frame_unwind_stop_reason, /*.this_id =*/ riscv_frame_this_id, /*.prev_register =*/ riscv_frame_prev_register, diff --git a/gdb/rl78-tdep.c b/gdb/rl78-tdep.c index aecda0e..88a96cb 100644 --- a/gdb/rl78-tdep.c +++ b/gdb/rl78-tdep.c @@ -1187,6 +1187,7 @@ static const struct frame_unwind rl78_unwind = { "rl78 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, rl78_this_id, rl78_prev_register, diff --git a/gdb/rs6000-aix-tdep.c b/gdb/rs6000-aix-tdep.c index 6fdbf63..39ef09f 100644 --- a/gdb/rs6000-aix-tdep.c +++ b/gdb/rs6000-aix-tdep.c @@ -331,6 +331,7 @@ aix_sighandle_frame_sniffer (const struct frame_unwind *self, static const struct frame_unwind aix_sighandle_frame_unwind = { "rs6000 aix sighandle", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, aix_sighandle_frame_this_id, aix_sighandle_frame_prev_register, diff --git a/gdb/rs6000-tdep.c b/gdb/rs6000-tdep.c index f61e084..92e2746 100644 --- a/gdb/rs6000-tdep.c +++ b/gdb/rs6000-tdep.c @@ -3842,6 +3842,7 @@ static const struct frame_unwind rs6000_frame_unwind = { "rs6000 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, rs6000_frame_this_id, rs6000_frame_prev_register, @@ -3983,6 +3984,7 @@ static const struct frame_unwind rs6000_epilogue_frame_unwind = { "rs6000 epilogue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, rs6000_epilogue_frame_this_id, rs6000_epilogue_frame_prev_register, NULL, diff --git a/gdb/rx-tdep.c b/gdb/rx-tdep.c index 5ea01e7..18b0030 100644 --- a/gdb/rx-tdep.c +++ b/gdb/rx-tdep.c @@ -634,6 +634,7 @@ rx_exception_sniffer (const struct frame_unwind *self, static const struct frame_unwind rx_frame_unwind = { "rx prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, rx_frame_this_id, rx_frame_prev_register, @@ -648,6 +649,7 @@ static const struct frame_unwind rx_exception_unwind = { "rx exception", /* SIGTRAMP_FRAME could be used here, but backtraces are less informative. */ NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, rx_frame_this_id, rx_frame_prev_register, diff --git a/gdb/s12z-tdep.c b/gdb/s12z-tdep.c index 4b2ed85..887d473 100644 --- a/gdb/s12z-tdep.c +++ b/gdb/s12z-tdep.c @@ -445,6 +445,7 @@ s12z_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind s12z_frame_unwind = { "s12z prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, s12z_frame_this_id, s12z_frame_prev_register, diff --git a/gdb/s390-linux-tdep.c b/gdb/s390-linux-tdep.c index 4f73d5a..9c49bb8 100644 --- a/gdb/s390-linux-tdep.c +++ b/gdb/s390-linux-tdep.c @@ -545,6 +545,7 @@ s390_sigtramp_frame_sniffer (const struct frame_unwind *self, static const struct frame_unwind s390_sigtramp_frame_unwind = { "s390 linux sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, s390_sigtramp_frame_this_id, s390_sigtramp_frame_prev_register, diff --git a/gdb/s390-tdep.c b/gdb/s390-tdep.c index 134bf98..c3eacf6 100644 --- a/gdb/s390-tdep.c +++ b/gdb/s390-tdep.c @@ -2649,6 +2649,7 @@ s390_frame_prev_register (frame_info_ptr this_frame, static const struct frame_unwind s390_frame_unwind = { "s390 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, s390_frame_this_id, s390_frame_prev_register, @@ -2743,6 +2744,7 @@ s390_stub_frame_sniffer (const struct frame_unwind *self, static const struct frame_unwind s390_stub_frame_unwind = { "s390 stub", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, s390_stub_frame_this_id, s390_stub_frame_prev_register, diff --git a/gdb/sentinel-frame.c b/gdb/sentinel-frame.c index 6b6cbeb..3f2f1f1 100644 --- a/gdb/sentinel-frame.c +++ b/gdb/sentinel-frame.c @@ -83,6 +83,7 @@ const struct frame_unwind sentinel_frame_unwind = { "sentinel", SENTINEL_FRAME, + FRAME_UNWIND_GDB, default_frame_unwind_stop_reason, sentinel_frame_this_id, sentinel_frame_prev_register, diff --git a/gdb/sh-tdep.c b/gdb/sh-tdep.c index 3a4ff96..b0ff92d 100644 --- a/gdb/sh-tdep.c +++ b/gdb/sh-tdep.c @@ -1932,6 +1932,7 @@ sh_frame_this_id (frame_info_ptr this_frame, void **this_cache, static const struct frame_unwind sh_frame_unwind = { "sh prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sh_frame_this_id, sh_frame_prev_register, @@ -1999,6 +2000,7 @@ static const struct frame_unwind sh_stub_unwind = { "sh stub", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sh_stub_this_id, sh_frame_prev_register, diff --git a/gdb/sparc-netbsd-tdep.c b/gdb/sparc-netbsd-tdep.c index 486381f..3c1add9 100644 --- a/gdb/sparc-netbsd-tdep.c +++ b/gdb/sparc-netbsd-tdep.c @@ -253,6 +253,7 @@ static const struct frame_unwind sparc32nbsd_sigcontext_frame_unwind = { "sparc32 netbsd sigcontext", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc32nbsd_sigcontext_frame_this_id, sparc32nbsd_sigcontext_frame_prev_register, diff --git a/gdb/sparc-obsd-tdep.c b/gdb/sparc-obsd-tdep.c index 2155a30..e56ddf2 100644 --- a/gdb/sparc-obsd-tdep.c +++ b/gdb/sparc-obsd-tdep.c @@ -138,6 +138,7 @@ static const struct frame_unwind sparc32obsd_sigtramp_frame_unwind = { "sparc32 openbsd sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc32obsd_sigtramp_frame_this_id, sparc32obsd_sigtramp_frame_prev_register, diff --git a/gdb/sparc-sol2-tdep.c b/gdb/sparc-sol2-tdep.c index a0a6c4c..3fe8263 100644 --- a/gdb/sparc-sol2-tdep.c +++ b/gdb/sparc-sol2-tdep.c @@ -184,6 +184,7 @@ static const struct frame_unwind sparc32_sol2_sigtramp_frame_unwind = { "sparc32 solaris sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc32_sol2_sigtramp_frame_this_id, sparc32_sol2_sigtramp_frame_prev_register, diff --git a/gdb/sparc-tdep.c b/gdb/sparc-tdep.c index f84e168..36dd7bd 100644 --- a/gdb/sparc-tdep.c +++ b/gdb/sparc-tdep.c @@ -1350,6 +1350,7 @@ static const struct frame_unwind sparc32_frame_unwind = { "sparc32 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc32_frame_this_id, sparc32_frame_prev_register, diff --git a/gdb/sparc64-fbsd-tdep.c b/gdb/sparc64-fbsd-tdep.c index 8c97ce8..b30c1edb 100644 --- a/gdb/sparc64-fbsd-tdep.c +++ b/gdb/sparc64-fbsd-tdep.c @@ -201,6 +201,7 @@ static const struct frame_unwind sparc64fbsd_sigtramp_frame_unwind = { "sparc64 freebsd sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc64fbsd_sigtramp_frame_this_id, sparc64fbsd_sigtramp_frame_prev_register, diff --git a/gdb/sparc64-netbsd-tdep.c b/gdb/sparc64-netbsd-tdep.c index 82405f8..3f61410 100644 --- a/gdb/sparc64-netbsd-tdep.c +++ b/gdb/sparc64-netbsd-tdep.c @@ -227,6 +227,7 @@ static const struct frame_unwind sparc64nbsd_sigcontext_frame_unwind = { "sparc64 netbsd sigcontext", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc64nbsd_sigcontext_frame_this_id, sparc64nbsd_sigcontext_frame_prev_register, diff --git a/gdb/sparc64-obsd-tdep.c b/gdb/sparc64-obsd-tdep.c index 7f22c4b..f1983c1 100644 --- a/gdb/sparc64-obsd-tdep.c +++ b/gdb/sparc64-obsd-tdep.c @@ -224,6 +224,7 @@ static const struct frame_unwind sparc64obsd_frame_unwind = { "sparc64 openbsd sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc64obsd_frame_this_id, sparc64obsd_frame_prev_register, diff --git a/gdb/sparc64-sol2-tdep.c b/gdb/sparc64-sol2-tdep.c index 95db72b..3cdc7a7 100644 --- a/gdb/sparc64-sol2-tdep.c +++ b/gdb/sparc64-sol2-tdep.c @@ -187,6 +187,7 @@ static const struct frame_unwind sparc64_sol2_sigtramp_frame_unwind = { "sparc64 solaris sigtramp", SIGTRAMP_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc64_sol2_sigtramp_frame_this_id, sparc64_sol2_sigtramp_frame_prev_register, diff --git a/gdb/sparc64-tdep.c b/gdb/sparc64-tdep.c index 39ad976..cf37d0a 100644 --- a/gdb/sparc64-tdep.c +++ b/gdb/sparc64-tdep.c @@ -1138,6 +1138,7 @@ static const struct frame_unwind sparc64_frame_unwind = { "sparc64 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, sparc64_frame_this_id, sparc64_frame_prev_register, diff --git a/gdb/tic6x-tdep.c b/gdb/tic6x-tdep.c index c81f010..f6c8d7f 100644 --- a/gdb/tic6x-tdep.c +++ b/gdb/tic6x-tdep.c @@ -456,6 +456,7 @@ static const struct frame_unwind tic6x_frame_unwind = { "tic6x prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, tic6x_frame_this_id, tic6x_frame_prev_register, diff --git a/gdb/tilegx-tdep.c b/gdb/tilegx-tdep.c index 8264937..690159f 100644 --- a/gdb/tilegx-tdep.c +++ b/gdb/tilegx-tdep.c @@ -903,6 +903,7 @@ tilegx_frame_base_address (frame_info_ptr this_frame, void **this_cache) static const struct frame_unwind tilegx_frame_unwind = { "tilegx prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, tilegx_frame_this_id, tilegx_frame_prev_register, diff --git a/gdb/tramp-frame.c b/gdb/tramp-frame.c index 51abd34..d2513fc 100644 --- a/gdb/tramp-frame.c +++ b/gdb/tramp-frame.c @@ -166,6 +166,7 @@ tramp_frame_prepend_unwinder (struct gdbarch *gdbarch, data->tramp_frame = tramp_frame; unwinder->type = tramp_frame->frame_type; unwinder->unwind_data = data; + unwinder->unwinder_class = FRAME_UNWIND_GDB; unwinder->sniffer = tramp_frame_sniffer; unwinder->stop_reason = default_frame_unwind_stop_reason; unwinder->this_id = tramp_frame_this_id; diff --git a/gdb/v850-tdep.c b/gdb/v850-tdep.c index 5b22ee2..43475ca 100644 --- a/gdb/v850-tdep.c +++ b/gdb/v850-tdep.c @@ -1323,6 +1323,7 @@ v850_frame_this_id (frame_info_ptr this_frame, void **this_cache, static const struct frame_unwind v850_frame_unwind = { "v850 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, v850_frame_this_id, v850_frame_prev_register, diff --git a/gdb/vax-tdep.c b/gdb/vax-tdep.c index 979dc17..8283120 100644 --- a/gdb/vax-tdep.c +++ b/gdb/vax-tdep.c @@ -390,6 +390,7 @@ static const struct frame_unwind vax_frame_unwind = { "vax prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, vax_frame_this_id, vax_frame_prev_register, diff --git a/gdb/xstormy16-tdep.c b/gdb/xstormy16-tdep.c index b19c949..1495829 100644 --- a/gdb/xstormy16-tdep.c +++ b/gdb/xstormy16-tdep.c @@ -731,6 +731,7 @@ xstormy16_frame_base_address (frame_info_ptr this_frame, void **this_cache) static const struct frame_unwind xstormy16_frame_unwind = { "xstormy16 prologue", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, xstormy16_frame_this_id, xstormy16_frame_prev_register, diff --git a/gdb/z80-tdep.c b/gdb/z80-tdep.c index f03eafd..6c9d51c 100644 --- a/gdb/z80-tdep.c +++ b/gdb/z80-tdep.c @@ -1068,6 +1068,7 @@ z80_frame_unwind = { "z80", NORMAL_FRAME, + FRAME_UNWIND_ARCH, default_frame_unwind_stop_reason, z80_frame_this_id, z80_frame_prev_register, |