Documentation
¶
Overview ¶
Package debugger provides a TUI debugger with multi-client support. Runnable command can be found in tools/cmd/am-dbg.
Index ¶
- Constants
- Variables
- func AllocMem() uint64
- func NewSessionScreen(s ssh.Session) (tcell.Screen, error)
- type A
- type Client
- type Debugger
- func (d *Debugger) AddressFocusedEnd(e *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(e *am.Event) bool
- func (d *Debugger) BackStepState(e *am.Event)
- 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) DialogFocusedEnd(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) ErrGraphEnter(e *am.Event) bool
- 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(e *am.Event)
- func (d *Debugger) FilterCanceledTxEnd(e *am.Event)
- func (d *Debugger) FilterQueuedTxEnd(e *am.Event)
- func (d *Debugger) FocusNextState(e *am.Event)
- func (d *Debugger) FocusPrevState(e *am.Event)
- func (d *Debugger) FwdEnter(e *am.Event) bool
- func (d *Debugger) FwdState(e *am.Event)
- func (d *Debugger) FwdStepEnter(e *am.Event) bool
- func (d *Debugger) FwdStepState(e *am.Event)
- func (d *Debugger) GcMsgsEnter(e *am.Event) bool
- func (d *Debugger) GcMsgsState(e *am.Event)
- func (d *Debugger) GoToMachAddress(addr *types.MachAddress, skipHistory bool) bool
- 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) MachAddr() *types.MachAddress
- func (d *Debugger) MatrixRainEnter(e *am.Event) bool
- func (d *Debugger) MatrixRainSelectedState(e *am.Event)
- func (d *Debugger) MatrixRainState(e *am.Event)
- func (d *Debugger) MatrixViewEnd(e *am.Event)
- func (d *Debugger) MatrixViewState(e *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) OverlayEnd(e *am.Event)
- func (d *Debugger) OverlayEnter(e *am.Event) bool
- func (d *Debugger) OverlayState(e *am.Event)
- func (d *Debugger) PausedState(e *am.Event)
- func (d *Debugger) PlayingEnd(e *am.Event)
- func (d *Debugger) PlayingState(e *am.Event)
- func (d *Debugger) PrevTx() *dbg.DbgMsgTx
- func (d *Debugger) ReadyEnd(e *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) 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()
- func (d *Debugger) StartEnd(e *am.Event)
- func (d *Debugger) StartState(e *am.Event)
- func (d *Debugger) StateNameSelectedEnd(e *am.Event)
- func (d *Debugger) StateNameSelectedEnter(e *am.Event) bool
- func (d *Debugger) StateNameSelectedState(e *am.Event)
- func (d *Debugger) SwitchedClientTxState(e *am.Event)
- func (d *Debugger) SwitchingClientTxState(e *am.Event)
- func (d *Debugger) TailModeEnd(e *am.Event)
- func (d *Debugger) TailModeState(e *am.Event)
- func (d *Debugger) TimelineStepsFocusedEnd(e *am.Event)
- func (d *Debugger) TimelineStepsFocusedState(e *am.Event)
- func (d *Debugger) TimelineStepsHiddenEnd(e *am.Event)
- func (d *Debugger) TimelineStepsHiddenState(e *am.Event)
- func (d *Debugger) TimelineStepsScrolledEnd(e *am.Event)
- func (d *Debugger) TimelineStepsScrolledState(e *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(e *am.Event)
- func (d *Debugger) Toolbar1FocusedState(e *am.Event)
- func (d *Debugger) Toolbar2FocusedEnd(e *am.Event)
- func (d *Debugger) Toolbar2FocusedState(e *am.Event)
- func (d *Debugger) Toolbar3FocusedEnd(e *am.Event)
- func (d *Debugger) Toolbar3FocusedState(e *am.Event)
- func (d *Debugger) Toolbar4FocusedEnd(e *am.Event)
- func (d *Debugger) Toolbar4FocusedState(e *am.Event)
- func (d *Debugger) TreeGroupsFocusedEnd(e *am.Event)
- func (d *Debugger) TreeGroupsFocusedState(e *am.Event)
- func (d *Debugger) TreeMatrixViewEnd(e *am.Event)
- func (d *Debugger) TreeMatrixViewState(e *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(e *am.Event)
- func (d *Debugger) UserBackStepState(e *am.Event)
- func (d *Debugger) UserFwdState(e *am.Event)
- func (d *Debugger) UserFwdStepState(e *am.Event)
- func (d *Debugger) WebReqState(e *am.Event)
- func (d *Debugger) WebSocketDiagState(e *am.Event)
- type Focusable
- type RelCol
- type S
- type StateTraceItem
- type Theme
- type WsDiagMsg
Constants ¶
const ( DialogExport = "export" DialogHelp = "help" )
Variables ¶
var ( Pass = types.Pass ParseArgs = types.ParseArgs )
Functions ¶
Types ¶
type Client ¶
type Client struct {
*server.Client
CursorTx1 int
ReaderCollapsed bool
CursorStep1 int
SelectedState string
// 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 make private, pass via state
Params types.Params
LayoutRoot *cview.Panels
// selected client
C *Client
App *cview.Application
// printer for numbers TODO global
P *message.Printer
// TODO GC removed machines
History []*types.MachAddress
HistoryCursor int
Focused cview.Primitive
// 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) 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) DialogFocusedEnd ¶ added in v0.18.8
func (*Debugger) DisconnectEventState ¶
func (*Debugger) ErrGraphEnter ¶ added in v0.18.8
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) FocusNextState ¶ added in v0.18.8
TODO move
func (*Debugger) FocusPrevState ¶ added in v0.18.8
TODO move
func (*Debugger) FwdStepState ¶
func (*Debugger) GcMsgsState ¶ added in v0.8.0
func (*Debugger) GoToMachAddress ¶ added in v0.9.0
func (d *Debugger) GoToMachAddress( addr *types.MachAddress, skipHistory bool, ) bool
GoToMachAddress tries to render a view of the provided address (mach, tx). Blocks. TODO state: GoToMachAddr, MachAddr
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) MachAddr ¶ added in v0.18.8
func (d *Debugger) MachAddr() *types.MachAddress
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) OverlayEnd ¶ added in v0.18.8
func (*Debugger) OverlayState ¶ added in v0.18.8
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) 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) Toolbar4FocusedEnd ¶ added in v0.18.8
func (*Debugger) Toolbar4FocusedState ¶ added in v0.18.8
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 StateTraceItem ¶ added in v0.18.8
type StateTraceItem struct {
Label string
Source *types.MachAddress
StateNames am.S
}
type Theme ¶ added in v0.18.8
type Theme struct {
// primary active/selected state color
Active string
// secondary active color (changed states)
Active2 string
// inactive/default state color
Inactive string
// background highlight (selected items)
Highlight string
// secondary highlight (scrollbars, selections)
Highlight2 string
// tertiary highlight (table/matrix cells)
Highlight3 string
// error color
Err string
// error background color (accepted tx with exception state)
ErrBg string
// recent error indicator
ErrRecent string
// inline tview markup grey text
Grey string
// inline tview markup white/bright text
White string
// log prefix brackets
Yellow string
// faded/extern content
DarkGrey string
// accepted gutter, relation start
Green string
// addr button background
LightGrey string
// style overrides (cview.Styles)
// title text color
Title string
// border color
Border string
// graphics color
Graphics string
// primitive background color
BgPrimary string
// contrast background color
BgContrast string
// more contrast background color
BgMoreContrast string
// primary text color
FgPrimary string
// secondary text color
FgSecondary string
// tertiary text color
Tertiary string
// inverse text color
Inverse string
// contrast primary text color
ContrastPrimary string
// contrast secondary text color
ContrastSecondary string
// scroll bar color
ScrollBar string
}
TODO move to types
/tools/debugger