This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
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:
pgp9DmCwPMdZI.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |