Re: git: d6c0538dae8d - main - ddb: Remove SOFTWARE_SSTEP support

From: Olivier Houchard <cognet_at_ci0.org>
Date: Mon, 10 Jan 2022 23:27:00 UTC
On Mon, Jan 10, 2022 at 02:50:40PM -0800, John Baldwin wrote:
> On 1/10/22 1:37 PM, Olivier Houchard wrote:
> > On Mon, Jan 10, 2022 at 02:14:54PM -0700, Warner Losh wrote:
> >> On Mon, Jan 10, 2022 at 12:48 PM John Baldwin <jhb@freebsd.org> wrote:
> >>
> >>> On 1/7/22 8:27 AM, Warner Losh wrote:
> >>>> The branch main has been updated by imp:
> >>>>
> >>>> URL:
> >>> https://cgit.FreeBSD.org/src/commit/?id=d6c0538dae8d138219dfd051994a44c50e741212
> >>>>
> >>>> commit d6c0538dae8d138219dfd051994a44c50e741212
> >>>> Author:     Warner Losh <imp@FreeBSD.org>
> >>>> AuthorDate: 2022-01-07 16:25:33 +0000
> >>>> Commit:     Warner Losh <imp@FreeBSD.org>
> >>>> CommitDate: 2022-01-07 16:25:33 +0000
> >>>>
> >>>>       ddb: Remove SOFTWARE_SSTEP support
> >>>>
> >>>>       It was needed for mips only, and only kinda sorta worked for mips.
> >>> It
> >>>>       can be brought back if we grow another architecture that need it.
> >>>>
> >>>>       Sponsored by:           Netflix
> >>>
> >>> RISC-V would need it in theory (no hardware single step), but no one has
> >>> felt the
> >>> need to implement the backend support for it.  I think 32-bit arm doesn't
> >>> support
> >>> hardware single step either (but again, no one has bothered to add the
> >>> backend
> >>> support).
> >>>
> >>
> >> Generally, I agree with these thoughts. I went ahead with the removal
> >> because I
> >> knew it would be easy to bring back, even years from now should someone[tm]
> >> have an implementation for those platforms (though I thought 32-bit arm did
> >> have
> >> single step in hardware).
> >>
> >> Should I put it back? Or should we wait until someone shows up with support
> >> for
> >> a supported platform?
> >>
> > 
> > It was used for arm, but only older arm, ie v4/v5, pretty sure newer
> > cores do have hardware breakpoints.
> 
> They have hardware breakpoints/watchpoints, not sure if they have single step.
> 
> In GDB 32-bit arm only supports software single step, even on Linux.
> 

Seems true, the newer code just seems to use hardware breakpoints, but
the logic is the same as what was done with SOFTWARE_SSTEP.

Olivier