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