/// <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(); } } } } }
/// <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(); } } } }