Re: [PATCH 2/2] Support single step by arch or target

Antoine Tremblay
2015-09-01T15:30:18Z

On 09/01/2015 10:23 AM, Yao Qi wrote:
> Antoine Tremblay <antoine.tremblay@ericsson.com> writes:
>
>> Could we name this can_hardware_single_step instead ? Since the target
>> may be able to software single step (in gdbserver). And thus it would
>> be confusing...It would also be more consistent with the
>> supports_hardware_single_step hook ?
>>
>
> If GDBserver can do software single step, this hook should return true
> as well. Hardware single step and software single step in GDBserver
> should make no difference to GDB.
>

OK right indeed,

>>
>>> --- a/gdb/arm-linux-tdep.c
>>> +++ b/gdb/arm-linux-tdep.c
>>> @@ -917,6 +917,11 @@ arm_linux_software_single_step (struct frame_info *frame)
>>> if (arm_deal_with_atomic_sequence (frame))
>>> return 1;
>>>
>>> + /* If the target does have hardware single step, GDB doesn't have
>>> + to bother software single step. */
>>> + if (target_can_do_single_step () == 1)
>>> + return 0;
>>> +
>>> next_pc = arm_get_next_pc (frame, get_frame_pc (frame));
>>>
>>> /* The Linux kernel offers some user-mode helpers in a high page. We can
>>
>> target_can_do_single_step () should be before
>> arm_deal_with_atomic_sequence ...
>
> I am not sure we can do single step (via hardware and linux kernel)
> for arm atomic sequence , but we can't do that for aarch64, see
> aarch64-tdep.c:aarch64_software_single_step.
>

I see, thanks for the clarification.