diff --git a/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs b/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs
index 79327a8919..80e01cb6e4 100644
--- a/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs
+++ b/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/DebuggerTests.cs
@@ -425,5 +425,21 @@ namespace Debugger.Tests
process.WaitForExit();
CheckXmlOutput();
}
+
+ [Test]
+ public void Expressions()
+ {
+ StartTest("Expressions");
+ WaitForPause();
+
+ ObjectDump("Variables", process.SelectedFunction.Variables);
+ ObjectDump("array", process.SelectedFunction.Variables["array"].GetArrayElements());
+ ObjectDump("array2", process.SelectedFunction.Variables["array2"].GetArrayElements());
+ ObjectDump("this", process.SelectedFunction.ThisValue.GetMembers());
+
+ process.Continue();
+ process.WaitForExit();
+ CheckXmlOutput();
+ }
}
}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Expressions.cs b/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Expressions.cs
new file mode 100644
index 0000000000..24fd92d76d
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Expressions.cs
@@ -0,0 +1,50 @@
+//
+//
+//
+//
+// $Revision: 2279 $
+//
+
+using System;
+
+namespace Debugger.Tests.TestPrograms
+{
+ public class BaseClass
+ {
+ string name = "base name";
+
+ public string Name {
+ get { return name; }
+ }
+
+ public string Value = "base value";
+ }
+
+ public class TestClass: BaseClass
+ {
+ string name = "derived name";
+
+ new public string Name {
+ get { return name; }
+ }
+
+ new public string Value = "derived value";
+
+ string field = "field value";
+ string[] array = {"one", "two", "three"};
+
+ public static void Main()
+ {
+ new TestClass().Test("argValue");
+ }
+
+ public void Test(string arg)
+ {
+ int i = 0;
+ string[] array = {"one", "two", "three"};
+ string[,] array2 = {{"A","B"},{"C","D"}};
+
+ System.Diagnostics.Debugger.Break();
+ }
+ }
+}
diff --git a/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Expressions.xml b/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Expressions.xml
new file mode 100644
index 0000000000..67c83f0cf3
--- /dev/null
+++ b/src/AddIns/Misc/Debugger/Debugger.Tests/Project/Src/TestPrograms/Expressions.xml
@@ -0,0 +1,490 @@
+
+
+
+
+ mscorlib.dll
+ Expressions.exe
+ Break
+
+
+ 13
+
+
+ False
+
+
+
+ True
+ False
+ False
+
+ this
+ False
+ {Debugger.Tests.TestPrograms.TestClass}
+ this
+ False
+ Debugger.Tests.TestPrograms.TestClass
+
+
+ False
+
+
+
+ False
+ True
+ False
+ argValue
+ arg
+ False
+ argValue
+ arg
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ True
+ 0
+ i
+ False
+ 0
+ i
+ False
+ System.Int32
+
+
+ True
+ 3
+ 1
+ System.UInt32[]
+ False
+ False
+ False
+
+ array
+ False
+ {System.String[]}
+ array
+ False
+ System.String[]
+
+
+ True
+ 4
+ 2
+ System.UInt32[]
+ False
+ False
+ False
+
+ array2
+ False
+ {System.String[,]}
+ array2
+ False
+ System.String[,]
+
+
+ False
+
+
+
+ False
+ True
+ False
+ derived name
+ name
+ False
+ derived name
+ this.name
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ derived value
+ Value
+ False
+ derived value
+ this.Value
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ field value
+ field
+ False
+ field value
+ this.field
+ False
+ System.String
+
+
+ True
+ 3
+ 1
+ System.UInt32[]
+ False
+ False
+ False
+
+ array
+ False
+ {System.String[]}
+ this.array
+ False
+ System.String[]
+
+
+ False
+
+
+
+ False
+ True
+ False
+ derived name
+ Name
+ False
+ derived name
+ this.Name
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ base name
+ name
+ False
+ base name
+ this.name
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ base value
+ Value
+ False
+ base value
+ this.Value
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ base name
+ Name
+ False
+ base name
+ this.Name
+ False
+ System.String
+
+
+
+
+ EvalComplete
+ EvalComplete
+
+
+ 3
+
+
+ False
+
+
+
+ False
+ True
+ False
+ one
+ [0]
+ False
+ one
+ array[0]
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ two
+ [1]
+ False
+ two
+ array[1]
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ three
+ [2]
+ False
+ three
+ array[2]
+ False
+ System.String
+
+
+
+
+
+
+ 4
+
+
+ False
+
+
+
+ False
+ True
+ False
+ A
+ [0,0]
+ False
+ A
+ array2[0, 0]
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ B
+ [0,1]
+ False
+ B
+ array2[0, 1]
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ C
+ [1,0]
+ False
+ C
+ array2[1, 0]
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ D
+ [1,1]
+ False
+ D
+ array2[1, 1]
+ False
+ System.String
+
+
+
+
+
+
+ 8
+
+
+ False
+
+
+
+ False
+ True
+ False
+ derived name
+ name
+ False
+ derived name
+ this.name
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ derived value
+ Value
+ False
+ derived value
+ this.Value
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ field value
+ field
+ False
+ field value
+ this.field
+ False
+ System.String
+
+
+ True
+ 3
+ 1
+ System.UInt32[]
+ False
+ False
+ False
+
+ array
+ False
+ {System.String[]}
+ this.array
+ False
+ System.String[]
+
+
+ False
+
+
+
+ False
+ True
+ False
+ derived name
+ Name
+ False
+ derived name
+ this.Name
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ base name
+ name
+ False
+ base name
+ this.name
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ base value
+ Value
+ False
+ base value
+ this.Value
+ False
+ System.String
+
+
+ False
+
+
+
+ False
+ True
+ False
+ base name
+ Name
+ False
+ base name
+ this.Name
+ False
+ System.String
+
+
+
+
+ EvalComplete
+ EvalComplete
+
+
+
\ No newline at end of file