Fix solib-disc.exp regression with x86 gdbserver
H.J. Lu
hjl.tools@gmail.com
Mon Apr 12 13:05:00 GMT 2010
On Mon, Apr 12, 2010 at 12:45 AM, Pedro Alves <pedro@codesourcery.com> wrote:
> On Sunday 11 April 2010 22:12:08, H.J. Lu wrote:
>> This patch breaks gdbserver on AVX. We have
>>
>> 1. Connect from GDB with XML support:
>> gdbserver enables XML support.
>> 2. Disconnect.
>> 3. Reconnect from any GDB
>> a. gdberver assumes GDB doesn't support XML sets to
>> target to Linux without AVX.
>> b. Gdbserver aborts when it tries to invalidate regcache
>> since the target doesn't support AVX registers.
>>
>> I will try to fix it.
>>
>
> Then, this means we're invalidating the regcache too late.
> We're flushing the old regcache contents to the threads, that were
> created using the previous gdb's register layout, but we're flushing
> the data using the _new_ register cache layout and low target
> methods. That sounds wrong indeed.
>
> I think this would help. Or is this still too late?
>
> --
> Pedro Alves
>
> 2010-04-12 Pedro Alves <pedro@codesourcery.com>
>
> gdb/gdbserver/
> * regcache.c (set_register_cache): Invalidate regcaches before
> changing the register cache layout.
> (regcache_invalidate_one): Allow a NULL regcache.
> * linux-x86-low.c (x86_linux_update_xmltarget): Invalidate
> regcaches before changing the register cache layout or the target
> regsets.
>
It works.
Thanks.
--
H.J.
More information about the Gdb-patches
mailing list