From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 7EE293848014; Fri, 12 Feb 2021 17:04:14 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7EE293848014 From: "vries at gcc dot gnu.org" To: gdb-prs@sourceware.org Subject: [Bug gdb/27406] New: xmm registers printed for "info registers general" when connecting to GDB_OSABI_UNKNOWN target Date: Fri, 12 Feb 2021 17:04:14 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gdb X-Bugzilla-Component: gdb X-Bugzilla-Version: HEAD X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: vries at gcc dot gnu.org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: unassigned at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gdb-prs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-prs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Feb 2021 17:04:14 -0000 https://sourceware.org/bugzilla/show_bug.cgi?id=3D27406 Bug ID: 27406 Summary: xmm registers printed for "info registers general" when connecting to GDB_OSABI_UNKNOWN target Product: gdb Version: HEAD Status: NEW Severity: normal Priority: P2 Component: gdb Assignee: unassigned at sourceware dot org Reporter: vries at gcc dot gnu.org Target Milestone: --- In one terminal, start a qemu: ... $ qemu-system-x86_64 -s ... and in other one, do: ... $ gdb -batch -ex "target remote localhost:1234" -ex "info registers general" warning: No executable has been specified and target does not support determining executable automatically. Try using the "file" command. 0x000000000000b70e in ?? () rax 0x0 0 rbx 0x0 0 rcx 0x0 0 rdx 0x0 0 rsi 0xb6f2 46834 rdi 0x0 0 rbp 0xb6f2 0xb6f2 rsp 0x6f94 0x6f94 r8 0x0 0 r9 0x0 0 r10 0x0 0 r11 0x0 0 r12 0x0 0 r13 0x0 0 r14 0x0 0 r15 0x0 0 rip 0xb70e 0xb70e eflags 0x246 [ IOPL=3D0 IF ZF PF ] cs 0xf000 61440 ss 0x0 0 ds 0x0 0 es 0xdc80 56448 fs 0x0 0 gs 0x0 0 fs_base 0x0 0 gs_base 0x0 0 k_gs_base 0x0 0 cr0 0x10 [ ET ] cr2 0x0 0 cr3 0x0 [ PDBR=3D0 PCID=3D0 ] cr4 0x0 [ ] cr8 0x0 0 efer 0x0 [ ] xmm0 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm1 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm2 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm3 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm4 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm5 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm6 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm7 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm8 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm9 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm10 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm11 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm12 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm13 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm14 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} xmm15 {v4_float =3D {0x0, 0x0, 0x0, 0x0}, v2_double =3D {0x0, 0x0}, v16_int8 =3D {0x0 }, v8_int16 =3D {0x0, 0x0, 0x0, 0x0, 0x= 0, 0x0, 0x0, 0x0}, v4_int32 =3D {0x0, 0x0, 0x0, 0x0}, v2_int64 =3D {0x0, 0x0}, uint= 128 =3D 0x0} mxcsr 0x1f80 [ IM DM ZM OM UM PM ] [Inferior 1 (process 1) detached] ... The printing for say xmm0 happens because there's a test in i386_register_reggroup_p whether it's an xmm register, which fails because tdep->num_xmm_regs =3D=3D 0, and consequently, not being an xmm register, i= t's interpreted as a general register. The tdep->num_xmm_regs =3D=3D 0 happens because of this in i386_validate_td= esc_p: ... if (feature_avx) { ... } else if (feature_sse) tdep->xcr0 =3D X86_XSTATE_SSE_MASK; else { tdep->xcr0 =3D X86_XSTATE_X87_MASK; tdep->num_xmm_regs =3D 0; } ... which is due to tdesc being: ... (gdb) p *tdesc $3 =3D { =3D {_vptr.tdesc_element =3D 0xf08bd8 },=20 arch =3D 0x1152580 , osabi =3D GDB_OSABI_UNKNOWN,=20 compatible =3D std::vector of length 0, capacity 0,=20 properties =3D std::vector of length 0, capacity 0,=20 features =3D std::vector of length 1, capacity 1 =3D {std::unique_ptr =3D { get() =3D 0x20a59b0}}, xmltarget =3D 0x0} ... which has org.gnu.gdb.i386.core as its only feature. --=20 You are receiving this mail because: You are on the CC list for the bug.=