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

From: Warner Losh <imp_at_bsdimp.com>
Date: Tue, 11 Jan 2022 00:33:32 UTC
On Mon, Jan 10, 2022 at 4:27 PM Olivier Houchard <cognet@ci0.org> wrote:

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

If there's a backend for armv7 that shows up, we can put this back :)

I was confused between hardware breakpoints and single step.

Warner