Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Tristan Gingold <gingold@adacore.com>
To: "<gdb-patches@sourceware.org> ml" <gdb-patches@sourceware.org>
Subject: Re: [RFA] Allow Windows UNWIND_INFO version 2.
Date: Wed, 04 Dec 2013 08:40:00 -0000	[thread overview]
Message-ID: <2FD191B1-A2C3-41ED-98B4-7D938BBE2AC8@adacore.com> (raw)
In-Reply-To: <20131203195833.GA31963@calimero.vinschen.de>


On 03 Dec 2013, at 20:58, Corinna Vinschen <vinschen@redhat.com> 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:

Clever !

It also shows AMD64_UWOP_SPARE.

Tristan.

> 
> $ 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?
> 
> 
> Corinna
> 
> -- 
> Corinna Vinschen
> Cygwin Maintainer
> Red Hat


  parent reply	other threads:[~2013-12-04  8:40 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
2013-12-04  8:40     ` Tristan Gingold [this message]
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=2FD191B1-A2C3-41ED-98B4-7D938BBE2AC8@adacore.com \
    --to=gingold@adacore.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