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:
authorGreg Munn <gregm@microsoft.com>2019-07-26 17:55:46 +0300
committerGitHub <noreply@github.com>2019-07-26 17:55:46 +0300
commit411f83630e8e9c470224430640b5655e28115a64 (patch)
tree06fe8fe49478d6c45d3a9cdda92df0d34ed7102c /main/src/addins
parentcae16fe377c1c822d7b6c17662b50476b5b8df7f (diff)
parenta4547b579661f7d3df238e556e2f778a838122c8 (diff)
Merge pull request #7989 from mono/jstedfast-802365
[Debugger] Log telemetry for async ops that stall out
Diffstat (limited to 'main/src/addins')
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Counters.cs1
-rw-r--r--main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs23
2 files changed, 21 insertions, 3 deletions
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Counters.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Counters.cs
index 4fed6bfbab..c8fd7030f7 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Counters.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/Counters.cs
@@ -35,6 +35,7 @@ namespace MonoDevelop.Debugger
public static Counter EvaluationStats = InstrumentationService.CreateCounter ("Evaluation Statistics", "Debugger", id: "Debugger.EvaluationStatistics");
public static TimerCounter<DebuggerStartMetadata> DebuggerStart = InstrumentationService.CreateTimerCounter<DebuggerStartMetadata> ("Debugger Start", "Debugger", id: "Debugger.Start");
public static TimerCounter<DebuggerActionMetadata> DebuggerAction = InstrumentationService.CreateTimerCounter<DebuggerActionMetadata> ("Debugger Action", "Debugger", id: "Debugger.Action");
+ public static Counter DebuggerBusy = InstrumentationService.CreateCounter ("Debugger Busy", "Debugger", id: "Debugger.Busy");
}
class DebuggerStartMetadata : CounterMetadata
diff --git a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
index 9e19487fc4..5ed2950d2e 100644
--- a/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
+++ b/main/src/addins/MonoDevelop.Debugger/MonoDevelop.Debugger/DebuggingService.cs
@@ -905,6 +905,23 @@ namespace MonoDevelop.Debugger
await Runtime.RunInMainThread (delegate {
busyEvaluator.UpdateBusyState (args);
if (args.IsBusy) {
+ var session = (DebuggerSession) s;
+
+ if (sessions.TryGetValue (session, out var manager)) {
+ var metadata = new Dictionary<string, object> {
+ ["DebuggerType"] = manager.Engine.Id,
+ ["Debugger.AsyncOperation.Description"] = args.Description,
+ ["Debugger.EvaluationOptions.AllowDisplayStringEvaluation"] = args.EvaluationContext.Options.AllowDisplayStringEvaluation,
+ ["Debugger.EvaluationOptions.AllowMethodEvaluation"] = args.EvaluationContext.Options.AllowMethodEvaluation,
+ ["Debugger.EvaluationOptions.AllowTargetInvoke"] = args.EvaluationContext.Options.AllowTargetInvoke,
+ ["Debugger.EvaluationOptions.AllowToStringCalls"] = args.EvaluationContext.Options.AllowToStringCalls,
+ ["Debugger.EvaluationOptions.ChunkRawStrings"] = args.EvaluationContext.Options.ChunkRawStrings,
+ ["Debugger.EvaluationOptions.EvaluationTimeout"] = args.EvaluationContext.Options.EvaluationTimeout,
+ };
+
+ Counters.DebuggerBusy.Inc (1, null, metadata);
+ }
+
if (busyStatusIcon == null) {
busyStatusIcon = IdeApp.Workbench.StatusBar.ShowStatusIcon (ImageService.GetIcon ("md-bug", Gtk.IconSize.Menu));
busyStatusIcon.SetAlertMode (100);
@@ -1422,9 +1439,9 @@ namespace MonoDevelop.Debugger
if (typeSymbol != null && (arity == 0 || arity == typeSymbol.Arity)) {
return symbol;
}
- var namespaceSymbol = symbol as Microsoft.CodeAnalysis.INamespaceSymbol;
- if (namespaceSymbol != null) {
- return namespaceSymbol;
+ var namespaceSymbol = symbol as Microsoft.CodeAnalysis.INamespaceSymbol;
+ if (namespaceSymbol != null) {
+ return namespaceSymbol;
}
}
return null;