Documentation
¶
Index ¶
- Variables
- func JoinPath(base string, other string) string
- func StartSession(conn io.ReadWriteCloser, handler Handler, debuglog bool)
- type Handler
- type Helper
- type Session
- type StdioReadWriteCloser
- type VMPrepareFunc
- type YODKHandler
- func (h *YODKHandler) OnAttachRequest(arguments *dap.AttachRequestArguments) error
- func (h *YODKHandler) OnBreakpointLocationsRequest(arguments *dap.BreakpointLocationsArguments) (*dap.BreakpointLocationsResponseBody, error)
- func (h *YODKHandler) OnCancelRequest(arguments *dap.CancelArguments) error
- func (h *YODKHandler) OnCompletionsRequest(arguments *dap.CompletionsArguments) (*dap.CompletionsResponseBody, error)
- func (h *YODKHandler) OnConfigurationDoneRequest(arguments *dap.ConfigurationDoneArguments) error
- func (h *YODKHandler) OnContinueRequest(arguments *dap.ContinueArguments) (*dap.ContinueResponseBody, error)
- func (h *YODKHandler) OnDataBreakpointInfoRequest(arguments *dap.DataBreakpointInfoArguments) (*dap.DataBreakpointInfoResponseBody, error)
- func (h *YODKHandler) OnDisassembleRequest(arguments *dap.DisassembleArguments) (*dap.DisassembleResponseBody, error)
- func (h *YODKHandler) OnDisconnectRequest(arguments *dap.DisconnectArguments) error
- func (h *YODKHandler) OnEvaluateRequest(arguments *dap.EvaluateArguments) (*dap.EvaluateResponseBody, error)
- func (h *YODKHandler) OnExceptionInfoRequest(arguments *dap.ExceptionInfoArguments) (*dap.ExceptionInfoResponseBody, error)
- func (h *YODKHandler) OnGotoRequest(arguments *dap.GotoArguments) error
- func (h *YODKHandler) OnGotoTargetsRequest(arguments *dap.GotoTargetsArguments) (*dap.GotoTargetsResponseBody, error)
- func (h *YODKHandler) OnInitializeRequest(arguments *dap.InitializeRequestArguments) (*dap.Capabilities, error)
- func (h *YODKHandler) OnLaunchRequest(arguments map[string]interface{}) error
- func (h *YODKHandler) OnLoadedSourcesRequest(arguments *dap.LoadedSourcesArguments) (*dap.LoadedSourcesResponseBody, error)
- func (h *YODKHandler) OnNextRequest(arguments *dap.NextArguments) error
- func (h *YODKHandler) OnPauseRequest(arguments *dap.PauseArguments) error
- func (h *YODKHandler) OnReadMemoryRequest(arguments *dap.ReadMemoryArguments) (*dap.ReadMemoryResponseBody, error)
- func (h *YODKHandler) OnRestartFrameRequest(arguments *dap.RestartFrameArguments) error
- func (h *YODKHandler) OnRestartRequest(arguments *dap.RestartArguments) error
- func (h *YODKHandler) OnReverseContinueRequest(arguments *dap.ReverseContinueArguments) error
- func (h *YODKHandler) OnScopesRequest(arguments *dap.ScopesArguments) (*dap.ScopesResponseBody, error)
- func (h *YODKHandler) OnSetBreakpointsRequest(arguments *dap.SetBreakpointsArguments) (*dap.SetBreakpointsResponseBody, error)
- func (h *YODKHandler) OnSetDataBreakpointsRequest(arguments *dap.SetDataBreakpointsArguments) (*dap.SetDataBreakpointsResponseBody, error)
- func (h *YODKHandler) OnSetExceptionBreakpointsRequest(arguments *dap.SetExceptionBreakpointsArguments) error
- func (h *YODKHandler) OnSetExpressionRequest(arguments *dap.SetExpressionArguments) (*dap.SetExpressionResponseBody, error)
- func (h *YODKHandler) OnSetFunctionBreakpointsRequest(arguments *dap.SetFunctionBreakpointsArguments) (*dap.SetFunctionBreakpointsResponseBody, error)
- func (h *YODKHandler) OnSetVariableRequest(arguments *dap.SetVariableArguments) (*dap.SetVariableResponseBody, error)
- func (h *YODKHandler) OnSourceRequest(arguments *dap.SourceArguments) (*dap.SourceResponseBody, error)
- func (h *YODKHandler) OnStackTraceRequest(arguments *dap.StackTraceArguments) (*dap.StackTraceResponseBody, error)
- func (h *YODKHandler) OnStepBackRequest(arguments *dap.StepBackArguments) error
- func (h *YODKHandler) OnStepInRequest(arguments *dap.StepInArguments) error
- func (h *YODKHandler) OnStepInTargetsRequest(arguments *dap.StepInTargetsArguments) (*dap.StepInTargetsResponseBody, error)
- func (h *YODKHandler) OnStepOutRequest(arguments *dap.StepOutArguments) error
- func (h *YODKHandler) OnTerminateRequest(arguments *dap.TerminateArguments) error
- func (h *YODKHandler) OnTerminateThreadsRequest(arguments *dap.TerminateThreadsArguments) error
- func (h *YODKHandler) OnThreadsRequest() (*dap.ThreadsResponseBody, error)
- func (h *YODKHandler) OnVariablesRequest(arguments *dap.VariablesArguments) (*dap.VariablesResponseBody, error)
- func (h *YODKHandler) SetSession(s *Session)
Constants ¶
This section is empty.
Variables ¶
var ErrNotImplemented = errors.New("This call has not been implemented")
ErrNotImplemented is returned by a handler if the called method is not implemented
Functions ¶
func JoinPath ¶
JoinPath wraps filepath.Join, but returns only the second part if the second part is an absolute path
func StartSession ¶
func StartSession(conn io.ReadWriteCloser, handler Handler, debuglog bool)
StartSession handles a session with a single client. It reads and decodes the incoming data and dispatches it to per-request processing goroutines. It also launches the sender goroutine to send resulting messages over the connection back to the client. If debuglog is true, all incoming and outgoing messages are logged
Types ¶
type Handler ¶
type Handler interface { SetSession(s *Session) OnInitializeRequest(arguments *dap.InitializeRequestArguments) (*dap.Capabilities, error) OnLaunchRequest(arguments map[string]interface{}) error OnAttachRequest(arguments *dap.AttachRequestArguments) error OnDisconnectRequest(arguments *dap.DisconnectArguments) error OnTerminateRequest(arguments *dap.TerminateArguments) error OnRestartRequest(arguments *dap.RestartArguments) error OnSetBreakpointsRequest(arguments *dap.SetBreakpointsArguments) (*dap.SetBreakpointsResponseBody, error) OnSetFunctionBreakpointsRequest(arguments *dap.SetFunctionBreakpointsArguments) (*dap.SetFunctionBreakpointsResponseBody, error) OnSetExceptionBreakpointsRequest(arguments *dap.SetExceptionBreakpointsArguments) error OnConfigurationDoneRequest(arguments *dap.ConfigurationDoneArguments) error OnContinueRequest(arguments *dap.ContinueArguments) (*dap.ContinueResponseBody, error) OnNextRequest(arguments *dap.NextArguments) error OnStepInRequest(arguments *dap.StepInArguments) error OnStepOutRequest(arguments *dap.StepOutArguments) error OnStepBackRequest(arguments *dap.StepBackArguments) error OnReverseContinueRequest(arguments *dap.ReverseContinueArguments) error OnRestartFrameRequest(arguments *dap.RestartFrameArguments) error OnGotoRequest(arguments *dap.GotoArguments) error OnPauseRequest(arguments *dap.PauseArguments) error OnStackTraceRequest(arguments *dap.StackTraceArguments) (*dap.StackTraceResponseBody, error) OnScopesRequest(arguments *dap.ScopesArguments) (*dap.ScopesResponseBody, error) OnVariablesRequest(arguments *dap.VariablesArguments) (*dap.VariablesResponseBody, error) OnSetVariableRequest(arguments *dap.SetVariableArguments) (*dap.SetVariableResponseBody, error) OnSetExpressionRequest(arguments *dap.SetExpressionArguments) (*dap.SetExpressionResponseBody, error) OnSourceRequest(arguments *dap.SourceArguments) (*dap.SourceResponseBody, error) OnThreadsRequest() (*dap.ThreadsResponseBody, error) OnTerminateThreadsRequest(arguments *dap.TerminateThreadsArguments) error OnEvaluateRequest(arguments *dap.EvaluateArguments) (*dap.EvaluateResponseBody, error) OnStepInTargetsRequest(arguments *dap.StepInTargetsArguments) (*dap.StepInTargetsResponseBody, error) OnGotoTargetsRequest(arguments *dap.GotoTargetsArguments) (*dap.GotoTargetsResponseBody, error) OnCompletionsRequest(arguments *dap.CompletionsArguments) (*dap.CompletionsResponseBody, error) OnExceptionInfoRequest(arguments *dap.ExceptionInfoArguments) (*dap.ExceptionInfoResponseBody, error) OnLoadedSourcesRequest(arguments *dap.LoadedSourcesArguments) (*dap.LoadedSourcesResponseBody, error) OnDataBreakpointInfoRequest(arguments *dap.DataBreakpointInfoArguments) (*dap.DataBreakpointInfoResponseBody, error) OnSetDataBreakpointsRequest(arguments *dap.SetDataBreakpointsArguments) (*dap.SetDataBreakpointsResponseBody, error) OnReadMemoryRequest(arguments *dap.ReadMemoryArguments) (*dap.ReadMemoryResponseBody, error) OnDisassembleRequest(arguments *dap.DisassembleArguments) (*dap.DisassembleResponseBody, error) OnCancelRequest(arguments *dap.CancelArguments) error OnBreakpointLocationsRequest(arguments *dap.BreakpointLocationsArguments) (*dap.BreakpointLocationsResponseBody, error) }
Handler defines an interface that debug adapter protocol handlers must implement
func NewYODKHandler ¶
func NewYODKHandler() Handler
NewYODKHandler returns a new handler connected to the given session
type Helper ¶
type Helper struct { // index of the current script (the script targeted by commands) // used to index into vms, inputScripts and scriptFileNames CurrentScript int // the coordinater to coordinate the running vms Coordinator *vm.Coordinator // source code of the running Scripts Scripts []string // names of the running scripts ScriptNames []string // list of Vms for the running scripts Vms []*vm.VM // list of variable translations for the VMs // used to undo variable shortening performed by nolol using compilation VariableTranslations []map[string]string // number of the case in the given test to execute CaseNumber int // a folder all script paths are relative to Worspace string // a set of vms that have finished execution. This list is NOT managed by the Helper-class FinishedVMs map[int]bool // ValidBreakpoints contains a set of valid-breakpoint-locations for each script. // If no value is returned for a script, all breakpoints are valid. // This is needed because in a nolol-script not every line is valid for a breakpoint ValidBreakpoints map[int]map[int]bool // CompiledCode contains the generated yolol-code for for VMs that are running NOLOL CompiledCode map[int]string // If set to true, runtime-errors should not interrupt script execution IgnoreErrs bool // Contains a local variables used in a specific script LocalVars [][]string // Contains all global variables used in a specific script GlobalVars []string }
Helper bundles a lot of stuff you need to debuy yolol/nolol-code
func FromScripts ¶
func FromScripts(workspace string, scripts []string, prepareVM VMPrepareFunc) (*Helper, error)
FromScripts receives a list of yolol/nolol filenames and creates a Helper from them
func FromTest ¶
func FromTest(workspace string, testfile string, casenr int, prepareVM VMPrepareFunc) (*Helper, error)
FromTest creates a Helper from the given test-file
func (Helper) ReverseVarnameTranslation ¶ added in v0.0.17
ReverseVarnameTranslation returns the compiled name of a variable, given the original (source) name
func (Helper) ScriptIndexByName ¶
ScriptIndexByName returns the index of the script with the given name
func (Helper) ScriptIndexByPath ¶
ScriptIndexByPath returns the index of the script with the given path
type Session ¶
type Session struct {
// contains filtered or unexported fields
}
Session handles a single debugging-session.
type StdioReadWriteCloser ¶
type StdioReadWriteCloser struct { }
StdioReadWriteCloser is a ReadWriteCloser for reading from stdin and writing to stdout If Log is true, all incoming and outgoing data is logged
func (StdioReadWriteCloser) Close ¶
func (s StdioReadWriteCloser) Close() error
Close closes stdin and stdout
type VMPrepareFunc ¶
VMPrepareFunc receives a VM and prepares it for debugging (set error handlers etc.)
type YODKHandler ¶
type YODKHandler struct {
// contains filtered or unexported fields
}
YODKHandler implements the handler-functions for a debug-session
func (*YODKHandler) OnAttachRequest ¶
func (h *YODKHandler) OnAttachRequest(arguments *dap.AttachRequestArguments) error
OnAttachRequest implements the Handler interface
func (*YODKHandler) OnBreakpointLocationsRequest ¶
func (h *YODKHandler) OnBreakpointLocationsRequest(arguments *dap.BreakpointLocationsArguments) (*dap.BreakpointLocationsResponseBody, error)
OnBreakpointLocationsRequest implements the Handler interface
func (*YODKHandler) OnCancelRequest ¶
func (h *YODKHandler) OnCancelRequest(arguments *dap.CancelArguments) error
OnCancelRequest implements the Handler interface
func (*YODKHandler) OnCompletionsRequest ¶
func (h *YODKHandler) OnCompletionsRequest(arguments *dap.CompletionsArguments) (*dap.CompletionsResponseBody, error)
OnCompletionsRequest implements the Handler interface
func (*YODKHandler) OnConfigurationDoneRequest ¶
func (h *YODKHandler) OnConfigurationDoneRequest(arguments *dap.ConfigurationDoneArguments) error
OnConfigurationDoneRequest implements the Handler interface
func (*YODKHandler) OnContinueRequest ¶
func (h *YODKHandler) OnContinueRequest(arguments *dap.ContinueArguments) (*dap.ContinueResponseBody, error)
OnContinueRequest implements the Handler interface
func (*YODKHandler) OnDataBreakpointInfoRequest ¶
func (h *YODKHandler) OnDataBreakpointInfoRequest(arguments *dap.DataBreakpointInfoArguments) (*dap.DataBreakpointInfoResponseBody, error)
OnDataBreakpointInfoRequest implements the Handler interface
func (*YODKHandler) OnDisassembleRequest ¶
func (h *YODKHandler) OnDisassembleRequest(arguments *dap.DisassembleArguments) (*dap.DisassembleResponseBody, error)
OnDisassembleRequest implements the Handler interface
func (*YODKHandler) OnDisconnectRequest ¶
func (h *YODKHandler) OnDisconnectRequest(arguments *dap.DisconnectArguments) error
OnDisconnectRequest implements the Handler interface
func (*YODKHandler) OnEvaluateRequest ¶
func (h *YODKHandler) OnEvaluateRequest(arguments *dap.EvaluateArguments) (*dap.EvaluateResponseBody, error)
OnEvaluateRequest implements the Handler interface
func (*YODKHandler) OnExceptionInfoRequest ¶
func (h *YODKHandler) OnExceptionInfoRequest(arguments *dap.ExceptionInfoArguments) (*dap.ExceptionInfoResponseBody, error)
OnExceptionInfoRequest implements the Handler interface
func (*YODKHandler) OnGotoRequest ¶
func (h *YODKHandler) OnGotoRequest(arguments *dap.GotoArguments) error
OnGotoRequest implements the Handler interface
func (*YODKHandler) OnGotoTargetsRequest ¶
func (h *YODKHandler) OnGotoTargetsRequest(arguments *dap.GotoTargetsArguments) (*dap.GotoTargetsResponseBody, error)
OnGotoTargetsRequest implements the Handler interface
func (*YODKHandler) OnInitializeRequest ¶
func (h *YODKHandler) OnInitializeRequest(arguments *dap.InitializeRequestArguments) (*dap.Capabilities, error)
OnInitializeRequest implements the Handler interface
func (*YODKHandler) OnLaunchRequest ¶
func (h *YODKHandler) OnLaunchRequest(arguments map[string]interface{}) error
OnLaunchRequest implements the Handler interface
func (*YODKHandler) OnLoadedSourcesRequest ¶
func (h *YODKHandler) OnLoadedSourcesRequest(arguments *dap.LoadedSourcesArguments) (*dap.LoadedSourcesResponseBody, error)
OnLoadedSourcesRequest implements the Handler interface
func (*YODKHandler) OnNextRequest ¶
func (h *YODKHandler) OnNextRequest(arguments *dap.NextArguments) error
OnNextRequest implements the Handler interface
func (*YODKHandler) OnPauseRequest ¶
func (h *YODKHandler) OnPauseRequest(arguments *dap.PauseArguments) error
OnPauseRequest implements the Handler interface
func (*YODKHandler) OnReadMemoryRequest ¶
func (h *YODKHandler) OnReadMemoryRequest(arguments *dap.ReadMemoryArguments) (*dap.ReadMemoryResponseBody, error)
OnReadMemoryRequest implements the Handler interface
func (*YODKHandler) OnRestartFrameRequest ¶
func (h *YODKHandler) OnRestartFrameRequest(arguments *dap.RestartFrameArguments) error
OnRestartFrameRequest implements the Handler interface
func (*YODKHandler) OnRestartRequest ¶
func (h *YODKHandler) OnRestartRequest(arguments *dap.RestartArguments) error
OnRestartRequest implements the Handler interface
func (*YODKHandler) OnReverseContinueRequest ¶
func (h *YODKHandler) OnReverseContinueRequest(arguments *dap.ReverseContinueArguments) error
OnReverseContinueRequest implements the Handler interface
func (*YODKHandler) OnScopesRequest ¶
func (h *YODKHandler) OnScopesRequest(arguments *dap.ScopesArguments) (*dap.ScopesResponseBody, error)
OnScopesRequest implements the Handler interface
func (*YODKHandler) OnSetBreakpointsRequest ¶
func (h *YODKHandler) OnSetBreakpointsRequest(arguments *dap.SetBreakpointsArguments) (*dap.SetBreakpointsResponseBody, error)
OnSetBreakpointsRequest implements the Handler interface
func (*YODKHandler) OnSetDataBreakpointsRequest ¶
func (h *YODKHandler) OnSetDataBreakpointsRequest(arguments *dap.SetDataBreakpointsArguments) (*dap.SetDataBreakpointsResponseBody, error)
OnSetDataBreakpointsRequest implements the Handler interface
func (*YODKHandler) OnSetExceptionBreakpointsRequest ¶
func (h *YODKHandler) OnSetExceptionBreakpointsRequest(arguments *dap.SetExceptionBreakpointsArguments) error
OnSetExceptionBreakpointsRequest implements the Handler interface
func (*YODKHandler) OnSetExpressionRequest ¶
func (h *YODKHandler) OnSetExpressionRequest(arguments *dap.SetExpressionArguments) (*dap.SetExpressionResponseBody, error)
OnSetExpressionRequest implements the Handler interface
func (*YODKHandler) OnSetFunctionBreakpointsRequest ¶
func (h *YODKHandler) OnSetFunctionBreakpointsRequest(arguments *dap.SetFunctionBreakpointsArguments) (*dap.SetFunctionBreakpointsResponseBody, error)
OnSetFunctionBreakpointsRequest implements the Handler interface
func (*YODKHandler) OnSetVariableRequest ¶
func (h *YODKHandler) OnSetVariableRequest(arguments *dap.SetVariableArguments) (*dap.SetVariableResponseBody, error)
OnSetVariableRequest implements the Handler interface
func (*YODKHandler) OnSourceRequest ¶
func (h *YODKHandler) OnSourceRequest(arguments *dap.SourceArguments) (*dap.SourceResponseBody, error)
OnSourceRequest implements the Handler interface
func (*YODKHandler) OnStackTraceRequest ¶
func (h *YODKHandler) OnStackTraceRequest(arguments *dap.StackTraceArguments) (*dap.StackTraceResponseBody, error)
OnStackTraceRequest implements the Handler interface
func (*YODKHandler) OnStepBackRequest ¶
func (h *YODKHandler) OnStepBackRequest(arguments *dap.StepBackArguments) error
OnStepBackRequest implements the Handler interface
func (*YODKHandler) OnStepInRequest ¶
func (h *YODKHandler) OnStepInRequest(arguments *dap.StepInArguments) error
OnStepInRequest implements the Handler interface
func (*YODKHandler) OnStepInTargetsRequest ¶
func (h *YODKHandler) OnStepInTargetsRequest(arguments *dap.StepInTargetsArguments) (*dap.StepInTargetsResponseBody, error)
OnStepInTargetsRequest implements the Handler interface
func (*YODKHandler) OnStepOutRequest ¶
func (h *YODKHandler) OnStepOutRequest(arguments *dap.StepOutArguments) error
OnStepOutRequest implements the Handler interface
func (*YODKHandler) OnTerminateRequest ¶
func (h *YODKHandler) OnTerminateRequest(arguments *dap.TerminateArguments) error
OnTerminateRequest implements the Handler interface
func (*YODKHandler) OnTerminateThreadsRequest ¶
func (h *YODKHandler) OnTerminateThreadsRequest(arguments *dap.TerminateThreadsArguments) error
OnTerminateThreadsRequest implements the Handler interface
func (*YODKHandler) OnThreadsRequest ¶
func (h *YODKHandler) OnThreadsRequest() (*dap.ThreadsResponseBody, error)
OnThreadsRequest implements the Handler interface
func (*YODKHandler) OnVariablesRequest ¶
func (h *YODKHandler) OnVariablesRequest(arguments *dap.VariablesArguments) (*dap.VariablesResponseBody, error)
OnVariablesRequest implements the Handler interface
func (*YODKHandler) SetSession ¶
func (h *YODKHandler) SetSession(s *Session)
SetSession implements the Handler interface