public QueueNode(ILiveWatchEngine engine, NodeSource root, QueueTypeDescriptor queue, IPinnedVariable variable, IPinnedVariableType queueType, string userFriendlyName) : base("$rtos.queue." + variable.UserFriendlyName) { _Engine = engine; _Descriptor = queue; _QueueType = queueType; _Root = root; if (_Descriptor.IsIndirect) { _PointerVariable = engine.CreateLiveVariable(variable); } else if (_Descriptor.TypeOverride != null) { _QueueVariable = engine.Symbols.CreateTypedVariable(variable.Address, engine.Symbols.LookupType(_Descriptor.TypeOverride, true)); } else { _QueueVariable = variable; } Name = userFriendlyName; RawType = _Descriptor.Type.ToString(); Capabilities = LiveWatchCapabilities.CanHaveChildren | LiveWatchCapabilities.CanPlotValue | LiveWatchCapabilities.CanSetBreakpoint; SelectedFormatter = engine.GetDefaultFormatter(ScalarVariableType.SInt32); Location = new LiveWatchPhysicalLocation(null, variable.SourceLocation.File, variable.SourceLocation.Line); }
public QueueListNode(NodeSource root) : base("$rtos.queues") { _Root = root; Name = "Synchronization Primitives"; Capabilities = LiveWatchCapabilities.CanHaveChildren | LiveWatchCapabilities.DoNotHighlightChangedValue; }
public CurrentTaskNode(NodeSource root, ILiveVariable pxCurrentTCB) : base("$rtos.kernel.current_task") { _pxCurrentTCB = pxCurrentTCB; _Root = root; Name = "Current Task"; }
public ThreadListNode(NodeSource root) : base("$rtos.threads") { _Root = root; Name = "Threads"; Capabilities = LiveWatchCapabilities.CanHaveChildren | LiveWatchCapabilities.DoNotHighlightChangedValue; }
public KernelNode(NodeSource root, ILiveWatchEngine engine) : base("$rtos.kernel") { _Root = root; _Engine = engine; _xSchedulerRunning = engine.CreateLiveVariable("xSchedulerRunning", false); Name = "Kernel"; Capabilities = LiveWatchCapabilities.CanHaveChildren; }
public ThreadLookup(NodeSource root, IEnumerable <ThreadList> threadLists, bool includeCurrentTCB, LinkedListNodeCache cache) { _Root = root; _ThreadLists = threadLists; _IncludeCurrentTCB = includeCurrentTCB; _Cache = cache; foreach (var list in threadLists) { _ProcessedNodes.Add(list.EndNodeAddress); } }