diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/Module.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/Module.cs index 4488b26137..eb8d5d9ee0 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/Module.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/Module.cs @@ -223,7 +223,9 @@ namespace Debugger if (ca.Owner >> 24 == 0x02) { // TypeDef ICorDebugClass2 corClass = corModule.GetClassFromToken(ca.Owner).CastTo(); corClass.SetJMCStatus(0 /* false */); - this.Process.TraceMessage("Class {0} marked as non-user code", metaData.GetTypeDefProps(ca.Owner).Name); + if (this.Debugger.Verbose) { + this.Process.TraceMessage("Class {0} marked as non-user code", metaData.GetTypeDefProps(ca.Owner).Name); + } } if (ca.Owner >> 24 == 0x06) { // MethodDef DisableJustMyCode(ca.Owner); @@ -280,7 +282,9 @@ namespace Debugger ICorDebugFunction2 corFunction = corModule.GetFunctionFromToken(methodProps.Token).CastTo(); corFunction.SetJMCStatus(0 /* false */); - this.Process.TraceMessage("Funciton {0}.{1} marked as non-user code", typeProps.Name, methodProps.Name); + if (this.Debugger.Verbose) { + this.Process.TraceMessage("Funciton {0}.{1} marked as non-user code", typeProps.Name, methodProps.Name); + } } bool IsSingleLine(uint methodDef) diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/NDebugger.Options.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/NDebugger.Options.cs index 56dcb3bac6..28f638ea77 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/NDebugger.Options.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/NDebugger.Options.cs @@ -15,6 +15,7 @@ namespace Debugger bool obeyDebuggerAttributes = true; bool skipProperties = true; bool skipOnlySingleLineProperties = true; + bool verbose = false; string[] symbolsSearchPaths; void ResetJustMyCodeInModules() @@ -66,7 +67,6 @@ namespace Debugger } } - public string[] SymbolsSearchPaths { get { return symbolsSearchPaths; } set { @@ -81,5 +81,10 @@ namespace Debugger } } } + + public bool Verbose { + get { return verbose; } + set { verbose = value; } + } } } diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/NDebugger.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/NDebugger.cs index 3aa020e41e..c271e2aac2 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/NDebugger.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Control/NDebugger.cs @@ -52,9 +52,11 @@ namespace Debugger mta2sta.CallMethod = CallMethod.DirectCall; } - Wrappers.ResourceManager.TraceMessagesEnabled = false; + Wrappers.ResourceManager.TraceMessagesEnabled = true; Wrappers.ResourceManager.TraceMessage += delegate (object s, MessageEventArgs e) { - TraceMessage(e.Message); + if (this.Verbose) { + TraceMessage(e.Message); + } }; } diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Expression.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Expression.cs index bc69452704..2d2ad3011b 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Expression.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Expressions/Expression.cs @@ -72,7 +72,9 @@ namespace Debugger.Expressions result = GetFromCache(context); if (result != null) { - context.Process.TraceMessage(string.Format("Cached: {0,-12} ({1})", this.Code, this.GetType().Name)); + if (context.Process.Debugger.Verbose) { + context.Process.TraceMessage(string.Format("Cached: {0,-12} ({1})", this.Code, this.GetType().Name)); + } return result; } @@ -88,7 +90,9 @@ namespace Debugger.Expressions DateTime end = Debugger.Util.HighPrecisionTimer.Now; expressionCache[this] = result; - context.Process.TraceMessage(string.Format("Evaluated: {0,-12} ({1}) ({2} ms)", this.Code, this.GetType().Name, (end - start).TotalMilliseconds)); + if (context.Process.Debugger.Verbose) { + context.Process.TraceMessage(string.Format("Evaluated: {0,-12} ({1}) ({2} ms)", this.Code, this.GetType().Name, (end - start).TotalMilliseconds)); + } return result; } diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Metadata/DebugType.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Metadata/DebugType.cs index f59bda4e1a..687b473248 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Metadata/DebugType.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Metadata/DebugType.cs @@ -415,7 +415,9 @@ namespace Debugger.MetaData foreach(DebugType loadedType in typesWithMatchingName) { if (loadedType.Equals(type)) { TimeSpan totalTime = Util.HighPrecisionTimer.Now - startTime; - //process.TraceMessage("Type " + type.FullName + " was loaded already (" + totalTime.TotalMilliseconds + " ms)"); + if (process.Debugger.Verbose) { + process.TraceMessage("Type " + type.FullName + " was loaded already (" + totalTime.TotalMilliseconds + " ms)"); + } return loadedType; // Type was loaded before } } @@ -430,8 +432,10 @@ namespace Debugger.MetaData TimeSpan totalTime2 = Util.HighPrecisionTimer.Now - startTime; string prefix = type.IsInterface ? "interface" : "type"; process.TraceMessage("Loaded {0} {1} ({2} ms)", prefix, type.FullName, totalTime2.TotalMilliseconds); - foreach(DebugType inter in type.Interfaces) { - process.TraceMessage(" - Implements {0}", inter.FullName); + if (process.Debugger.Verbose) { + foreach(DebugType inter in type.Interfaces) { + process.TraceMessage(" - Implements {0}", inter.FullName); + } } return type; diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Metadata/MethodInfo.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Metadata/MethodInfo.cs index c8e1077d1f..0c2ad63421 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Metadata/MethodInfo.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Metadata/MethodInfo.cs @@ -168,7 +168,9 @@ namespace Debugger.MetaData if (member == null) return null; if (!(member is FieldInfo)) return null; - this.Process.TraceMessage(string.Format("Found backing field for {0}: {1}", this.FullName, member.Name)); + if (this.Process.Debugger.Verbose) { + this.Process.TraceMessage(string.Format("Found backing field for {0}: {1}", this.FullName, member.Name)); + } return (FieldInfo)member; }