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

github.com/mono/debugger-libs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ward <matt.ward@microsoft.com>2022-02-15 22:03:51 +0300
committerGitHub <noreply@github.com>2022-02-15 22:03:51 +0300
commit3997eb9e5108bc5f96c989d2ce298d62ea1f018b (patch)
tree4b7cd200b5c3ce1594ed153e17231cb8563dbc5e
parent2bdfb15b519fc267ea06610a120e125f5a83c0b6 (diff)
parent405f5f5fca1c3cab849887023497fe89fb4f8c59 (diff)
Merge pull request #354 from marshall-lerner/main
Fix Failing Test, Add Batch Methods for Events
-rw-r--r--Mono.Debugging/Mono.Debugging.Client/BreakEvent.cs3
-rw-r--r--Mono.Debugging/Mono.Debugging.Client/BreakpointStore.cs48
-rw-r--r--UnitTests/Mono.Debugging.Tests/Shared/BreakpointsAndSteppingTests.cs2
3 files changed, 43 insertions, 10 deletions
diff --git a/Mono.Debugging/Mono.Debugging.Client/BreakEvent.cs b/Mono.Debugging/Mono.Debugging.Client/BreakEvent.cs
index 8ebf079..0496cc1 100644
--- a/Mono.Debugging/Mono.Debugging.Client/BreakEvent.cs
+++ b/Mono.Debugging/Mono.Debugging.Client/BreakEvent.cs
@@ -137,9 +137,10 @@ namespace Mono.Debugging.Client
set {
if (store != null && store.IsReadOnly)
return;
+ bool previous = enabled;
enabled = value;
if (store != null)
- store.EnableBreakEvent (this, value);
+ store.EnableBreakEvent (this, previous, value);
}
}
diff --git a/Mono.Debugging/Mono.Debugging.Client/BreakpointStore.cs b/Mono.Debugging/Mono.Debugging.Client/BreakpointStore.cs
index 52227c4..883e169 100644
--- a/Mono.Debugging/Mono.Debugging.Client/BreakpointStore.cs
+++ b/Mono.Debugging/Mono.Debugging.Client/BreakpointStore.cs
@@ -255,11 +255,15 @@ namespace Mono.Debugging.Client
oldEvents = SetBreakpoints (breakpoints.RemoveRange (breakEvents));
}
+ List<BreakEvent> breakEventsRemoved = new List<BreakEvent> ();
+
foreach (var bp in breakEvents) {
if (oldEvents.Contains(bp)) {
- OnBreakEventRemoved (bp);
+ breakEventsRemoved.Add (bp);
}
}
+
+ OnBreakEventsRemoved (breakEventsRemoved);
}
}
@@ -461,9 +465,7 @@ namespace Mono.Debugging.Client
}
// preserve behaviour by sending an event for each breakpoint that was loaded
- foreach (var bp in loadedBreakpoints) {
- OnBreakEventAdded (bp);
- }
+ OnBreakEventsAdded (loadedBreakpoints);
}
[DllImport ("libc")]
@@ -506,14 +508,16 @@ namespace Mono.Debugging.Client
return PathComparer.Compare (file1, file2) == 0;
}
- internal bool EnableBreakEvent (BreakEvent be, bool enabled)
+ internal bool EnableBreakEvent (BreakEvent be, bool previouslyEnabled, bool enabled)
{
if (IsReadOnly)
return false;
- OnChanged ();
- BreakEventEnableStatusChanged?.Invoke (this, new BreakEventArgs (be));
- NotifyStatusChanged (be);
+ if (previouslyEnabled != enabled) {
+ OnChanged ();
+ BreakEventEnableStatusChanged?.Invoke (this, new BreakEventArgs (be));
+ NotifyStatusChanged (be);
+ }
return true;
}
@@ -529,6 +533,20 @@ namespace Mono.Debugging.Client
OnChanged ();
}
+ void OnBreakEventsAdded (List<BreakEvent> bes)
+ {
+ foreach (BreakEvent be in bes) {
+ BreakEventAdded?.Invoke (this, new BreakEventArgs (be));
+ if (be is Breakpoint bp) {
+ BreakpointAdded?.Invoke (this, new BreakpointEventArgs (bp));
+ } else if (be is Catchpoint ce) {
+ CatchpointAdded?.Invoke (this, new CatchpointEventArgs (ce));
+ }
+ }
+
+ OnChanged ();
+ }
+
void OnBreakEventRemoved (BreakEvent be)
{
BreakEventRemoved?.Invoke (this, new BreakEventArgs (be));
@@ -540,6 +558,20 @@ namespace Mono.Debugging.Client
OnChanged ();
}
+ void OnBreakEventsRemoved (List<BreakEvent> bes)
+ {
+ foreach (BreakEvent be in bes) {
+ BreakEventRemoved?.Invoke (this, new BreakEventArgs (be));
+ if (be is Breakpoint bp) {
+ BreakpointRemoved?.Invoke (this, new BreakpointEventArgs (bp));
+ } else if (be is Catchpoint ce) {
+ CatchpointRemoved?.Invoke (this, new CatchpointEventArgs (ce));
+ }
+ }
+
+ OnChanged ();
+ }
+
void OnChanged ()
{
Changed?.Invoke (this, EventArgs.Empty);
diff --git a/UnitTests/Mono.Debugging.Tests/Shared/BreakpointsAndSteppingTests.cs b/UnitTests/Mono.Debugging.Tests/Shared/BreakpointsAndSteppingTests.cs
index 609750d..ced8211 100644
--- a/UnitTests/Mono.Debugging.Tests/Shared/BreakpointsAndSteppingTests.cs
+++ b/UnitTests/Mono.Debugging.Tests/Shared/BreakpointsAndSteppingTests.cs
@@ -1315,7 +1315,7 @@ namespace Mono.Debugging.Tests
store.FileRenamed ("fileName1.cs", "fileName2.cs");
var bps = store.GetBreakpoints ();
Assert.AreEqual (1, bps.Count);
- Assert.AreEqual ("fileName2.cs", bps [0].FileName);
+ Assert.AreEqual (Path.Combine(Environment.CurrentDirectory, "fileName2.cs"), bps [0].FileName);
}
}
}