From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: randolph@tausq.org
Cc: gdb-patches@sources.redhat.com
Subject: Re: [hpux] Improve sigtramp frame identification
Date: Tue, 13 Dec 2005 20:20:00 -0000 [thread overview]
Message-ID: <200512111917.jBBJHciL007616@elgar.sibelius.xs4all.nl> (raw)
In-Reply-To: <439C3A10.8090103@tausq.org> (message from Randolph Chung on Sun, 11 Dec 2005 22:39:12 +0800)
> Date: Sun, 11 Dec 2005 22:39:12 +0800
> From: Randolph Chung <randolph@tausq.org>
>
> > Hmm, here's an alternative approach: if we're in an export stub, look
> > if the stub leads us to a function that has HP_UX_interrupt_marker set
> > in its unwind record. This makes us read an instruction from the
> > inferior, but it should be pretty robust.
> >
> > ok?
>
> Hrm, this seems to assume that you are sitting at a specific insn of the
> export stub when doing unwinding. We should be able to unwind from any
> insn in the export stub, right?
Uh, yes, you're right. The attached patch works indeed better. That
bit ok now?
> > Now that signal trampolines get detected again on HP-UX 10.20, I
> > noticed another recent change that seems to have broken things. Your
> > recent overhaul of hppa_hpux_sigtramp_frame_unwind_cache added these
> > two lines:
> >
> > info->saved_regs[HPPA_PCOQ_HEAD_REGNUM].addr =
> > info->saved_regs[HPPA_RP_REGNUM].addr;
> >
> > This breaks stuff, since at least on HP-UX 10.20 %pcoqh as read from
> > the signal state is correct. And I have a hard time believing that
> > this would be different on HP-UX 11.xx. Can you explain why you added
> > this?
>
> You are right, I shouldn't have added that. I thought this fixed a
> problem with signal frame unwinding when I was looking at
> hppa64-hp-hpux11.11, but actually I think something else is broken.
> Sorry for not testing this more thoroughly before committing. I'll back
> out that change tomorrow.
Thanks!
Mark
Index: hppa-hpux-tdep.c
===================================================================
RCS file: /cvs/src/src/gdb/hppa-hpux-tdep.c,v
retrieving revision 1.45
diff -u -p -r1.45 hppa-hpux-tdep.c
--- hppa-hpux-tdep.c 19 Nov 2005 12:55:55 -0000 1.45
+++ hppa-hpux-tdep.c 11 Dec 2005 19:14:14 -0000
@@ -1233,9 +1233,6 @@ hppa_hpux_sigtramp_frame_unwind_cache (s
/* TODO: fp regs */
- info->saved_regs[HPPA_PCOQ_HEAD_REGNUM].addr =
- info->saved_regs[HPPA_RP_REGNUM].addr;
-
info->base = frame_unwind_register_unsigned (next_frame, HPPA_SP_REGNUM);
return info;
@@ -1279,6 +1276,22 @@ hppa_hpux_sigtramp_unwind_sniffer (struc
u = find_unwind_entry (pc);
+ /* If this is an export stub, try to get the unwind descriptor for
+ the actual function itself. */
+ if (u && u->stub_unwind.stub_type == EXPORT)
+ {
+ gdb_byte buf[HPPA_INSN_SIZE];
+ unsigned long insn;
+
+ if (!safe_frame_unwind_memory (next_frame, u->region_start,
+ buf, sizeof buf))
+ return NULL;
+
+ insn = extract_unsigned_integer (buf, sizeof buf);
+ if ((insn & 0xffe0e000) == 0xe8400000)
+ u = find_unwind_entry(u->region_start + hppa_extract_17 (insn) + 8);
+ }
+
if (u && u->HP_UX_interrupt_marker)
return &hppa_hpux_sigtramp_frame_unwind;
next prev parent reply other threads:[~2005-12-11 19:17 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-19 16:06 Randolph Chung
2005-12-07 1:18 ` Mark Kettenis
2005-12-07 17:54 ` Randolph Chung
2005-12-13 10:00 ` Mark Kettenis
2005-12-13 10:06 ` Randolph Chung
2005-12-13 20:20 ` Mark Kettenis [this message]
2005-12-13 20:35 ` Randolph Chung
2005-12-07 19:31 ` Randolph Chung
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200512111917.jBBJHciL007616@elgar.sibelius.xs4all.nl \
--to=mark.kettenis@xs4all.nl \
--cc=gdb-patches@sources.redhat.com \
--cc=randolph@tausq.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox