Documentation
¶
Overview ¶
Package debugger provides a TUI debugger with multi-client support. Runnable command can be found in tools/cmd/am-dbg.
Index ¶
- func AllocMem() uint64
- func RpcGetter(d *Debugger) func(string) any
- type Client
- type Debugger
- func (d *Debugger) AddressFocusedEnd(_ *am.Event)
- func (d *Debugger) AddressFocusedState(e *am.Event)
- func (d *Debugger) AfterFocusEnter(e *am.Event) bool
- func (d *Debugger) AfterFocusState(e *am.Event)
- func (d *Debugger) AnyEnter(e *am.Event) bool
- func (d *Debugger) AnyState(e *am.Event)
- func (d *Debugger) BackEnter(e *am.Event) bool
- func (d *Debugger) BackState(e *am.Event)
- func (d *Debugger) BackStepEnter(_ *am.Event) bool
- func (d *Debugger) BackStepState(_ *am.Event)
- func (d *Debugger) Client() *Client
- func (d *Debugger) ClientListVisibleEnd(e *am.Event)
- func (d *Debugger) ClientListVisibleState(e *am.Event)
- func (d *Debugger) ClientMsgEnter(e *am.Event) bool
- func (d *Debugger) ClientMsgState(e *am.Event)
- func (d *Debugger) ClientSelectedEnd(e *am.Event)
- func (d *Debugger) ClientSelectedState(e *am.Event)
- func (d *Debugger) ConnectEventEnter(e *am.Event) bool
- func (d *Debugger) ConnectEventState(e *am.Event)
- func (d *Debugger) CurrentTx() *telemetry.DbgMsgTx
- func (d *Debugger) DiagramsReadyState(e *am.Event)
- func (d *Debugger) DiagramsRenderingEnter(e *am.Event) bool
- func (d *Debugger) DiagramsRenderingState(e *am.Event)
- func (d *Debugger) DiagramsScheduledEnter(e *am.Event) bool
- func (d *Debugger) DiagramsScheduledState(e *am.Event)
- func (d *Debugger) DisconnectEventEnter(e *am.Event) bool
- func (d *Debugger) DisconnectEventState(e *am.Event)
- func (d *Debugger) Dispose()
- func (d *Debugger) ExceptionEnter(e *am.Event) bool
- func (d *Debugger) ExceptionState(e *am.Event)
- func (d *Debugger) ExportDialogEnd(e *am.Event)
- func (d *Debugger) ExportDialogState(_ *am.Event)
- func (d *Debugger) FwdEnter(e *am.Event) bool
- func (d *Debugger) FwdState(e *am.Event)
- func (d *Debugger) FwdStepEnter(_ *am.Event) bool
- func (d *Debugger) FwdStepState(_ *am.Event)
- func (d *Debugger) GcMsgsEnter(e *am.Event) bool
- func (d *Debugger) GcMsgsState(e *am.Event)
- func (d *Debugger) HealthcheckState(_ *am.Event)
- func (d *Debugger) HelpDialogEnd(e *am.Event)
- func (d *Debugger) HelpDialogState(_ *am.Event)
- func (d *Debugger) LogReaderVisibleEnd(e *am.Event)
- func (d *Debugger) LogReaderVisibleState(e *am.Event)
- func (d *Debugger) MatrixRainState(_ *am.Event)
- func (d *Debugger) MatrixViewEnd(_ *am.Event)
- func (d *Debugger) MatrixViewState(_ *am.Event)
- func (d *Debugger) NarrowLayoutEnd(e *am.Event)
- func (d *Debugger) NarrowLayoutExit(e *am.Event) bool
- func (d *Debugger) NarrowLayoutState(e *am.Event)
- func (d *Debugger) NextTx() *telemetry.DbgMsgTx
- func (d *Debugger) PausedState(_ *am.Event)
- func (d *Debugger) PlayingEnd(_ *am.Event)
- func (d *Debugger) PlayingState(_ *am.Event)
- func (d *Debugger) PrevTx() *telemetry.DbgMsgTx
- func (d *Debugger) ReadyEnd(_ *am.Event)
- func (d *Debugger) ReadyState(e *am.Event)
- func (d *Debugger) RebuildLogEnter(e *am.Event) bool
- func (d *Debugger) RebuildLogState(e *am.Event)
- func (d *Debugger) RemoveClientEnter(e *am.Event) bool
- func (d *Debugger) RemoveClientState(e *am.Event)
- func (d *Debugger) ScrollToMutTxState(e *am.Event)
- func (d *Debugger) ScrollToStepEnter(e *am.Event) bool
- func (d *Debugger) ScrollToStepState(e *am.Event)
- func (d *Debugger) ScrollToTxEnter(e *am.Event) bool
- func (d *Debugger) ScrollToTxState(e *am.Event)
- func (d *Debugger) SelectingClientEnter(e *am.Event) bool
- func (d *Debugger) SelectingClientState(e *am.Event)
- func (d *Debugger) SetCursorState(e *am.Event)
- func (d *Debugger) SetFilterLogLevel(lvl am.LogLevel)
- func (d *Debugger) SetGroupEnter(e *am.Event) bool
- func (d *Debugger) SetGroupState(e *am.Event)
- func (d *Debugger) Start(clientID string, txNum int, uiView string)
- func (d *Debugger) StartEnd(_ *am.Event)
- func (d *Debugger) StartState(e *am.Event)
- func (d *Debugger) StateNameSelectedEnd(_ *am.Event)
- func (d *Debugger) StateNameSelectedEnter(e *am.Event) bool
- func (d *Debugger) StateNameSelectedState(e *am.Event)
- func (d *Debugger) StateNameSelectedStateNameSelected(e *am.Event)
- func (d *Debugger) SwitchedClientTxState(_ *am.Event)
- func (d *Debugger) SwitchingClientTxState(e *am.Event)
- func (d *Debugger) TailModeEnd(_ *am.Event)
- func (d *Debugger) TailModeState(_ *am.Event)
- func (d *Debugger) TimelineHiddenEnd(e *am.Event)
- func (d *Debugger) TimelineHiddenState(e *am.Event)
- func (d *Debugger) TimelineStepsFocusedEnd(_ *am.Event)
- func (d *Debugger) TimelineStepsFocusedState(_ *am.Event)
- func (d *Debugger) TimelineStepsHiddenEnd(e *am.Event)
- func (d *Debugger) TimelineStepsHiddenState(e *am.Event)
- func (d *Debugger) TimelineStepsScrolledEnd(_ *am.Event)
- func (d *Debugger) TimelineStepsScrolledState(_ *am.Event)
- func (d *Debugger) ToggleToolEnter(e *am.Event) bool
- func (d *Debugger) ToggleToolState(e *am.Event)
- func (d *Debugger) ToolRainState(e *am.Event)
- func (d *Debugger) ToolToggledState(e *am.Event)
- func (d *Debugger) Toolbar1FocusedEnd(_ *am.Event)
- func (d *Debugger) Toolbar1FocusedState(e *am.Event)
- func (d *Debugger) Toolbar2FocusedEnd(_ *am.Event)
- func (d *Debugger) Toolbar2FocusedState(e *am.Event)
- func (d *Debugger) Toolbar3FocusedEnd(_ *am.Event)
- func (d *Debugger) Toolbar3FocusedState(e *am.Event)
- func (d *Debugger) TreeGroupsFocusedEnd(_ *am.Event)
- func (d *Debugger) TreeGroupsFocusedState(e *am.Event)
- func (d *Debugger) TreeMatrixViewEnd(_ *am.Event)
- func (d *Debugger) TreeMatrixViewState(_ *am.Event)
- func (d *Debugger) UpdateFocusState(e *am.Event)
- func (d *Debugger) UserBackState(_ *am.Event)
- func (d *Debugger) UserBackStepState(_ *am.Event)
- func (d *Debugger) UserFwdState(_ *am.Event)
- func (d *Debugger) UserFwdStepState(_ *am.Event)
- func (d *Debugger) WebReqState(e *am.Event)
- func (d *Debugger) WebSocketState(e *am.Event)
- type Exportable
- type Focusable
- type MachAddress
- type MachTime
- type MsgSchemaParsed
- type MsgTxParsed
- type Opts
- type OptsFilters
- type RelCol
- type S
- type ToolName
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct {
// bits which get saved into the go file
Exportable
// current transition, 1-based, mirrors the slider (eg 1 means tx.ID == 0)
// TODO atomic
CursorTx1 int
// current step, 1-based, mirrors the slider
// TODO atomic
CursorStep1 int
SelectedState string
SelectedReaderEntry *logReaderEntryPtr
ReaderCollapsed bool
// processed list of filtered tx indexes
MsgTxsFiltered []int
SelectedGroup string
// contains filtered or unexported fields
}
type Debugger ¶
type Debugger struct {
*am.ExceptionHandler
Mach *am.Machine
Clients map[string]*Client
// TODO make threadsafe
Opts Opts
LayoutRoot *cview.Panels
Disposed bool
// selected client
// TODO atomic, drop eval
C *Client
App *cview.Application
// printer for numbers
P *message.Printer
// TODO GC removed machines
History []*MachAddress
HistoryCursor int
// contains filtered or unexported fields
}
func (*Debugger) AddressFocusedEnd ¶ added in v0.9.0
func (*Debugger) AddressFocusedState ¶ added in v0.9.0
func (*Debugger) AfterFocusEnter ¶ added in v0.11.0
func (*Debugger) AfterFocusState ¶ added in v0.11.0
func (*Debugger) AnyEnter ¶ added in v0.15.0
AnyEnter prevents most of mutations during a UI redraw (and vice versa) forceful race solving
func (*Debugger) BackStepState ¶
func (*Debugger) Client ¶ added in v0.7.0
Client returns the current Client. Thread safe via Eval().
func (*Debugger) ClientListVisibleEnd ¶ added in v0.15.0
func (*Debugger) ClientListVisibleState ¶ added in v0.10.3
func (*Debugger) ClientMsgState ¶
func (*Debugger) ClientSelectedEnd ¶
func (*Debugger) ClientSelectedState ¶
func (*Debugger) ConnectEventState ¶
func (*Debugger) DiagramsReadyState ¶ added in v0.13.0
func (*Debugger) DiagramsRenderingEnter ¶ added in v0.13.0
func (*Debugger) DiagramsRenderingState ¶ added in v0.13.0
func (*Debugger) DiagramsScheduledEnter ¶ added in v0.13.0
func (*Debugger) DiagramsScheduledState ¶ added in v0.13.0
func (*Debugger) DisconnectEventState ¶
func (*Debugger) ExceptionEnter ¶ added in v0.15.0
func (*Debugger) ExceptionState ¶ added in v0.8.0
ExceptionState creates a log file with the error and stack trace, after calling the super exception handler.
func (*Debugger) ExportDialogEnd ¶
func (*Debugger) ExportDialogState ¶
func (*Debugger) FwdStepState ¶
func (*Debugger) GcMsgsState ¶ added in v0.8.0
func (*Debugger) HealthcheckState ¶ added in v0.8.0
func (*Debugger) HelpDialogEnd ¶
func (*Debugger) HelpDialogState ¶
func (*Debugger) LogReaderVisibleEnd ¶ added in v0.8.0
func (*Debugger) LogReaderVisibleState ¶ added in v0.8.0
func (*Debugger) MatrixRainState ¶ added in v0.7.0
func (*Debugger) MatrixViewEnd ¶
func (*Debugger) MatrixViewState ¶
func (*Debugger) NarrowLayoutEnd ¶ added in v0.10.3
func (*Debugger) NarrowLayoutExit ¶ added in v0.10.3
func (*Debugger) NarrowLayoutState ¶ added in v0.10.3
func (*Debugger) PausedState ¶
func (*Debugger) PlayingEnd ¶
func (*Debugger) PlayingState ¶
func (*Debugger) ReadyState ¶ added in v0.8.0
func (*Debugger) RebuildLogState ¶
TODO progressive rendering TODO un-dim [extern] when Opts.Filters.Loglevel <= LogExternal
func (*Debugger) RemoveClientState ¶
func (*Debugger) ScrollToMutTxState ¶ added in v0.7.0
ScrollToMutTxState scrolls to a transition which mutated the passed state, If fwd is true, it scrolls forward, otherwise backwards.
func (*Debugger) ScrollToStepEnter ¶ added in v0.9.0
func (*Debugger) ScrollToStepState ¶ added in v0.9.0
ScrollToStepState scrolls to a specific transition (cursor position 1-based).
func (*Debugger) ScrollToTxState ¶
ScrollToTxState scrolls to a specific transition (cursor position 1-based).
func (*Debugger) SelectingClientState ¶
func (*Debugger) SetCursorState ¶ added in v0.10.3
func (*Debugger) SetFilterLogLevel ¶ added in v0.6.4
TODO state: SetOptsState
func (*Debugger) SetGroupEnter ¶ added in v0.15.0
func (*Debugger) SetGroupState ¶ added in v0.15.0
func (*Debugger) StartState ¶
func (*Debugger) StateNameSelectedEnd ¶
func (*Debugger) StateNameSelectedEnter ¶ added in v0.11.0
func (*Debugger) StateNameSelectedState ¶
func (*Debugger) StateNameSelectedStateNameSelected ¶
StateNameSelectedStateNameSelected handles cursor moving from a state name to another state name case.
func (*Debugger) SwitchedClientTxState ¶ added in v0.7.0
func (*Debugger) SwitchingClientTxState ¶ added in v0.7.0
func (*Debugger) TailModeEnd ¶ added in v0.8.0
func (*Debugger) TailModeState ¶
func (*Debugger) TimelineHiddenEnd ¶ added in v0.10.3
func (*Debugger) TimelineHiddenState ¶ added in v0.10.3
func (*Debugger) TimelineStepsFocusedEnd ¶
func (*Debugger) TimelineStepsFocusedState ¶
func (*Debugger) TimelineStepsHiddenEnd ¶ added in v0.10.3
func (*Debugger) TimelineStepsHiddenState ¶ added in v0.10.3
func (*Debugger) TimelineStepsScrolledEnd ¶ added in v0.9.0
func (*Debugger) TimelineStepsScrolledState ¶ added in v0.9.0
func (*Debugger) ToggleToolEnter ¶ added in v0.10.1
func (*Debugger) ToggleToolState ¶ added in v0.10.1
func (*Debugger) ToolRainState ¶ added in v0.11.0
func (*Debugger) ToolToggledState ¶ added in v0.15.0
func (*Debugger) Toolbar1FocusedEnd ¶ added in v0.10.1
func (*Debugger) Toolbar1FocusedState ¶ added in v0.10.1
func (*Debugger) Toolbar2FocusedEnd ¶ added in v0.10.1
func (*Debugger) Toolbar2FocusedState ¶ added in v0.10.1
func (*Debugger) Toolbar3FocusedEnd ¶ added in v0.15.0
func (*Debugger) Toolbar3FocusedState ¶ added in v0.15.0
func (*Debugger) TreeGroupsFocusedEnd ¶ added in v0.15.0
func (*Debugger) TreeGroupsFocusedState ¶ added in v0.15.0
func (*Debugger) TreeMatrixViewEnd ¶
func (*Debugger) TreeMatrixViewState ¶
func (*Debugger) UpdateFocusState ¶ added in v0.11.0
func (*Debugger) UserBackState ¶
func (*Debugger) UserBackStepState ¶
func (*Debugger) UserFwdState ¶
func (*Debugger) UserFwdStepState ¶
func (*Debugger) WebReqState ¶ added in v0.15.0
func (*Debugger) WebSocketState ¶ added in v0.15.0
type Exportable ¶
type Exportable struct {
// TODO refac MsgStruct
MsgStruct *telemetry.DbgMsgStruct
MsgTxs []*telemetry.DbgMsgTx
}
type MachAddress ¶ added in v0.9.0
type MachAddress struct {
MachId string
TxId string
MachTime uint64
HumanTime time.Time
// TODO support step
Step int
}
func (*MachAddress) Clone ¶ added in v0.9.0
func (ma *MachAddress) Clone() *MachAddress
func (*MachAddress) String ¶ added in v0.9.0
func (a *MachAddress) String() string
type MsgSchemaParsed ¶ added in v0.15.0
type MsgTxParsed ¶
type Opts ¶ added in v0.6.4
type Opts struct {
MachUrl string
SelectConnected bool
CleanOnConnect bool
EnableMouse bool
ShowReader bool
// MachAddress to listen on
ServerAddr string
// Log level of the debugger's machine
DbgLogLevel am.LogLevel
// Go race detector is enabled
DbgRace bool
DbgLogger *log.Logger
// Filters for the transitions and logging
Filters *OptsFilters
// Timelines is the number of timelines to show (0-2).
Timelines int
// File path to import (brotli)
ImportData string
// File to dump client list into.
OutputClients bool
// Root dir for output files
OutputDir string
// OutputDiagrams is the details level of the current machine's diagram (0-3).
// 0 - off, 3 - most detailed
OutputDiagrams int
// Screen overload for tests & ssh
Screen tcell.Screen
// Debugger's ID
Id string
// version of this instance
Version string
MaxMemMb int
Log2Ttl time.Duration
ViewNarrow bool
ViewRain bool
TailMode bool
OutputTx bool
}
