示例#1
0
        /// <summary>
        /// Current instruction frames
        /// </summary>
        public void RefreshDebugHighlightings()
        {
            foreach (var marker in MarkerStrategy.TextMarkers.ToArray())
            {
                if (marker is CoreManager.DebugManagement.DebugStackFrameMarker)
                {
                    marker.Delete();
                }
            }

            if (!CoreManager.DebugManagement.IsDebugging)
            {
                return;
            }

            var bps = CoreManager.DebugManagement.Engine.CallStack;

            if (bps != null)
            {
                foreach (var stack in bps)
                {
                    string fn;
                    uint   ln;
                    if (CoreManager.DebugManagement.Engine.Symbols.GetLineByOffset(stack.InstructionOffset, out fn, out ln))
                    {
                        if (AbsoluteFilePath.EndsWith(fn) && ln < Editor.Document.LineCount)
                        {
                            var m = new CoreManager.DebugManagement.DebugStackFrameMarker(MarkerStrategy, stack, Editor.Document.GetOffset((int)ln, 0));
                            MarkerStrategy.Add(m);
                            m.Redraw();
                        }
                    }
                }
            }
        }
示例#2
0
        public void RefreshErrorHighlightings()
        {
            // Clear old markers
            foreach (var marker in MarkerStrategy.TextMarkers.ToArray())
            {
                if (marker is ErrorMarker)
                {
                    marker.Delete();
                }
            }

            foreach (var err in CoreManager.ErrorManagement.GetErrorsForFile(AbsoluteFilePath))
            {
                var m = ErrorMarker.Create(this, err);

                if (m != null)
                {
                    MarkerStrategy.Add(m);

                    m.Redraw();
                }
            }
        }
示例#3
0
        public void RefreshBreakpointHighlightings()
        {
            // Clear old markers
            foreach (var marker in MarkerStrategy.TextMarkers.ToArray())
            {
                if (marker is BreakpointMarker)
                {
                    marker.Delete();
                }
            }

            var bps = CoreManager.BreakpointManagement.GetBreakpointsAt(AbsoluteFilePath);

            if (bps != null)
            {
                foreach (var bpw in bps)
                {
                    var m = new BreakpointMarker(this, bpw);
                    MarkerStrategy.Add(m);

                    m.Redraw();
                }
            }
        }