aboutsummaryrefslogtreecommitdiff
path: root/gdb/alpha-tdep.c
diff options
context:
space:
mode:
authorPeter Schauer <Peter.Schauer@mytum.de>1995-10-21 13:14:53 +0000
committerPeter Schauer <Peter.Schauer@mytum.de>1995-10-21 13:14:53 +0000
commit09af58685445072bdf77e9257632da71f979162c (patch)
treea9eb8ec564ac3f31945f3e767f6887260d134a40 /gdb/alpha-tdep.c
parent8490169d216ca66f0d2a2a627d9be8aaadaa9ced (diff)
downloadgdb-09af58685445072bdf77e9257632da71f979162c.zip
gdb-09af58685445072bdf77e9257632da71f979162c.tar.gz
gdb-09af58685445072bdf77e9257632da71f979162c.tar.bz2
* alpha-tdep.c, mips-tdep.c (init_extra_frame_info):
Do not set saved registers from heuristics for a sigtramp frame. * dwarfread.c (enum_type): Determine signedness of enum type from enumerators. * mips-tdep.c: Include gdb_string.h, gcc -Wall lint. * rs6000-nat.c (xcoff_relocate_core): Fix typo. * valops.c (value_repeat): Fix length of memory transfer to match recent allocate_repeat_value change.
Diffstat (limited to 'gdb/alpha-tdep.c')
-rw-r--r--gdb/alpha-tdep.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/gdb/alpha-tdep.c b/gdb/alpha-tdep.c
index f3ba0eb..6ec6f6d 100644
--- a/gdb/alpha-tdep.c
+++ b/gdb/alpha-tdep.c
@@ -132,7 +132,7 @@ struct linked_proc_info
} *linked_proc_desc_table = NULL;
-/* Guaranteed to set fci->saved_regs to some values (it never leaves it
+/* Guaranteed to set frame->saved_regs to some values (it never leaves it
NULL). */
void
@@ -652,11 +652,22 @@ init_extra_frame_info (frame)
if (proc_desc == &temp_proc_desc)
{
- frame->saved_regs = (struct frame_saved_regs*)
- obstack_alloc (&frame_cache_obstack,
- sizeof (struct frame_saved_regs));
- *frame->saved_regs = temp_saved_regs;
- frame->saved_regs->regs[PC_REGNUM] = frame->saved_regs->regs[RA_REGNUM];
+ char *name;
+
+ /* Do not set the saved registers for a sigtramp frame,
+ alpha_find_saved_registers will do that for us.
+ We can't use frame->signal_handler_caller, it is not yet set. */
+ find_pc_partial_function (frame->pc, &name,
+ (CORE_ADDR *)NULL,(CORE_ADDR *)NULL);
+ if (!IN_SIGTRAMP (frame->pc, name))
+ {
+ frame->saved_regs = (struct frame_saved_regs*)
+ obstack_alloc (&frame_cache_obstack,
+ sizeof (struct frame_saved_regs));
+ *frame->saved_regs = temp_saved_regs;
+ frame->saved_regs->regs[PC_REGNUM]
+ = frame->saved_regs->regs[RA_REGNUM];
+ }
}
}
}