Re: [PATCH v3 08/10] Support software single step on ARM in GDBServer.

Antoine Tremblay
2015-11-27T13:45:51Z

On 11/26/2015 11:07 AM, Antoine Tremblay wrote:
>
>
> On 11/26/2015 11:03 AM, Yao Qi wrote:
>>
>>
>> On 26/11/15 15:11, Antoine Tremblay wrote:
>>> This is the same link as the previous one...
>>>
>>
>> Oops, sorry, https://sourceware.org/ml/gdb-patches/2007-06/msg00087.html
>>
> Thanks
>
>>
>>> IMO, it is
>>>> better to use regcache than frame. We have two options,
>>>>
>>>> #1, switch from frame apis to regcache apis to access registers in
>>>> arm
>>>> software single step. We can get regcache by get_current_regcache
>>>> ().
>>

About this one, as we thought it would simplify the
collect_register_unsigned field.

It's unfortunate but it won't because GDB's collect_registers_unsigned
reads the registers and then calls extract_register_unsigned (in the
same call).

This function uses bfd enums for byte ordering and I can't use that in
GDBServer as discussed previously.

So I will not be able to directly share GDB's
collect_registers_unsigned, thus either collect_register_unsigned will
be replaced by 2 calls, one shared that fetches the register, and then a
call that extracts the integer as a different operation on GDB and
GDBserver or I will end up with the same collect_register_unsigned field
only it will be using regcache on GDBServer's side now.

And I don't think it's good to have it in 2 calls, so I will have the
same collect_register_unsigned_field...

Thus this refactoring would not simplify the patch and IMHO would create
some inconsistency why are we using regcache in some place for no
apparent gain while all the rest uses frame.

In light of this, I plan to keep it as is unless there's an objection ?

Regards,
Antoine