summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@gnu.org>2003-05-10 23:18:22 +0000
committerMark Kettenis <kettenis@gnu.org>2003-05-10 23:18:22 +0000
commit27a386989ea37ab896c8fa78f8f11873153eb36f (patch)
tree445a2bdabfac981bcd26dca9be5fea149ac089ef
parentdea2576ef38bc88bbd68525081c983af2f8211c7 (diff)
downloadgdb-27a386989ea37ab896c8fa78f8f11873153eb36f.tar.gz
* i386-tdep.c (i386_frame_p): Move signal trampoline unwinder...
(i386_sigtramp_frame_p): ...here. Make both functions static. (i386_gdbarch_init): Register signal trampoline unwinder. Change order in which frame unwinders and frame baase methods are registered to make overriding them easier.
-rw-r--r--gdb/ChangeLog8
-rw-r--r--gdb/i386-tdep.c26
2 files changed, 25 insertions, 9 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index aa1ca3ce07d..5de7d26884b 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,3 +1,11 @@
+2003-05-11 Mark Kettenis <kettenis@gnu.org>
+
+ * i386-tdep.c (i386_frame_p): Move signal trampoline unwinder...
+ (i386_sigtramp_frame_p): ...here. Make both functions static.
+ (i386_gdbarch_init): Register signal trampoline unwinder. Change
+ order in which frame unwinders and frame baase methods are
+ registered to make overriding them easier.
+
2003-05-10 Mark Kettenis <kettenis@gnu.org>
* i386-tdep.c (i386_analyze_struct_return): Correctly indent
diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c
index 2da228a3039..c7bd91920d3 100644
--- a/gdb/i386-tdep.c
+++ b/gdb/i386-tdep.c
@@ -862,6 +862,12 @@ static const struct frame_unwind i386_frame_unwind =
i386_frame_this_id,
i386_frame_prev_register
};
+
+static const struct frame_unwind *
+i386_frame_p (CORE_ADDR pc)
+{
+ return &i386_frame_unwind;
+}
/* Signal trampolines. */
@@ -920,10 +926,9 @@ static const struct frame_unwind i386_sigtramp_frame_unwind =
i386_sigtramp_frame_this_id,
i386_sigtramp_frame_prev_register
};
-
-const struct frame_unwind *
-i386_frame_p (CORE_ADDR pc)
+static const struct frame_unwind *
+i386_sigtramp_frame_p (CORE_ADDR pc)
{
char *name;
@@ -931,8 +936,9 @@ i386_frame_p (CORE_ADDR pc)
if (PC_IN_SIGTRAMP (pc, name))
return &i386_sigtramp_frame_unwind;
- return &i386_frame_unwind;
+ return NULL;
}
+
static CORE_ADDR
i386_frame_base_address (struct frame_info *next_frame, void **this_cache)
@@ -1707,16 +1713,18 @@ i386_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches)
i386_add_reggroups (gdbarch);
set_gdbarch_register_reggroup_p (gdbarch, i386_register_reggroup_p);
- /* Hook in ABI-specific overrides, if they have been registered. */
- gdbarch_init_osabi (info, gdbarch);
-
/* Hook in the DWARF CFI frame unwinder. */
frame_unwind_append_predicate (gdbarch, dwarf_frame_p);
set_gdbarch_dwarf2_build_frame_info (gdbarch, dwarf2_build_frame_info);
-
- frame_unwind_append_predicate (gdbarch, i386_frame_p);
+
frame_base_set_default (gdbarch, &i386_frame_base);
+ /* Hook in ABI-specific overrides, if they have been registered. */
+ gdbarch_init_osabi (info, gdbarch);
+
+ frame_unwind_append_predicate (gdbarch, i386_sigtramp_frame_p);
+ frame_unwind_append_predicate (gdbarch, i386_frame_p);
+
return gdbarch;
}