Why enforcing sw_breakpoint_from_kind() implementation in GDBserver targets

Metzger, Markus T markus.t.metzger@intel.com
Thu Jun 18 10:29:11 GMT 2020


Hello Maciej,

> > That's the only kind of breakpoint this architecture supports.  As far as I
> understand,
> > the kind is per-target and used to distinguish different kinds of breakpoints
> supported
> > by this target.
> 
>  From your description I infer you do have different kinds of breakpoints,
> one (or more?) for each instruction.

OK, one could view it that way that we have a separate breakpoint instruction
for each instruction/operand combination.

I rather view it as a bit inside every instruction.


> > The points I was trying to make is that we're also using gdbarch breakpoints
> and that
> > in order to use z packets, we'd need insert_point() to be able to store shadow
> copies.
> > I have not looked into that since gdbarch breakpoints worked for me and would
> also
> > allow sharing the code between a native target and gdbserver.
> 
>  Why do you need to store any copy in `gdbserver'?  GDB keeps a record of
> replaced instructions, so you can use it instead.  Just send the original
> instruction as the breakpoint kind.

The breakpoint kind would depend on the ISA.  And we'd have a real lot of them.

I don't think that we'd want to encode the original instruction in the breakpoint
kind.  That's what the shadow copy inside the breakpoint object is for.

Markus.

Intel Deutschland GmbH
Registered Address: Am Campeon 10-12, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de
Managing Directors: Christin Eisenschmid, Gary Kershaw
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928


More information about the Gdb mailing list