diff options
4 files changed, 36 insertions, 2 deletions
diff --git a/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/ChangeLog b/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/ChangeLog index 57ff94e5d7..a283fc4c5c 100644 --- a/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/ChangeLog +++ b/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/ChangeLog @@ -1,3 +1,14 @@ +2009-12-03 Lluis Sanchez Gual <lluis@novell.com> + + * MdbObjectValueAdaptor.cs: Track api changes. + +2009-12-02 Lluis Sanchez Gual <lluis@novell.com> + + * FieldReference.cs: + * PropertyReference.cs: + * MdbObjectValueAdaptor.cs: Implement new members. Properly + set the Global flag for static fields and properties. + 2009-11-23 Lluis Sanchez Gual <lluis@novell.com> * Convert.cs: Improve conversion of corlib types. diff --git a/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/FieldReference.cs b/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/FieldReference.cs index a9651a8b20..e705fdbe93 100644 --- a/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/FieldReference.cs +++ b/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/FieldReference.cs @@ -53,6 +53,12 @@ namespace DebuggerServer } } + public override object DeclaringType { + get { + return type; + } + } + public override object Value { get { MdbEvaluationContext ctx = (MdbEvaluationContext) Context; @@ -78,6 +84,7 @@ namespace DebuggerServer get { ObjectValueFlags flags = ObjectValueFlags.Field | ObjectUtil.GetAccessibility (field.Accessibility); if (field.HasConstValue) flags |= ObjectValueFlags.ReadOnly; + if (field.IsStatic) flags |= ObjectValueFlags.Global; return flags; } } diff --git a/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/MdbObjectValueAdaptor.cs b/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/MdbObjectValueAdaptor.cs index 9b61f95234..fa2a00a11c 100644 --- a/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/MdbObjectValueAdaptor.cs +++ b/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/MdbObjectValueAdaptor.cs @@ -273,6 +273,15 @@ namespace DebuggerServer return mctx.Frame.Language.LookupType (name); } + public override object GetBaseType (EvaluationContext ctx, object t) + { + MdbEvaluationContext mctx = (MdbEvaluationContext) ctx; + TargetStructType type = t as TargetStructType; + if (type != null && type.HasParent) + return type.GetParentType (mctx.Thread); + else + return null; + } public override object[] GetTypeArgs (EvaluationContext ctx, object type) { @@ -414,7 +423,7 @@ namespace DebuggerServer return obj.GetType ().GetProperty (name).GetValue (obj, null); } - public override IEnumerable<ValueReference> GetMembers (EvaluationContext gctx, object tt, object ob, BindingFlags bindingFlags) + protected override IEnumerable<ValueReference> GetMembers (EvaluationContext gctx, object tt, object ob, BindingFlags bindingFlags) { MdbEvaluationContext ctx = (MdbEvaluationContext)gctx; TargetStructObject co = ctx.GetRealObject (ob) as TargetStructObject; // It can be a TargetObjectObject @@ -944,7 +953,7 @@ namespace DebuggerServer } } - if (type.HasParent) + if (type.HasParent && (flags & BindingFlags.DeclaredOnly) == 0) type = type.GetParentType (ctx.Thread); else break; diff --git a/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/PropertyReference.cs b/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/PropertyReference.cs index d716c9a013..1995ffbba1 100644 --- a/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/PropertyReference.cs +++ b/extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/PropertyReference.cs @@ -51,6 +51,12 @@ namespace DebuggerServer } } + public override object DeclaringType { + get { + return prop.Getter.DeclaringType; + } + } + public override object Value { get { MdbEvaluationContext ctx = (MdbEvaluationContext) Context; @@ -72,6 +78,7 @@ namespace DebuggerServer get { ObjectValueFlags flags = ObjectValueFlags.Property | ObjectUtil.GetAccessibility (prop.Accessibility); if (!prop.CanWrite) flags |= ObjectValueFlags.ReadOnly; + if (prop.IsStatic) flags |= ObjectValueFlags.Global; return flags; } } |