service/debugger: improve CreateBreakpoint docs (#2553)
The existing documentation was a little light on details. This patch gives more insight into how the argument to this function is used and interpreted. * service/rpc2,service/debugger: more doc updates Combine debugger.CreateBreakpoint documentation with the documentation that already existed for the rpc2 server CreateBreakpoint method. Also adds more contextual information for both the server and client with links to debugger.CreateBreakpoint documentation.
This commit is contained in:
parent
d9ba60dcfe
commit
96b379b5a2
@ -626,7 +626,33 @@ func (d *Debugger) state(retLoadCfg *proc.LoadConfig) (*api.DebuggerState, error
|
||||
return state, nil
|
||||
}
|
||||
|
||||
// CreateBreakpoint creates a breakpoint.
|
||||
// CreateBreakpoint creates a breakpoint using information from the provided `requestedBp`.
|
||||
// This function accepts several different ways of specifying where and how to create the
|
||||
// breakpoint that has been requested. Any error encountered during the attempt to set the
|
||||
// breakpoint will be returned to the caller.
|
||||
//
|
||||
// The ways of specifying a breakpoint are listed below in the order they are considered by
|
||||
// this function:
|
||||
//
|
||||
// - If requestedBp.TraceReturn is true then it is expected that
|
||||
// requestedBp.Addrs will contain the list of return addresses
|
||||
// supplied by the caller.
|
||||
//
|
||||
// - If requestedBp.File is not an empty string the breakpoint
|
||||
// will be created on the specified file:line location
|
||||
//
|
||||
// - If requestedBp.FunctionName is not an empty string
|
||||
// the breakpoint will be created on the specified function:line
|
||||
// location.
|
||||
//
|
||||
// - If requestedBp.Addrs is filled it will create a logical breakpoint
|
||||
// corresponding to all specified addresses.
|
||||
//
|
||||
// - Otherwise the value specified by arg.Breakpoint.Addr will be used.
|
||||
//
|
||||
// Note that this method will use the first successful method in order to
|
||||
// create a breakpoint, so mixing different fields will not result is multiple
|
||||
// breakpoints being set.
|
||||
func (d *Debugger) CreateBreakpoint(requestedBp *api.Breakpoint) (*api.Breakpoint, error) {
|
||||
d.targetMutex.Lock()
|
||||
defer d.targetMutex.Unlock()
|
||||
|
@ -226,6 +226,10 @@ func (c *RPCClient) GetBreakpointByName(name string) (*api.Breakpoint, error) {
|
||||
return &out.Breakpoint, err
|
||||
}
|
||||
|
||||
// CreateBreakpoint will send a request to the RPC server to create a breakpoint.
|
||||
// Please refer to the documentation for `Debugger.CreateBreakpoint` for a description of how
|
||||
// the requested breakpoint parameters are interpreted and used:
|
||||
// https://pkg.go.dev/github.com/go-delve/delve/service/debugger#Debugger.CreateBreakpoint
|
||||
func (c *RPCClient) CreateBreakpoint(breakPoint *api.Breakpoint) (*api.Breakpoint, error) {
|
||||
var out CreateBreakpointOut
|
||||
err := c.call("CreateBreakpoint", CreateBreakpointIn{*breakPoint}, &out)
|
||||
|
@ -235,19 +235,10 @@ type CreateBreakpointOut struct {
|
||||
Breakpoint api.Breakpoint
|
||||
}
|
||||
|
||||
// CreateBreakpoint creates a new breakpoint.
|
||||
//
|
||||
// - If arg.Breakpoint.File is not an empty string the breakpoint
|
||||
// will be created on the specified file:line location
|
||||
//
|
||||
// - If arg.Breakpoint.FunctionName is not an empty string
|
||||
// the breakpoint will be created on the specified function:line
|
||||
// location.
|
||||
//
|
||||
// - If arg.Breakpoint.Addrs is filled it will create a logical breakpoint
|
||||
// corresponding to all specified addresses.
|
||||
//
|
||||
// - Otherwise the value specified by arg.Breakpoint.Addr will be used.
|
||||
// CreateBreakpoint creates a new breakpoint. The client is expected to populate `CreateBreakpointIn`
|
||||
// with an `api.Breakpoint` struct describing where to set the breakpoing. For more information on
|
||||
// how to properly request a breakpoint via the `api.Breakpoint` struct see the documentation for
|
||||
// `debugger.CreateBreakpoint` here: https://pkg.go.dev/github.com/go-delve/delve/service/debugger#Debugger.CreateBreakpoint.
|
||||
func (s *RPCServer) CreateBreakpoint(arg CreateBreakpointIn, out *CreateBreakpointOut) error {
|
||||
if err := api.ValidBreakpointName(arg.Breakpoint.Name); err != nil {
|
||||
return err
|
||||
|
Loading…
Reference in New Issue
Block a user