rpc2

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 16, 2018 License: MIT Imports: 9 Imported by: 0

Documentation ¶

Index ¶

Constants ¶

This section is empty.

Variables ¶

This section is empty.

Functions ¶

This section is empty.

Types ¶

type AmendBreakpointIn ¶

type AmendBreakpointIn struct {
	Breakpoint api.Breakpoint
}

type AmendBreakpointOut ¶

type AmendBreakpointOut struct {
}

type AttachedToExistingProcessIn ¶

type AttachedToExistingProcessIn struct {
}

type AttachedToExistingProcessOut ¶

type AttachedToExistingProcessOut struct {
	Answer bool
}

type CancelNextIn ¶

type CancelNextIn struct {
}

type CancelNextOut ¶

type CancelNextOut struct {
}

type CheckpointIn ¶ added in v1.0.0

type CheckpointIn struct {
	Where string
}

type CheckpointOut ¶ added in v1.0.0

type CheckpointOut struct {
	ID int
}

type ClearBreakpointIn ¶

type ClearBreakpointIn struct {
	Id   int
	Name string
}

type ClearBreakpointOut ¶

type ClearBreakpointOut struct {
	Breakpoint *api.Breakpoint
}

type ClearCheckpointIn ¶ added in v1.0.0

type ClearCheckpointIn struct {
	ID int
}

type ClearCheckpointOut ¶ added in v1.0.0

type ClearCheckpointOut struct {
}

type CommandOut ¶

type CommandOut struct {
	State api.DebuggerState
}

type CreateBreakpointIn ¶

type CreateBreakpointIn struct {
	Breakpoint api.Breakpoint
}

type CreateBreakpointOut ¶

type CreateBreakpointOut struct {
	Breakpoint api.Breakpoint
}

type DetachIn ¶

type DetachIn struct {
	Kill bool
}

type DetachOut ¶

type DetachOut struct {
}

type DisassembleIn ¶

type DisassembleIn struct {
	Scope          api.EvalScope
	StartPC, EndPC uint64
	Flavour        api.AssemblyFlavour
}

type DisassembleOut ¶

type DisassembleOut struct {
	Disassemble api.AsmInstructions
}

type EvalIn ¶

type EvalIn struct {
	Scope api.EvalScope
	Expr  string
	Cfg   *api.LoadConfig
}

type EvalOut ¶

type EvalOut struct {
	Variable *api.Variable
}

type FindLocationIn ¶

type FindLocationIn struct {
	Scope api.EvalScope
	Loc   string
}

type FindLocationOut ¶

type FindLocationOut struct {
	Locations []api.Location
}

type GetBreakpointIn ¶

type GetBreakpointIn struct {
	Id   int
	Name string
}

type GetBreakpointOut ¶

type GetBreakpointOut struct {
	Breakpoint api.Breakpoint
}

type GetThreadIn ¶

type GetThreadIn struct {
	Id int
}

type GetThreadOut ¶

type GetThreadOut struct {
	Thread *api.Thread
}

type IsMulticlientIn ¶ added in v1.1.0

type IsMulticlientIn struct {
}

type IsMulticlientOut ¶ added in v1.1.0

type IsMulticlientOut struct {
	// IsMulticlient returns true if the headless instance was started with --accept-multiclient
	IsMulticlient bool
}

type LastModifiedIn ¶

type LastModifiedIn struct {
}

type LastModifiedOut ¶

type LastModifiedOut struct {
	Time time.Time
}

type ListBreakpointsIn ¶

type ListBreakpointsIn struct {
}

type ListBreakpointsOut ¶

type ListBreakpointsOut struct {
	Breakpoints []*api.Breakpoint
}

type ListCheckpointsIn ¶ added in v1.0.0

type ListCheckpointsIn struct {
}

type ListCheckpointsOut ¶ added in v1.0.0

type ListCheckpointsOut struct {
	Checkpoints []api.Checkpoint
}

type ListFunctionArgsIn ¶

type ListFunctionArgsIn struct {
	Scope api.EvalScope
	Cfg   api.LoadConfig
}

type ListFunctionArgsOut ¶

type ListFunctionArgsOut struct {
	Args []api.Variable
}

type ListFunctionsIn ¶

type ListFunctionsIn struct {
	Filter string
}

type ListFunctionsOut ¶

type ListFunctionsOut struct {
	Funcs []string
}

type ListGoroutinesIn ¶

type ListGoroutinesIn struct {
}

type ListGoroutinesOut ¶

type ListGoroutinesOut struct {
	Goroutines []*api.Goroutine
}

type ListLocalVarsIn ¶

type ListLocalVarsIn struct {
	Scope api.EvalScope
	Cfg   api.LoadConfig
}

type ListLocalVarsOut ¶

type ListLocalVarsOut struct {
	Variables []api.Variable
}

type ListPackageVarsIn ¶

type ListPackageVarsIn struct {
	Filter string
	Cfg    api.LoadConfig
}

type ListPackageVarsOut ¶

type ListPackageVarsOut struct {
	Variables []api.Variable
}

type ListRegistersIn ¶

type ListRegistersIn struct {
	ThreadID  int
	IncludeFp bool
}

type ListRegistersOut ¶

type ListRegistersOut struct {
	Registers string
	Regs      api.Registers
}

type ListSourcesIn ¶

type ListSourcesIn struct {
	Filter string
}

type ListSourcesOut ¶

type ListSourcesOut struct {
	Sources []string
}

type ListThreadsIn ¶

type ListThreadsIn struct {
}

type ListThreadsOut ¶

type ListThreadsOut struct {
	Threads []*api.Thread
}

type ListTypesIn ¶

type ListTypesIn struct {
	Filter string
}

type ListTypesOut ¶

type ListTypesOut struct {
	Types []string
}

type ProcessPidIn ¶

type ProcessPidIn struct {
}

type ProcessPidOut ¶

type ProcessPidOut struct {
	Pid int
}

type RPCClient ¶

type RPCClient struct {
	// contains filtered or unexported fields
}

Client is a RPC service.Client.

func NewClient ¶

func NewClient(addr string) *RPCClient

NewClient creates a new RPCClient.

func (*RPCClient) AmendBreakpoint ¶

func (c *RPCClient) AmendBreakpoint(bp *api.Breakpoint) error

func (*RPCClient) AttachedToExistingProcess ¶

func (c *RPCClient) AttachedToExistingProcess() bool

func (*RPCClient) Call ¶ added in v1.1.0

func (c *RPCClient) Call(expr string) (*api.DebuggerState, error)

func (*RPCClient) CancelNext ¶

func (c *RPCClient) CancelNext() error

func (*RPCClient) Checkpoint ¶ added in v1.0.0

func (c *RPCClient) Checkpoint(where string) (checkpointID int, err error)

Checkpoint sets a checkpoint at the current position.

func (*RPCClient) ClearBreakpoint ¶

func (c *RPCClient) ClearBreakpoint(id int) (*api.Breakpoint, error)

func (*RPCClient) ClearBreakpointByName ¶

func (c *RPCClient) ClearBreakpointByName(name string) (*api.Breakpoint, error)

func (*RPCClient) ClearCheckpoint ¶ added in v1.0.0

func (c *RPCClient) ClearCheckpoint(id int) error

ClearCheckpoint removes a checkpoint

func (*RPCClient) Continue ¶

func (c *RPCClient) Continue() <-chan *api.DebuggerState

func (*RPCClient) CreateBreakpoint ¶

func (c *RPCClient) CreateBreakpoint(breakPoint *api.Breakpoint) (*api.Breakpoint, error)

func (*RPCClient) Detach ¶

func (c *RPCClient) Detach(kill bool) error

func (*RPCClient) DisassemblePC ¶

func (c *RPCClient) DisassemblePC(scope api.EvalScope, pc uint64, flavour api.AssemblyFlavour) (api.AsmInstructions, error)

Disassemble function containing pc

func (*RPCClient) DisassembleRange ¶

func (c *RPCClient) DisassembleRange(scope api.EvalScope, startPC, endPC uint64, flavour api.AssemblyFlavour) (api.AsmInstructions, error)

Disassemble code between startPC and endPC

func (*RPCClient) Disconnect ¶ added in v1.1.0

func (c *RPCClient) Disconnect(cont bool) error

func (*RPCClient) EvalVariable ¶

func (c *RPCClient) EvalVariable(scope api.EvalScope, expr string, cfg api.LoadConfig) (*api.Variable, error)

func (*RPCClient) FindLocation ¶

func (c *RPCClient) FindLocation(scope api.EvalScope, loc string) ([]api.Location, error)

func (*RPCClient) GetBreakpoint ¶

func (c *RPCClient) GetBreakpoint(id int) (*api.Breakpoint, error)

func (*RPCClient) GetBreakpointByName ¶

func (c *RPCClient) GetBreakpointByName(name string) (*api.Breakpoint, error)

func (*RPCClient) GetState ¶

func (c *RPCClient) GetState() (*api.DebuggerState, error)

func (*RPCClient) GetStateNonBlocking ¶ added in v1.1.0

func (c *RPCClient) GetStateNonBlocking() (*api.DebuggerState, error)

func (*RPCClient) GetThread ¶

func (c *RPCClient) GetThread(id int) (*api.Thread, error)

func (*RPCClient) Halt ¶

func (c *RPCClient) Halt() (*api.DebuggerState, error)

func (*RPCClient) IsMulticlient ¶ added in v1.1.0

func (c *RPCClient) IsMulticlient() bool

func (*RPCClient) LastModified ¶

func (c *RPCClient) LastModified() time.Time

func (*RPCClient) ListBreakpoints ¶

func (c *RPCClient) ListBreakpoints() ([]*api.Breakpoint, error)

func (*RPCClient) ListCheckpoints ¶ added in v1.0.0

func (c *RPCClient) ListCheckpoints() ([]api.Checkpoint, error)

ListCheckpoints gets all checkpoints.

func (*RPCClient) ListFunctionArgs ¶

func (c *RPCClient) ListFunctionArgs(scope api.EvalScope, cfg api.LoadConfig) ([]api.Variable, error)

func (*RPCClient) ListFunctions ¶

func (c *RPCClient) ListFunctions(filter string) ([]string, error)

func (*RPCClient) ListGoroutines ¶

func (c *RPCClient) ListGoroutines() ([]*api.Goroutine, error)

func (*RPCClient) ListLocalVariables ¶

func (c *RPCClient) ListLocalVariables(scope api.EvalScope, cfg api.LoadConfig) ([]api.Variable, error)

func (*RPCClient) ListPackageVariables ¶

func (c *RPCClient) ListPackageVariables(filter string, cfg api.LoadConfig) ([]api.Variable, error)

func (*RPCClient) ListRegisters ¶

func (c *RPCClient) ListRegisters(threadID int, includeFp bool) (api.Registers, error)

func (*RPCClient) ListSources ¶

func (c *RPCClient) ListSources(filter string) ([]string, error)

func (*RPCClient) ListThreads ¶

func (c *RPCClient) ListThreads() ([]*api.Thread, error)

func (*RPCClient) ListTypes ¶

func (c *RPCClient) ListTypes(filter string) ([]string, error)

func (*RPCClient) Next ¶

func (c *RPCClient) Next() (*api.DebuggerState, error)

func (*RPCClient) ProcessPid ¶

func (c *RPCClient) ProcessPid() int

func (*RPCClient) Recorded ¶ added in v1.0.0

func (c *RPCClient) Recorded() bool

Recorded returns true if the debugger target is a recording.

func (*RPCClient) Restart ¶

func (c *RPCClient) Restart() ([]api.DiscardedBreakpoint, error)

func (*RPCClient) RestartFrom ¶ added in v1.0.0

func (c *RPCClient) RestartFrom(pos string, resetArgs bool, newArgs []string) ([]api.DiscardedBreakpoint, error)

func (*RPCClient) Rewind ¶ added in v1.0.0

func (c *RPCClient) Rewind() <-chan *api.DebuggerState

func (*RPCClient) SetReturnValuesLoadConfig ¶ added in v1.1.0

func (c *RPCClient) SetReturnValuesLoadConfig(cfg *api.LoadConfig)

func (*RPCClient) SetVariable ¶

func (c *RPCClient) SetVariable(scope api.EvalScope, symbol, value string) error

func (*RPCClient) Stacktrace ¶

func (c *RPCClient) Stacktrace(goroutineId, depth int, readDefers bool, cfg *api.LoadConfig) ([]api.Stackframe, error)

func (*RPCClient) Step ¶

func (c *RPCClient) Step() (*api.DebuggerState, error)

func (*RPCClient) StepInstruction ¶

func (c *RPCClient) StepInstruction() (*api.DebuggerState, error)

func (*RPCClient) StepOut ¶

func (c *RPCClient) StepOut() (*api.DebuggerState, error)

func (*RPCClient) SwitchGoroutine ¶

func (c *RPCClient) SwitchGoroutine(goroutineID int) (*api.DebuggerState, error)

func (*RPCClient) SwitchThread ¶

func (c *RPCClient) SwitchThread(threadID int) (*api.DebuggerState, error)

func (*RPCClient) TraceDirectory ¶ added in v1.0.0

func (c *RPCClient) TraceDirectory() (string, error)

TraceDirectory returns the path to the trace directory for a recording.

type RPCServer ¶

type RPCServer struct {
	// contains filtered or unexported fields
}

func NewServer ¶

func NewServer(config *service.Config, debugger *debugger.Debugger) *RPCServer

func (*RPCServer) AmendBreakpoint ¶

func (s *RPCServer) AmendBreakpoint(arg AmendBreakpointIn, out *AmendBreakpointOut) error

AmendBreakpoint allows user to update an existing breakpoint for example to change the information retrieved when the breakpoint is hit or to change, add or remove the break condition.

arg.Breakpoint.ID must be a valid breakpoint ID

func (*RPCServer) AttachedToExistingProcess ¶

func (c *RPCServer) AttachedToExistingProcess(arg AttachedToExistingProcessIn, out *AttachedToExistingProcessOut) error

AttachedToExistingProcess returns whether we attached to a running process or not

func (*RPCServer) CancelNext ¶

func (s *RPCServer) CancelNext(arg CancelNextIn, out *CancelNextOut) error

func (*RPCServer) Checkpoint ¶ added in v1.0.0

func (s *RPCServer) Checkpoint(arg CheckpointIn, out *CheckpointOut) error

func (*RPCServer) ClearBreakpoint ¶

func (s *RPCServer) ClearBreakpoint(arg ClearBreakpointIn, out *ClearBreakpointOut) error

ClearBreakpoint deletes a breakpoint by Name (if Name is not an empty string) or by ID.

func (*RPCServer) ClearCheckpoint ¶ added in v1.0.0

func (s *RPCServer) ClearCheckpoint(arg ClearCheckpointIn, out *ClearCheckpointOut) error

func (*RPCServer) Command ¶

func (s *RPCServer) Command(command api.DebuggerCommand, cb service.RPCCallback)

Command interrupts, continues and steps through the program.

func (*RPCServer) CreateBreakpoint ¶

func (s *RPCServer) CreateBreakpoint(arg CreateBreakpointIn, out *CreateBreakpointOut) error

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. Note that setting a breakpoint on a function's entry point (line == 0) can have surprising consequences, it is advisable to use line = -1 instead which will skip the prologue.

- Otherwise the value specified by arg.Breakpoint.Addr will be used.

func (*RPCServer) Detach ¶

func (s *RPCServer) Detach(arg DetachIn, out *DetachOut) error

Detach detaches the debugger, optionally killing the process.

func (*RPCServer) Disassemble ¶

func (c *RPCServer) Disassemble(arg DisassembleIn, out *DisassembleOut) error

Disassemble code.

If both StartPC and EndPC are non-zero the specified range will be disassembled, otherwise the function containing StartPC will be disassembled.

Scope is used to mark the instruction the specified goroutine is stopped at.

Disassemble will also try to calculate the destination address of an absolute indirect CALL if it happens to be the instruction the selected goroutine is stopped at.

func (*RPCServer) Eval ¶

func (s *RPCServer) Eval(arg EvalIn, out *EvalOut) error

EvalVariable returns a variable in the specified context.

See https://github.com/derekparker/delve/wiki/Expressions for a description of acceptable values of arg.Expr.

func (*RPCServer) FindLocation ¶

func (c *RPCServer) FindLocation(arg FindLocationIn, out *FindLocationOut) error

FindLocation returns concrete location information described by a location expression

loc ::= <filename>:<line> | <function>[:<line>] | /<regex>/ | (+|-)<offset> | <line> | *<address>
* <filename> can be the full path of a file or just a suffix
* <function> ::= <package>.<receiver type>.<name> | <package>.(*<receiver type>).<name> | <receiver type>.<name> | <package>.<name> | (*<receiver type>).<name> | <name>
* <function> must be unambiguous
* /<regex>/ will return a location for each function matched by regex
* +<offset> returns a location for the line that is <offset> lines after the current line
* -<offset> returns a location for the line that is <offset> lines before the current line
* <line> returns a location for a line in the current file
* *<address> returns the location corresponding to the specified address

NOTE: this function does not actually set breakpoints.

func (*RPCServer) GetBreakpoint ¶

func (s *RPCServer) GetBreakpoint(arg GetBreakpointIn, out *GetBreakpointOut) error

GetBreakpoint gets a breakpoint by Name (if Name is not an empty string) or by ID.

func (*RPCServer) GetThread ¶

func (s *RPCServer) GetThread(arg GetThreadIn, out *GetThreadOut) error

GetThread gets a thread by its ID.

func (*RPCServer) IsMulticlient ¶ added in v1.1.0

func (s *RPCServer) IsMulticlient(arg IsMulticlientIn, out *IsMulticlientOut) error

func (*RPCServer) LastModified ¶

func (s *RPCServer) LastModified(arg LastModifiedIn, out *LastModifiedOut) error

func (*RPCServer) ListBreakpoints ¶

func (s *RPCServer) ListBreakpoints(arg ListBreakpointsIn, out *ListBreakpointsOut) error

ListBreakpoints gets all breakpoints.

func (*RPCServer) ListCheckpoints ¶ added in v1.0.0

func (s *RPCServer) ListCheckpoints(arg ListCheckpointsIn, out *ListCheckpointsOut) error

func (*RPCServer) ListFunctionArgs ¶

func (s *RPCServer) ListFunctionArgs(arg ListFunctionArgsIn, out *ListFunctionArgsOut) error

ListFunctionArgs lists all arguments to the current function

func (*RPCServer) ListFunctions ¶

func (s *RPCServer) ListFunctions(arg ListFunctionsIn, out *ListFunctionsOut) error

ListFunctions lists all functions in the process matching filter.

func (*RPCServer) ListGoroutines ¶

func (s *RPCServer) ListGoroutines(arg ListGoroutinesIn, out *ListGoroutinesOut) error

ListGoroutines lists all goroutines.

func (*RPCServer) ListLocalVars ¶

func (s *RPCServer) ListLocalVars(arg ListLocalVarsIn, out *ListLocalVarsOut) error

ListLocalVars lists all local variables in scope.

func (*RPCServer) ListPackageVars ¶

func (s *RPCServer) ListPackageVars(arg ListPackageVarsIn, out *ListPackageVarsOut) error

ListPackageVars lists all package variables in the context of the current thread.

func (*RPCServer) ListRegisters ¶

func (s *RPCServer) ListRegisters(arg ListRegistersIn, out *ListRegistersOut) error

ListRegisters lists registers and their values.

func (*RPCServer) ListSources ¶

func (s *RPCServer) ListSources(arg ListSourcesIn, out *ListSourcesOut) error

ListSources lists all source files in the process matching filter.

func (*RPCServer) ListThreads ¶

func (s *RPCServer) ListThreads(arg ListThreadsIn, out *ListThreadsOut) (err error)

ListThreads lists all threads.

func (*RPCServer) ListTypes ¶

func (s *RPCServer) ListTypes(arg ListTypesIn, out *ListTypesOut) error

ListTypes lists all types in the process matching filter.

func (*RPCServer) ProcessPid ¶

func (s *RPCServer) ProcessPid(arg ProcessPidIn, out *ProcessPidOut) error

ProcessPid returns the pid of the process we are debugging.

func (*RPCServer) Recorded ¶ added in v1.0.0

func (s *RPCServer) Recorded(arg RecordedIn, out *RecordedOut) error

func (*RPCServer) Restart ¶

func (s *RPCServer) Restart(arg RestartIn, out *RestartOut) error

Restart restarts program.

func (*RPCServer) Set ¶

func (s *RPCServer) Set(arg SetIn, out *SetOut) error

Set sets the value of a variable. Only numerical types and pointers are currently supported.

func (*RPCServer) Stacktrace ¶

func (s *RPCServer) Stacktrace(arg StacktraceIn, out *StacktraceOut) error

Stacktrace returns stacktrace of goroutine Id up to the specified Depth.

If Full is set it will also the variable of all local variables and function arguments of all stack frames.

func (*RPCServer) State ¶

func (s *RPCServer) State(arg StateIn, out *StateOut) error

State returns the current debugger state.

type RecordedIn ¶ added in v1.0.0

type RecordedIn struct {
}

type RecordedOut ¶ added in v1.0.0

type RecordedOut struct {
	Recorded       bool
	TraceDirectory string
}

type RestartIn ¶

type RestartIn struct {
	// Position to restart from, if it starts with 'c' it's a checkpoint ID,
	// otherwise it's an event number. Only valid for recorded targets.
	Position string

	// ResetArgs tell whether NewArgs should take effect.
	ResetArgs bool
	// NewArgs are arguments to launch a new process.  They replace only the
	// argv[1] and later. Argv[0] cannot be changed.
	NewArgs []string
}

type RestartOut ¶

type RestartOut struct {
	DiscardedBreakpoints []api.DiscardedBreakpoint
}

type SetIn ¶

type SetIn struct {
	Scope  api.EvalScope
	Symbol string
	Value  string
}

type SetOut ¶

type SetOut struct {
}

type StacktraceIn ¶

type StacktraceIn struct {
	Id     int
	Depth  int
	Full   bool
	Defers bool // read deferred functions
	Cfg    *api.LoadConfig
}

type StacktraceOut ¶

type StacktraceOut struct {
	Locations []api.Stackframe
}

type StateIn ¶

type StateIn struct {
	// If NonBlocking is true State will return immediately even if the target process is running.
	NonBlocking bool
}

type StateOut ¶

type StateOut struct {
	State *api.DebuggerState
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL