diff options
Diffstat (limited to 'extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/MdbObjectValueAdaptor.cs')
-rw-r--r-- | extras/MonoDevelop.Debugger.Mdb/Mono.Debugging.Server.Mdb/MdbObjectValueAdaptor.cs | 13 |
1 files changed, 11 insertions, 2 deletions
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; |