From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 8114 invoked by alias); 3 Dec 2013 20:04:40 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 8099 invoked by uid 89); 3 Dec 2013 20:04:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.1 required=5.0 tests=AWL,BAYES_50,RDNS_NONE autolearn=no version=3.3.2 X-HELO: calimero.vinschen.de Received: from Unknown (HELO calimero.vinschen.de) (217.91.18.234) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 03 Dec 2013 20:04:37 +0000 Received: by calimero.vinschen.de (Postfix, from userid 500) id 2F03D1A0677; Tue, 3 Dec 2013 21:04:29 +0100 (CET) Date: Tue, 03 Dec 2013 20:04:00 -0000 From: Corinna Vinschen To: gdb-patches@sourceware.org Subject: Re: [RFA] Allow Windows UNWIND_INFO version 2. Message-ID: <20131203200429.GB31963@calimero.vinschen.de> Reply-To: gdb-patches@sourceware.org Mail-Followup-To: gdb-patches@sourceware.org References: <1386070345-8237-1-git-send-email-brobecker@adacore.com> <529E274D.607@redhat.com> <20131203195833.GA31963@calimero.vinschen.de> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="NDin8bjvE/0mNLFQ" Content-Disposition: inline In-Reply-To: <20131203195833.GA31963@calimero.vinschen.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-IsSubscribed: yes X-SW-Source: 2013-12/txt/msg00098.txt.bz2 --NDin8bjvE/0mNLFQ Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-length: 2333 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_i= nfo *this_frame, > > > return; > > >=20=20 > > > end_insns =3D &insns[codes_count * 2]; > > > - for (p =3D insns; p < end_insns; p +=3D 2) > > > + p =3D insns; > > > + > > > + /* Skip opcodes 6 of version 2. This opcode is not documented= . */ > > > + if (PEX64_UWI_VERSION (ex_ui.Version_Flags) =3D=3D 2) > > > + { > > > + for (; p < end_insns; p +=3D 2) > > > + if (PEX64_UNWCODE_CODE (p[1]) !=3D 6) > > > + break; > > > + } > >=20 > > I'd consider merging with the existing loop, so that > > we print the opcodes when frame debug is enabled. > >=20 > > But anyway, this looks fine to me. > >=20 > > I clicked on "Did you find this helpful? No" at: > >=20 > > http://msdn.microsoft.com/en-us/library/ck9asaa9.aspx > >=20 > > and asked for info about v2 and opcode 6. Not holding > > my breath though. >=20 > Calling strings(1) on the DLLs in the Windows system32 dir on a Windows > 8.1 system reveals the following curious info: >=20 > $ 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 %I6= 4X > 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 %I6= 4X > 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 >=20 > So it looks like opcode 6 is AMD64_UWOP_EPILOG with a single 32 bit=20 > 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 --=20 Corinna Vinschen Cygwin Maintainer Red Hat --NDin8bjvE/0mNLFQ Content-Type: application/pgp-signature Content-length: 836 -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.15 (GNU/Linux) iQIcBAEBAgAGBQJSnjlNAAoJEPU2Bp2uRE+gOo0QAKF9mIODzTpwhu4fFhlpSOrN sZuQAMbZXxk1rOZSwjgoEVUlTrkjWAjCdE2biSaIN2ZiaJDXwwsEGu55AdX7a+6P fVzylV7wlR9sMfVWOcDWtQ2FvgJ9tve4QYU1sMr4Av1LHyy8mPaGhWEs3EO+Rgfc fJFSii5We6N2Wdqtl7mxfvg5Gyu1zDdKUbUTPLbjnaL5blOvsuGT+8S191fFhPr9 44a8o3eD6SaVF5sChCBb1BVhfRpKXpN1uoPPYiPZiB0AZj7yRku9rV1jbAl3rhV7 ZjtD37N8X/7sGZFObdDuCH5fMrXr8RDuflYTMitXSRV9Yi+oDfTR+W/MHyNv4eyq s3OVHAiWA540V/vN3nfwdtvb+6Tdn4vlIOlmnEYDz4Ori/TALVQl/oaQvpjJXHbH 1zPnDOBSkdGhLfg03PW/lSMebVqXNjZcEnh7V/khVC1s2u4kbMSmBBxTTHEbfmZz uMY2S/MmA3e7vRfbnduvJGsGS9P0cbiLFxQMifYPEUJGgZv+IjwQKJDJBlT/eU0p lGos9xq9/10LB2YWKCSXV4zA/0x15zrUhjxjTT01576i5DNKPEhHcXPlx0oThUa0 RmSWVXTFr1vbdT7pXLajgKGCOg+Lb0NoladqHdP154RmCVTqJvKy0uWY2LnWC5ad 9prYjorRhJY5YkdZxPzl =uQ5/ -----END PGP SIGNATURE----- --NDin8bjvE/0mNLFQ--