Re: [patch] gdbserver regcache fetch all regs

Aleksandar Ristovski
2009-06-19T15:52:43Z

Doug Evans wrote:
> On Tue, Jun 16, 2009 at 6:24 PM, Aleksandar Ristovski<aristovski@qnx.com> wrote:
>> Hello,
>>
>> I believe this is a bug in gdbserver/regcache.c
>>
>> Current code fetches regno 0 and marks regcache valid. I believe correct
>> should be: fetch all regs, and mark regache valid.
>> [...];
>> ChangeLog:
>>
>>
>> * regcache.c (get_regcache): Fetch all registers instead of
>> regno 0 only.
>>
>
> Hi. At first I thought "Yikes!". :-)
> But it turns out that all fetch_registers routines treat 0 and -1 equivalently.
> I wouldn't hold up this patch (it's fine with me fwiw), though I would
> change the ChangeLog entry to something like: "Use -1 instead of 0 to
> fetch all registers." since passing 0 does actually fetch all
> registers.

Very interesting. I see that now, but in target.h it says
quite unambiguously:

/* Fetch registers from the inferior process.

If REGNO is -1, fetch all registers; otherwise, fetch
at least REGNO. */

void (*fetch_registers) (int regno);

>
> It would be good to remove this oddity and stop the conflation of 0
> and -1, but I don't know what would break.
> We could run the testsuite and see what happens as a start.
> Does anyone know the history behind this?
>

Thanks,