Documentation
¶
Overview ¶
Package debugger provides a TUI debugger with multi-client support. Runnable command can be found in tools/cmd/am-dbg.
Index ¶
- Constants
- func AllocMem() uint64
- func NewSessionScreen(s ssh.Session) (tcell.Screen, error)
- 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(e *am.Event)
- func (d *Debugger) BuildingLogEnter(e *am.Event) bool
- func (d *Debugger) BuildingLogState(e *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() *dbg.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) FilterCanceledTxEnd(e *am.Event)
- func (d *Debugger) FilterQueuedTxEnd(e *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) HeartbeatState(e *am.Event)
- func (d *Debugger) HelpDialogEnd(e *am.Event)
- func (d *Debugger) HelpDialogState(e *am.Event)
- func (d *Debugger) LogBuiltState(e *am.Event)
- func (d *Debugger) LogReaderVisibleEnd(e *am.Event)
- func (d *Debugger) LogReaderVisibleState(e *am.Event)
- func (d *Debugger) LogUpdatedState(e *am.Event)
- func (d *Debugger) MatrixRainEnter(e *am.Event) bool
- func (d *Debugger) MatrixRainSelectedState(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() *dbg.DbgMsgTx
- func (d *Debugger) PausedState(_ *am.Event)
- func (d *Debugger) PlayingEnd(_ *am.Event)
- func (d *Debugger) PlayingState(_ *am.Event)
- func (d *Debugger) PrevTx() *dbg.DbgMsgTx
- func (d *Debugger) ReadyEnd(_ *am.Event)
- func (d *Debugger) ReadyState(e *am.Event)
- func (d *Debugger) RedrawState(e *am.Event)
- func (d *Debugger) RemoveClientEnter(e *am.Event) bool
- func (d *Debugger) RemoveClientState(e *am.Event)
- func (d *Debugger) ResizedState(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) SetCursorEnter(e *am.Event) bool
- 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) SshServerEnd(e *am.Event)
- func (d *Debugger) SshServerEnter(e *am.Event) bool
- func (d *Debugger) SshServerState(e *am.Event)
- func (d *Debugger) Start(clientID string, txNum int, uiView string, group 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) SwitchedClientTxState(_ *am.Event)
- func (d *Debugger) SwitchingClientTxState(e *am.Event)
- func (d *Debugger) TailModeEnd(_ *am.Event)
- func (d *Debugger) TailModeState(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) TimelineTxHiddenEnd(e *am.Event)
- func (d *Debugger) TimelineTxHiddenState(e *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) UpdateLogScheduledState(e *am.Event)
- func (d *Debugger) UpdatingLogState(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) WebSocketDiagState(e *am.Event)
- type Focusable
- type Opts
- type OptsFilters
- type RelCol
- type S
- type ToolName
Constants ¶
const ( DialogExport = "export" DialogHelp = "help" )
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct {
*server.Client
CursorTx1 int
ReaderCollapsed bool
CursorStep1 int
SelectedState string
SelectedReaderEntry *types.LogReaderEntryPtr
// extracted log entries per tx ID
// TODO GC when all entries are closedAt and the first client's tx is later
// than the latest closedAt; whole tx needs to be disposed at the same time
LogReader map[string][]*types.LogReaderEntry
// contains filtered or unexported fields
}
func (*Client) AddReaderEntry ¶ added in v0.16.1
func (c *Client) AddReaderEntry(txId string, entry *types.LogReaderEntry) int
func (*Client) GetReaderEntry ¶ added in v0.16.1
func (c *Client) GetReaderEntry(txId string, idx int) *types.LogReaderEntry
type Debugger ¶
type Debugger struct {
*am.ExceptionHandler
Mach *am.Machine
Clients map[string]*Client
// TODO go-arg and inherit from RWMutex
Opts Opts
LayoutRoot *cview.Panels
// selected client
// TODO atomic, drop eval
C *Client
App *cview.Application
// printer for numbers TODO global
P *message.Printer
// TODO GC removed machines
History []*types.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) BuildingLogEnter ¶ added in v0.15.0
func (*Debugger) BuildingLogState ¶ added in v0.15.0
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) FilterCanceledTxEnd ¶ added in v0.15.0
func (*Debugger) FilterQueuedTxEnd ¶ added in v0.15.0
func (*Debugger) FwdStepState ¶
func (*Debugger) GcMsgsState ¶ added in v0.8.0
func (*Debugger) HeartbeatState ¶ added in v0.15.0
func (*Debugger) HelpDialogEnd ¶
func (*Debugger) HelpDialogState ¶
func (*Debugger) LogBuiltState ¶ added in v0.15.0
func (*Debugger) LogReaderVisibleEnd ¶ added in v0.8.0
func (*Debugger) LogReaderVisibleState ¶ added in v0.8.0
func (*Debugger) LogUpdatedState ¶ added in v0.15.0
func (*Debugger) MatrixRainEnter ¶ added in v0.15.0
func (*Debugger) MatrixRainSelectedState ¶ added in v0.15.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) RedrawState ¶ added in v0.15.0
func (*Debugger) RemoveClientState ¶
func (*Debugger) ResizedState ¶ added in v0.15.0
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) SetCursorEnter ¶ added in v0.15.0
func (*Debugger) SetCursorState ¶ added in v0.10.3
TODO remove?
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) SshServerEnd ¶ added in v0.18.0
func (*Debugger) SshServerEnter ¶ added in v0.18.0
func (*Debugger) SshServerState ¶ added in v0.18.0
func (*Debugger) StartState ¶
func (*Debugger) StateNameSelectedEnd ¶
func (*Debugger) StateNameSelectedEnter ¶ added in v0.11.0
func (*Debugger) StateNameSelectedState ¶
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) 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) TimelineTxHiddenEnd ¶ added in v0.15.0
func (*Debugger) TimelineTxHiddenState ¶ added in v0.15.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) UpdateLogScheduledState ¶ added in v0.15.0
func (*Debugger) UpdatingLogState ¶ added in v0.15.0
UpdatingLogState decorates the rendered log, and rebuilds when needed.
func (*Debugger) UserBackState ¶
func (*Debugger) UserBackStepState ¶
func (*Debugger) UserFwdState ¶
func (*Debugger) UserFwdStepState ¶
func (*Debugger) WebReqState ¶ added in v0.15.0
func (*Debugger) WebSocketDiagState ¶ added in v0.18.0
type Opts ¶ added in v0.6.4
type Opts struct {
MachUrl string
SelectConnected bool
CleanOnConnect bool
EnableMouse bool
ShowReader bool
// MachAddress to listen on
AddrRpc string
AddrHttp string
AddrSsh 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
// Dump client list into a txt file.
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
EnableClipboard bool
UiSsh bool
UiWeb bool
Print func(txt string, args ...any)
OutputLog bool
}
type OptsFilters ¶ added in v0.6.4
type OptsFilters struct {
SkipCanceledTx bool
SkipAutoTx bool
SkipAutoCanceledTx bool
SkipEmptyTx bool
SkipHealthTx bool
SkipQueuedTx bool
SkipOutGroup bool
SkipChecks bool
LogLevel am.LogLevel
}
func (*OptsFilters) Equal ¶ added in v0.15.0
func (f *OptsFilters) Equal(filters *OptsFilters) bool
