Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Karlaš <david.karlas@microsoft.com>2019-06-28 07:36:41 +0300
committerDavid Karlaš <david.karlas@microsoft.com>2019-07-01 17:45:06 +0300
commit4d23858cdc8129c16c2609675a0b8e0b760fd988 (patch)
tree284b9e53f54e95c068c287df27ee3f0a54a06fe9 /main/src/addins/CSharpBinding
parentb420d489fa152429a550a33f51c7738b423e8ffb (diff)
Fix 935181: TryGetBreakpointSpan called with invalid position
I also added logic to fallback to whole line breakpoint in case Roslyn fails to find matching statement to place breakpoint on.
Diffstat (limited to 'main/src/addins/CSharpBinding')
-rw-r--r--main/src/addins/CSharpBinding/MonoDevelop.CSharp.Debugger/CSharpBreakpointSpanResolver.cs6
1 files changed, 3 insertions, 3 deletions
diff --git a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Debugger/CSharpBreakpointSpanResolver.cs b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Debugger/CSharpBreakpointSpanResolver.cs
index f21971dc9f..e3d57dcec6 100644
--- a/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Debugger/CSharpBreakpointSpanResolver.cs
+++ b/main/src/addins/CSharpBinding/MonoDevelop.CSharp.Debugger/CSharpBreakpointSpanResolver.cs
@@ -50,9 +50,9 @@ namespace MonoDevelop.CSharp.Debugger
var document = buffer.AsTextContainer ().GetOpenDocumentInCurrentContext ();
var tree = await document.GetSyntaxTreeAsync (cancellationToken);
- BreakpointSpans.TryGetBreakpointSpan (tree, position, cancellationToken, out var span);
-
- return new Span (span.Start, span.Length);
+ if (BreakpointSpans.TryGetBreakpointSpan (tree, Math.Max (0, Math.Min (position, tree.Length - 1)), cancellationToken, out var span))
+ return new Span (span.Start, span.Length);
+ return buffer.CurrentSnapshot.GetLineFromPosition (Math.Max (0, Math.Min (position, buffer.CurrentSnapshot.Length - 1))).Extent.Span;
}
}
}