PATCH: gdbserver: Clear regcache if buf is NULL
H.J. Lu
hjl.tools@gmail.com
Sat Oct 16 20:16:00 GMT 2010
On Sat, Oct 16, 2010 at 1:00 PM, Pedro Alves <pedro@codesourcery.com> wrote:
> On Friday 01 October 2010 02:51:07, H.J. Lu wrote:
>> On Tue, Sep 28, 2010 at 1:23 PM, Pedro Alves <pedro@codesourcery.com> wrote:
>
>> > Hi H.J.. I'm looking at where in the current sources this
>> > ended up being used, and not finding it. Am I right in thinking
>> > that the need for this was obsoleted when you later tought
>> > gdbserver x86-linux about xml descriptions?
>> >
>>
>> i387-fp.c has
>>
>> if ((x86_xcr0 & I386_XSTATE_SSE))
>> {
>> int xmm0_regnum = find_regno ("xmm0");
>>
>> if ((clear_bv & I386_XSTATE_SSE))
>> p = NULL;
>> else
>> p = (char *) buf;
>>
>> for (i = 0; i < num_xmm_registers; i++)
>> {
>> if (p)
>> p = ((char *) &fp->xmm_space[0]) + i * 16;
>> supply_register (regcache, i + xmm0_regnum, p);
>> }
>> }
>>
>
> Thanks, and sorry as for not coming back to this promptly.
> Hmm, I don't think I have a way to trigger that.
> So is the registers' value really zero, or should gdb
> ideally present them as not available (and zero is just a
> hack)?
>
You will see it only on machines with XSAVE and enabled in OS.
Please see
13.6 XSAVE/XRSTOR AND PROCESSOR EXTENDED STATE
MANAGEMENT
in
Intel® 64 and IA-32 Architectures Software Developer’s Manual
Volume 3A: System Programming Guide, Part 1
Basically values in vector registers may not be valid, depending
on vector state.
--
H.J.
More information about the Gdb-patches
mailing list