From: Corinna Vinschen <vinschen@redhat.com>
To: gdb-patches@sourceware.org
Subject: Re: [RFA] Allow Windows UNWIND_INFO version 2.
Date: Tue, 03 Dec 2013 20:04:00 -0000 [thread overview]
Message-ID: <20131203200429.GB31963@calimero.vinschen.de> (raw)
In-Reply-To: <20131203195833.GA31963@calimero.vinschen.de>
[-- Attachment #1: Type: text/plain, Size: 2341 bytes --]
On Dec 3 20:58, Corinna Vinschen wrote:
> On Dec 3 18:47, Pedro Alves wrote:
> > On 12/03/2013 11:32 AM, Joel Brobecker wrote:
> > > @@ -696,7 +697,17 @@ amd64_windows_frame_decode_insns (struct frame_info *this_frame,
> > > return;
> > >
> > > end_insns = &insns[codes_count * 2];
> > > - for (p = insns; p < end_insns; p += 2)
> > > + p = insns;
> > > +
> > > + /* Skip opcodes 6 of version 2. This opcode is not documented. */
> > > + if (PEX64_UWI_VERSION (ex_ui.Version_Flags) == 2)
> > > + {
> > > + for (; p < end_insns; p += 2)
> > > + if (PEX64_UNWCODE_CODE (p[1]) != 6)
> > > + break;
> > > + }
> >
> > I'd consider merging with the existing loop, so that
> > we print the opcodes when frame debug is enabled.
> >
> > But anyway, this looks fine to me.
> >
> > I clicked on "Did you find this helpful? No" at:
> >
> > http://msdn.microsoft.com/en-us/library/ck9asaa9.aspx
> >
> > and asked for info about v2 and opcode 6. Not holding
> > my breath though.
>
> Calling strings(1) on the DLLs in the Windows system32 dir on a Windows
> 8.1 system reveals the following curious info:
>
> $ strings /cygdrive/c/Windows/System32/dbghelp.dll | grep UWOP
> AMD64_UWOP_PUSH_NONVOL Register %x RSP %I64X
> AMD64_UWOP_ALLOC_LARGE FrameOffs %x %x RSP %I64X + %x
> AMD64_UWOP_ALLOC_LARGE FrameOffs %x RSP %I64X + %x
> AMD64_UWOP_ALLOC_SMALL Info %x RSP %I64X
> AMD64_UWOP_SET_FPREG FrameReg %x FrameOffs %x RSP %I64X
> AMD64_UWOP_SAVE_NONVOL Register %x FrameBase %I64X FrameOffs %x RSP %I64X
> AMD64_UWOP_SAVE_NONVOL_FAR Register %x FrameBase %I64X FrameOffs %x %x RSP %I64X
> AMD64_UWOP_EPILOG OpInfo: %x
> AMD64_UWOP_SPARE OpInfo: %x FrameOffs %x
> AMD64_UWOP_SAVE_XMM128 Register %x FrameBase %I64X FrameOffs %x RSP %I64X
> AMD64_UWOP_SAVE_XMM128_FAR Register %x FrameBase %I64X FrameOffs %x %x RSP %I64X
> AMD64_UWOP_PUSH_MACHFRAME Info %x RetAddr %I64X StkAddr %I64X RSP %I64X
>
> So it looks like opcode 6 is AMD64_UWOP_EPILOG with a single 32 bit
> operation info. What 32 bit info would that be?
Sorry about that. the operation info is 4 bits, of course, I got
carried away by giving the size of a %x parameter too much meaning.
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]
next prev parent reply other threads:[~2013-12-03 20:04 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-03 11:32 Joel Brobecker
2013-12-03 18:47 ` Pedro Alves
2013-12-03 19:58 ` Corinna Vinschen
2013-12-03 20:04 ` Corinna Vinschen [this message]
2013-12-04 8:40 ` Tristan Gingold
2013-12-04 8:43 ` Tristan Gingold
2013-12-05 3:45 ` Joel Brobecker
2013-12-09 10:43 ` Corinna Vinschen
2013-12-09 11:47 ` Tristan Gingold
2013-12-09 12:11 ` Corinna Vinschen
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=20131203200429.GB31963@calimero.vinschen.de \
--to=vinschen@redhat.com \
--cc=gdb-patches@sourceware.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