summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRandolph Chung <tausq@debian.org>2005-11-19 12:47:21 +0000
committerRandolph Chung <tausq@debian.org>2005-11-19 12:47:21 +0000
commit765697c9ece06d58afb62cabe1b533d1c0fcb2bd (patch)
treefb0fa699f3bc880b5567403b1d078ca6a1a433a9
parentc4c79048fa21fc836bddd5abccc3956ad6b6bcf9 (diff)
downloadbinutils-gdb-765697c9ece06d58afb62cabe1b533d1c0fcb2bd.tar.gz
2005-11-19 Randolph Chung <tausq@debian.org>
* hppa-hpux-tdep.c (hppa_hpux_sigtramp_unwind_sniffer): Rely on the unwind record to determine a signal frame, instead of hardcoding a function name.
-rw-r--r--gdb/ChangeLog6
-rw-r--r--gdb/hppa-hpux-tdep.c6
2 files changed, 9 insertions, 3 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 9deea608d36..c5b4a562dc8 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,11 @@
2005-11-19 Randolph Chung <tausq@debian.org>
+ * hppa-hpux-tdep.c (hppa_hpux_sigtramp_unwind_sniffer): Rely on the
+ unwind record to determine a signal frame, instead of hardcoding
+ a function name.
+
+2005-11-19 Randolph Chung <tausq@debian.org>
+
* hppa-tdep.c (skip_prologue_hard_way): Add one more insn pattern
for "std rp,-0x10(sp)".
(hppa_frame_cache): Likewise.
diff --git a/gdb/hppa-hpux-tdep.c b/gdb/hppa-hpux-tdep.c
index ed0abf9ee9e..c6cf45eebe6 100644
--- a/gdb/hppa-hpux-tdep.c
+++ b/gdb/hppa-hpux-tdep.c
@@ -1246,12 +1246,12 @@ static const struct frame_unwind hppa_hpux_sigtramp_frame_unwind = {
static const struct frame_unwind *
hppa_hpux_sigtramp_unwind_sniffer (struct frame_info *next_frame)
{
+ struct unwind_table_entry *u;
CORE_ADDR pc = frame_pc_unwind (next_frame);
- char *name;
- find_pc_partial_function (pc, &name, NULL, NULL);
+ u = find_unwind_entry (pc);
- if (name && strcmp(name, "_sigreturn") == 0)
+ if (u && u->HP_UX_interrupt_marker)
return &hppa_hpux_sigtramp_frame_unwind;
return NULL;