RE: gdb prints only 128 bits of a YMM register (AVX)

"Tedeschi, Walfred" <[email protected]>
Newsgroups gmane.comp.gdb.devel,gmane.comp.gdb.general
Message-ID <AC542571535E904D8E8ADAE745D60B194446FDCB@IRSMSX104.ger.corp.intel.com>
Hello Laurent,

I did not understand how you are trying to see register values from the example bellow.

Have you used print $ymm0 or info register?

Thanks and regards,
-Fred

-----Original Message-----
From: [email protected] [mailto:[email protected]] On Behalf Of Laurent ML
Sent: Monday, July 27, 2015 2:48 PM
To: [email protected]
Subject: gdb prints only 128 bits of a YMM register (AVX)

Hello,

I have created a small C program that uses AVX extensions, and I have compiled it with options -03 -mavx.
Next I used GDB to print the content of YMM registers, but each time I print the content of one of the YMM register, gdb prints only the highest 128 bits of the registers:

Breakpoint 1, 0x0000000000400a70 in func2_compare_32bitsPack ()
$1 = ">"
$2 = {0xffffffffffff00000000000000000000, 0x00000000000000000000000000000000}
$3 = {0x0000000000006e6f73697261706d6f43, 0x00000000000000000000000000000000}
$4 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$5 = {0x000000000000ff000000000000ffffff, 0x00000000000000000000000000000000}
$6 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$7 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$8 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$9 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$10 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$11 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$12 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$13 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$14 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$15 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$16 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}
$17 = {0x00000000000000000000000000000000, 0x00000000000000000000000000000000}

Is there a way to get the last part of the register ?

I used gdb on EL7 :
$ gdb -v
GNU gdb (GDB) Red Hat Enterprise Linux 7.6.1-64.el7

Thanks for your help.
Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Prof. Dr. Hermann Eul
Chairperson of the Supervisory Board: Tiffany Doon Silva
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.