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

Yao Qi
2015-09-01T14:23:27Z

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.

>
>> --- 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.

--
Yao (齐尧)