diff options
4 files changed, 13 insertions, 8 deletions
diff --git a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs index 1e15c6dce2..483d09a9eb 100644 --- a/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs +++ b/extras/MonoDevelop.Debugger.Win32/CorApi2/Metadata/CorMetadata.cs @@ -877,6 +877,9 @@ namespace Microsoft.Samples.Debugging.CorMetadata attr = MetadataHelperFunctions.GetCustomAttribute (importer, token, typeof (System.Diagnostics.DebuggerBrowsableAttribute));
if (attr != null)
attributes.Add (attr);
+ attr = MetadataHelperFunctions.GetCustomAttribute (importer, token, typeof (System.Runtime.CompilerServices.CompilerGeneratedAttribute));
+ if (attr != null)
+ attributes.Add (attr);
if (attributes.Count == 0)
return emptyAttributes;
diff --git a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs index 0b6c8581ae..a9f30a1d69 100644 --- a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs +++ b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorDebuggerSession.cs @@ -715,10 +715,9 @@ namespace MonoDevelop.Debugger.Win32 process.OnEvalComplete += completeHandler;
process.OnEvalException += exceptionHandler;
- OnStartEvaluating ();
ctx.Eval.NewString (value);
-
process.SetAllThreadsDebugState (CorDebugThreadState.THREAD_SUSPEND, ctx.Thread);
+ OnStartEvaluating ();
ClearEvalStatus ();
process.Continue (false);
@@ -884,7 +883,7 @@ namespace MonoDevelop.Debugger.Win32 CorEvaluationContext cctx = (CorEvaluationContext) ctx;
CorObjectAdaptor actx = (CorObjectAdaptor) ctx.Adapter;
if (actx.IsEnum (ctx, thisVal.Val.ExactType) && !actx.IsEnum (ctx, val.Val.ExactType)) {
- ValueReference vr = actx.GetMember (ctx, thisVal, "value__");
+ ValueReference vr = actx.GetMember (ctx, null, thisVal, "value__");
vr.Value = val;
// Required to make sure that var returns an up-to-date value object
thisVal.IsValid = false;
diff --git a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorObjectAdaptor.cs b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorObjectAdaptor.cs index 8f438e1b75..c48838f973 100644 --- a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorObjectAdaptor.cs +++ b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/CorObjectAdaptor.cs @@ -418,9 +418,6 @@ namespace MonoDevelop.Debugger.Win32 CorType t = (CorType) tt;
CorValRef val = (CorValRef) gval;
- if (val != null)
- t = GetRealObject (ctx, val).ExactType;
-
if (t.Class == null)
yield break;
@@ -509,7 +506,7 @@ namespace MonoDevelop.Debugger.Win32 MetadataType rt = co.ExactType.Class.GetTypeInfo (cctx.Session) as MetadataType;
bool isFlags = rt != null && rt.ReallyIsFlagsEnum;
string enumName = GetTypeName (ctx, co.ExactType);
- ValueReference val = GetMember (ctx, objr, "value__");
+ ValueReference val = GetMember (ctx, null, objr, "value__");
ulong nval = (ulong) Convert.ChangeType (val.ObjectValue, typeof(ulong));
ulong remainingFlags = nval;
string flags = null;
@@ -684,6 +681,11 @@ namespace MonoDevelop.Debugger.Win32 foreach (MemberInfo m in mems) {
object[] atts = m.GetCustomAttributes (typeof (DebuggerBrowsableAttribute), false);
+ if (atts.Length == 0) {
+ atts = m.GetCustomAttributes (typeof (System.Runtime.CompilerServices.CompilerGeneratedAttribute), false);
+ if (atts.Length > 0)
+ atts[0] = new DebuggerBrowsableAttribute (DebuggerBrowsableState.Never);
+ }
if (atts.Length > 0) {
if (td == null) td = new TypeDisplayData ();
if (td.MemberData == null) td.MemberData = new Dictionary<string, DebuggerBrowsableState> ();
diff --git a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/PropertyReference.cs b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/PropertyReference.cs index 74cb18af90..cd3c8eb0bc 100644 --- a/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/PropertyReference.cs +++ b/extras/MonoDevelop.Debugger.Win32/MonoDevelop.Debugger.Win32/PropertyReference.cs @@ -52,10 +52,11 @@ namespace MonoDevelop.Debugger.Win32 : base (ctx) { this.prop = prop; - this.thisobj = thisobj; this.declaringType = declaringType; this.module = declaringType.Class.Module; this.index = index; + if (!prop.GetGetMethod (true).IsStatic) + this.thisobj = thisobj; loader = delegate { return ((CorValRef)Value).Val; |