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
commitdbd80d7a9b2395c0079eca1a26be923541e1a4b6 (patch)
tree225c293e64850af1f6945e6e9ae3e0181782e69d
parent9e9a13ae3bb5da1dd72bb5b8f49bd657e03b4917 (diff)
downloadgdb-dbd80d7a9b2395c0079eca1a26be923541e1a4b6.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;