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; }