コード例 #1
0
ファイル: QueueNodes.cs プロジェクト: mfkiwl/RTOSPlugins
        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);
        }
コード例 #2
0
ファイル: QueueNodes.cs プロジェクト: mfkiwl/RTOSPlugins
 public QueueListNode(NodeSource root)
     : base("$rtos.queues")
 {
     _Root        = root;
     Name         = "Synchronization Primitives";
     Capabilities = LiveWatchCapabilities.CanHaveChildren | LiveWatchCapabilities.DoNotHighlightChangedValue;
 }
コード例 #3
0
ファイル: KernelNode.cs プロジェクト: mfkiwl/RTOSPlugins
 public CurrentTaskNode(NodeSource root, ILiveVariable pxCurrentTCB)
     : base("$rtos.kernel.current_task")
 {
     _pxCurrentTCB = pxCurrentTCB;
     _Root         = root;
     Name          = "Current Task";
 }
コード例 #4
0
ファイル: ThreadNodes.cs プロジェクト: mfkiwl/RTOSPlugins
 public ThreadListNode(NodeSource root)
     : base("$rtos.threads")
 {
     _Root        = root;
     Name         = "Threads";
     Capabilities = LiveWatchCapabilities.CanHaveChildren | LiveWatchCapabilities.DoNotHighlightChangedValue;
 }
コード例 #5
0
ファイル: KernelNode.cs プロジェクト: mfkiwl/RTOSPlugins
        public KernelNode(NodeSource root, ILiveWatchEngine engine)
            : base("$rtos.kernel")
        {
            _Root              = root;
            _Engine            = engine;
            _xSchedulerRunning = engine.CreateLiveVariable("xSchedulerRunning", false);

            Name         = "Kernel";
            Capabilities = LiveWatchCapabilities.CanHaveChildren;
        }
コード例 #6
0
 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);
     }
 }