diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs index d445baf363..7fb542c936 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Service/WindowsDebugger.cs @@ -396,7 +396,7 @@ namespace ICSharpCode.SharpDevelop.Services }*/ //currentTooltipExpression = valueNode.Expression; //return new DebuggerGridControl(currentTooltipRow); - return valueNode.Expression + " = " + valueNode.Text + ", type: " + valueNode.Type; + return variableName + " = " + valueNode.Text + ", type: " + valueNode.Type; } public bool CanSetInstructionPointer(string filename, int line, int column) diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs index a30cc70212..f601ba4fdb 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ObjectValue.cs @@ -9,6 +9,7 @@ using System; using System.Collections.Generic; using Debugger.AddIn.Visualizers.Utils; using Debugger.MetaData; +using ICSharpCode.NRefactory.Ast; namespace Debugger.AddIn.Visualizers.GridVisualizer { @@ -37,7 +38,6 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer Value memberValue = value.GetMemberValue(memberInfo); ObjectProperty property = new ObjectProperty(); - property.Name = memberInfo.Name; // property.Expression = ?.Age // - cannot use expression, @@ -45,31 +45,30 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer property.IsAtomic = memberValue.Type.IsPrimitive; property.IsNull = memberValue.IsNull; //property.Value = memberValue.AsString; - property.Value = memberValue.InvokeToString(); - + property.Value = memberValue.IsNull ? "" : memberValue.InvokeToString(); result.properties.Add(property.Name, property); } return result; } - /*public static ObjectValue Create(Expression expr, DebugType type, BindingFlags bindingFlags) + public static ObjectValue Create(Expression expr, DebugType type, BindingFlags bindingFlags) { ObjectValue result = new ObjectValue(); - foreach(Expression memberExpr in expr.AppendObjectMembers(type, bindingFlags)) + foreach(MemberInfo memberInfo in type.GetMembers(bindingFlags)) { + Expression memberExpression = expr.AppendMemberReference(memberInfo); + Value memberValue = memberExpression.Evaluate(WindowsDebugger.CurrentProcess); + ObjectProperty property = new ObjectProperty(); - - Value propertyValue = memberExpr.Evaluate(WindowsDebugger.CurrentProcess); - property.Name = memberExpr.CodeTail; - property.Expression = memberExpr; - property.IsAtomic = propertyValue.Type.IsPrimitive; - property.IsNull = propertyValue.IsNull; - //property.Value = property.IsNull ? "" : propertyValue.AsString; - property.Value = propertyValue.AsString; - + property.Name = memberInfo.Name; + property.Expression = memberExpression; + property.IsAtomic = memberValue.Type.IsPrimitive; + property.IsNull = memberValue.IsNull; + property.Value = memberValue.IsNull ? "" : memberValue.InvokeToString(); + result.properties.Add(property.Name, property); } return result; - }*/ + } } } diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs index 6a2ad5e35f..41bc716c22 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/EnumerableValuesProvider.cs @@ -10,7 +10,7 @@ using System; using System.Collections; using System.Collections.Generic; using ICSharpCode.SharpDevelop.Services; -using Expression = ICSharpCode.NRefactory.Ast.Expression; +using ICSharpCode.NRefactory.Ast; namespace Debugger.AddIn.Visualizers.GridVisualizer { diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs index 179124fc24..0329f4d7dc 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/GridVisualizer/ValueProviders/ListValuesProvider.cs @@ -50,6 +50,8 @@ namespace Debugger.AddIn.Visualizers.GridVisualizer { return ObjectValue.Create( targetObject.AppendIndexer(index).Evaluate(WindowsDebugger.CurrentProcess).GetPermanentReference(), + // don't use PermanentReference + //targetObject.AppendIndexer(index), this.listItemType, this.bindingFlags); } diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Utils/ITreeNode.cs b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Utils/ITreeNode.cs index 215bf65070..22e818a7a2 100644 --- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Utils/ITreeNode.cs +++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Src/Visualizers/Utils/ITreeNode.cs @@ -11,7 +11,7 @@ using System; namespace Debugger.AddIn.Visualizers.Utils { /// - /// Anything that that has recursive children. Used by . + /// Anything that has recursive children. Used by . /// public interface ITreeNode { diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Values/Value.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Values/Value.cs index d2ef6bf5a0..5d704114ac 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Values/Value.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Values/Value.cs @@ -33,7 +33,7 @@ namespace Debugger get { return expression.PrettyPrint(); } } - /// Abstract syntax three of the expression which can be used to reobtain this value. + /// Abstract syntax tree of the expression which can be used to reobtain this value. [Tests.Ignore] public Expression ExpressionTree { get { return expression; }