From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 91443 invoked by alias); 18 Sep 2018 13:38:00 -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 91423 invoked by uid 89); 18 Sep 2018 13:37:59 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-2.4 required=5.0 tests=AWL,BAYES_00,KAM_SHORT,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy=online X-HELO: prv1-mh.provo.novell.com Received: from prv1-mh.provo.novell.com (HELO prv1-mh.provo.novell.com) (137.65.248.33) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 18 Sep 2018 13:37:57 +0000 Received: from INET-PRV1-MTA by prv1-mh.provo.novell.com with Novell_GroupWise; Tue, 18 Sep 2018 07:37:55 -0600 Message-Id: <5BA0FFB102000078001E97B0@prv1-mh.provo.novell.com> Date: Tue, 18 Sep 2018 13:38:00 -0000 From: "Jan Beulich" To: "Simon Marchi" Cc: ,, "GDB" Subject: Re: [PATCH] x86-64: fix ZMM register state tracking References: <5B8FD8B302000078001E5940@prv1-mh.provo.novell.com> <369f9b84-77e3-3fa4-f363-a89ee503cff4@ericsson.com> <5B960E3D020000780013C85E@prv1-mh.provo.novell.com> In-Reply-To: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=__PartCDF73BA1.3__=" X-SW-Source: 2018-09/txt/msg00630.txt.bz2 --=__PartCDF73BA1.3__= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Content-length: 1083 >>> On 10.09.18 at 15:01, wrote: > On 2018-09-10 07:25, Jan Beulich wrote: >>>>> Simon Marchi 09/08/18 1:13 AM >>> >>> Would it be possible to update or create a test to exercise that? >>> arch-specific tests are in testsuite/gdb.arch. >>=20 >> I'm sure it would be possible, but while I was happy to invest the time= =20 >> to >> fix the actual bug (because it affects work I'm doing), I'm afraid I=20 >> don't have >> the time to learn how gdb test cases are to be constructed (I'm=20 >> familiar >> only with the binutils / gas side of things). >=20 > I understand. If you can provide: >=20 > - a minimal source file (C + assembly in this case, I suppose) > - GDB commands to reproduce the bug > - actual and expected output Attached. vzero.s is the source file used (no C file needed). gdb.log is a transcript of a session with a broken gdb (the one installed on the system), while gdb.txt is a transcript for the fixed one that I've built myself. > I can take care of turning it in a GDB test case. Thanks. Jan --=__PartCDF73BA1.3__= Content-Type: application/octet-stream; name="vzero.s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="vzero.s" Content-length: 192 CS50ZXh0CgkuZ2xvYmFsIG1haW4KbWFpbjoKCXZwdGVybmxvZ2QgJDB4ZmYs ICV6bW0wLCAlem1tMCwgJXptbTAKCXZwdGVybmxvZ2QgJDB4ZmYsICV6bW0w LCAlem1tMCwgJXptbTE2Cgl2emVyb3VwcGVyCgl4b3IJJWVheCwgJWVheAoJ cmV0Cg== --=__PartCDF73BA1.3__= Content-Type: application/octet-stream; name="gdb.log" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="gdb.log" Content-length: 2221 W2piZXVsaWNoQGR1cy1kZXYtc2xlczE1diB+XSQgZ2NjIC1XYWxsIC1XIC1v IHZ6ZXJveywuc30gJiYgZ2RiIC4vdnplcm8KR05VIGdkYiAoR0RCOyBTVVNF IExpbnV4IEVudGVycHJpc2UgMTUpIDguMQpDb3B5cmlnaHQgKEMpIDIwMTgg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCkxpY2Vuc2UgR1BMdjMr OiBHTlUgR1BMIHZlcnNpb24gMyBvciBsYXRlciA8aHR0cDovL2dudS5vcmcv bGljZW5zZXMvZ3BsLmh0bWw+ClRoaXMgaXMgZnJlZSBzb2Z0d2FyZTogeW91 IGFyZSBmcmVlIHRvIGNoYW5nZSBhbmQgcmVkaXN0cmlidXRlIGl0LgpUaGVy ZSBpcyBOTyBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkg bGF3LiAgVHlwZSAic2hvdyBjb3B5aW5nIgphbmQgInNob3cgd2FycmFudHki IGZvciBkZXRhaWxzLgpUaGlzIEdEQiB3YXMgY29uZmlndXJlZCBhcyAieDg2 XzY0LXN1c2UtbGludXgiLgpUeXBlICJzaG93IGNvbmZpZ3VyYXRpb24iIGZv ciBjb25maWd1cmF0aW9uIGRldGFpbHMuCkZvciBidWcgcmVwb3J0aW5nIGlu c3RydWN0aW9ucywgcGxlYXNlIHNlZToKPGh0dHA6Ly9idWdzLm9wZW5zdXNl Lm9yZy8+LgpGaW5kIHRoZSBHREIgbWFudWFsIGFuZCBvdGhlciBkb2N1bWVu dGF0aW9uIHJlc291cmNlcyBvbmxpbmUgYXQ6CjxodHRwOi8vd3d3LmdudS5v cmcvc29mdHdhcmUvZ2RiL2RvY3VtZW50YXRpb24vPi4KRm9yIGhlbHAsIHR5 cGUgImhlbHAiLgpUeXBlICJhcHJvcG9zIHdvcmQiIHRvIHNlYXJjaCBmb3Ig Y29tbWFuZHMgcmVsYXRlZCB0byAid29yZCIuLi4KUmVhZGluZyBzeW1ib2xz IGZyb20gLi92emVyby4uLmRvbmUuCihnZGIpIGJyZWFrIG1haW4KQnJlYWtw b2ludCAxIGF0IDB4NDAwNDk3CihnZGIpIHIKU3RhcnRpbmcgcHJvZ3JhbTog L2hvbWUvamJldWxpY2gvdnplcm8gCgpCcmVha3BvaW50IDEsIDB4MDAwMDAw MDAwMDQwMDQ5NyBpbiBtYWluICgpCihnZGIpIGRpc3AvaSAkcGMKMjogeC9p ICRwYwo9PiAweDQwMDQ5NyA8bWFpbj46CXZwdGVybmxvZ2Qgem1tMCx6bW0w LHptbTAsMHhmZgooZ2RiKSBzaQoweDAwMDAwMDAwMDA0MDA0OWUgaW4gbWFp biAoKQoyOiB4L2kgJHBjCj0+IDB4NDAwNDllIDxtYWluKzc+Ogl2cHRlcm5s b2dkIHptbTE2LHptbTAsem1tMCwweGZmCihnZGIpIAoweDAwMDAwMDAwMDA0 MDA0YTUgaW4gbWFpbiAoKQoyOiB4L2kgJHBjCj0+IDB4NDAwNGE1IDxtYWlu KzE0PjoJdnplcm91cHBlciAKKGdkYikgcHJpbnQgJHptbTAudjE2X2ludDMy CiQxID0gey0xIDxyZXBlYXRzIDE2IHRpbWVzPn0KKGdkYikgcHJpbnQgJHpt bTE2LnYxNl9pbnQzMgokMiA9IHstMSA8cmVwZWF0cyAxNiB0aW1lcz59Cihn ZGIpIHNpCjB4MDAwMDAwMDAwMDQwMDRhOCBpbiBtYWluICgpCjI6IHgvaSAk cGMKPT4gMHg0MDA0YTggPG1haW4rMTc+Ogl4b3IgICAgZWF4LGVheAooZ2Ri KSBwcmludCAkem1tMTYudjE2X2ludDMyCiQzID0gey0xLCAtMSwgLTEsIC0x LCAtMSwgLTEsIC0xLCAtMSwgMCwgMCwgMCwgMCwgMCwgMCwgMCwgMH0KKGdk YikgcQpBIGRlYnVnZ2luZyBzZXNzaW9uIGlzIGFjdGl2ZS4KCglJbmZlcmlv ciAxIFtwcm9jZXNzIDU2ODQ0XSB3aWxsIGJlIGtpbGxlZC4KClF1aXQgYW55 d2F5PyAoeSBvciBuKSB5Cg== --=__PartCDF73BA1.3__= Content-Type: text/plain; name="gdb.txt" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="gdb.txt" Content-length: 1617 [jbeulich@dus-dev-sles15v ~]$ gcc -Wall -W -o vzero{,.s} && gdbx ./vzero GNU gdb (GDB) 8.1.1 Copyright (C) 2018 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-pc-linux-gnu". Type "show configuration" for configuration details. For bug reporting instructions, please see: . Find the GDB manual and other documentation resources online at: . For help, type "help". Type "apropos word" to search for commands related to "word"... Reading symbols from ./vzero...done. (gdb) break main Breakpoint 1 at 0x400497 (gdb) r Starting program: /home/jbeulich/vzero=20 Breakpoint 1, 0x0000000000400497 in main () (gdb) disp/i $pc 2: x/i $pc =3D> 0x400497
: vpternlogd zmm0,zmm0,zmm0,0xff (gdb) si 0x000000000040049e in main () 2: x/i $pc =3D> 0x40049e : vpternlogd zmm16,zmm0,zmm0,0xff (gdb)=20 0x00000000004004a5 in main () 2: x/i $pc =3D> 0x4004a5 : vzeroupper=20 (gdb) print $zmm0.v16_int32 $1 =3D {-1 } (gdb) print $zmm16.v16_int32 $2 =3D {-1 } (gdb) si 0x00000000004004a8 in main () 2: x/i $pc =3D> 0x4004a8 : xor eax,eax (gdb) print $zmm16.v16_int32 $3 =3D {-1 } (gdb) q A debugging session is active. Inferior 1 [process 56857] will be killed. Quit anyway? (y or n) y --=__PartCDF73BA1.3__=--