Documentation
¶
Index ¶
Constants ¶
const ( // Continue resumes process execution. Continue = "continue" // Step continues for a single instruction, entering function calls. Step = "step" // Next continues to the next source line, not entering function calls. Next = "next" // SwitchThread switches the debugger's current thread context. SwitchThread = "switchThread" // SwitchGoroutine switches the debugger's current thread context to the thread running the specified goroutine SwitchGoroutine = "switchGoroutine" // Halt suspends the process. Halt = "halt" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Breakpoint ¶
type Breakpoint struct {
// ID is a unique identifier for the breakpoint.
ID int `json:"id"`
// Addr is the address of the breakpoint.
Addr uint64 `json:"addr"`
// File is the source file for the breakpoint.
File string `json:"file"`
// Line is a line in File for the breakpoint.
Line int `json:"line"`
// FunctionName is the name of the function at the current breakpoint, and
// may not always be available.
FunctionName string `json:"functionName,omitempty"`
// tracepoint flag
Tracepoint bool `json:"continue"`
// number of stack frames to retrieve
Stacktrace int `json:"stacktrace"`
// retrieve goroutine information
Goroutine bool `json:"goroutine"`
// variables to evaluate
Variables []string `json:"variables,omitempty"`
}
Breakpoint addresses a location at which process execution may be suspended.
func ConvertBreakpoint ¶
func ConvertBreakpoint(bp *proc.Breakpoint) *Breakpoint
convertBreakpoint converts an internal breakpoint to an API Breakpoint.
type BreakpointInfo ¶
type BreakpointInfo struct {
Stacktrace []Stackframe `json:"stacktrace,omitempty"`
Goroutine *Goroutine `json:"goroutine,omitempty"`
Variables []Variable `json:"variables,omitempty"`
Arguments []Variable `json:"arguments,omitempty"`
}
Informations about the current breakpoint
type DebuggerCommand ¶
type DebuggerCommand struct {
// Name is the command to run.
Name string `json:"name"`
// ThreadID is used to specify which thread to use with the SwitchThread
// command.
ThreadID int `json:"threadID,omitempty"`
// GoroutineID is used to specify which thread to use with the SwitchGoroutine
// command.
GoroutineID int `json:"goroutineID,omitempty"`
}
DebuggerCommand is a command which changes the debugger's execution state.
type DebuggerState ¶
type DebuggerState struct {
// Breakpoint is the current breakpoint at which the debugged process is
// suspended, and may be empty if the process is not suspended.
Breakpoint *Breakpoint `json:"breakPoint,omitempty"`
// CurrentThread is the currently selected debugger thread.
CurrentThread *Thread `json:"currentThread,omitempty"`
// SelectedGoroutine is the currently selected goroutine
SelectedGoroutine *Goroutine `json:"currentGoroutine,omitempty"`
// Information requested by the current breakpoint
BreakpointInfo *BreakpointInfo `json:"breakPointInfo,omitrempty"`
// Exited indicates whether the debugged process has exited.
Exited bool `json:"exited"`
ExitStatus int `json:"exitStatus"`
// Filled by RPCClient.Continue, indicates an error
Err error `json:"-"`
}
DebuggerState represents the current context of the debugger.
type Function ¶
type Function struct {
// Name is the function name.
Name string `json:"name"`
Value uint64 `json:"value"`
Type byte `json:"type"`
GoType uint64 `json:"goType"`
// Args are the function arguments in a thread context.
Args []Variable `json:"args"`
// Locals are the thread local variables.
Locals []Variable `json:"locals"`
}
Function represents thread-scoped function information.
func ConvertFunction ¶
type Goroutine ¶
type Goroutine struct {
// ID is a unique identifier for the goroutine.
ID int `json:"id"`
// PC is the current program counter for the goroutine.
PC uint64 `json:"pc"`
// File is the file for the program counter.
File string `json:"file"`
// Line is the line number for the program counter.
Line int `json:"line"`
// Function is function information at the program counter. May be nil.
Function *Function `json:"function,omitempty"`
}
Goroutine represents the information relevant to Delve from the runtime's internal G structure.
func ConvertGoroutine ¶
convertGoroutine converts an internal Goroutine to an API Goroutine.
type Location ¶
type Location struct {
PC uint64 `json:"pc"`
File string `json:"file"`
Line int `json:"line"`
Function *Function `json:"function,omitempty"`
}
func ConvertLocation ¶
type Stackframe ¶
func (*Stackframe) Var ¶
func (frame *Stackframe) Var(name string) *Variable
type Thread ¶
type Thread struct {
// ID is a unique identifier for the thread.
ID int `json:"id"`
// PC is the current program counter for the thread.
PC uint64 `json:"pc"`
// File is the file for the program counter.
File string `json:"file"`
// Line is the line number for the program counter.
Line int `json:"line"`
// Function is function information at the program counter. May be nil.
Function *Function `json:"function,omitempty"`
}
Thread is a thread within the debugged process.
func ConvertThread ¶
convertThread converts an internal thread to an API Thread.