From 848aa733e53ebb085518f64b762029068ea553f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Srbeck=C3=BD?= Date: Sun, 10 Jun 2012 10:53:32 +0200 Subject: [PATCH] Fixing/updating debugger unit tests: AppDomain_Tests, ControlFlow_Stepping, DebugType_Tests, StackFrame_Callstack, StackFrame_Lifetime --- src/AddIns/Debugger/Debugger.Core/Eval.cs | 10 +- .../Debugger.Core/SourcecodeSegment.cs | 14 +- .../Debugger/Debugger.Core/StackFrame.cs | 36 +- .../Debugger.Core/TypeSystemExtensions.cs | 5 - src/AddIns/Debugger/Debugger.Core/Value.cs | 4 +- .../Debugger.Tests/Debugger.Tests.csproj | 1 - .../Debugger.Tests/DebuggerTestsBase.cs | 23 +- .../Debugger.Tests/Tests/AppDomain_Tests.cs | 25 +- .../Tests/ControlFlow_Stepping.cs | 26 +- .../Debugger.Tests/Tests/DebugType_Tests.cs | 1690 ----------------- .../Tests/StackFrame_Callstack.cs | 12 +- .../Tests/StackFrame_Lifetime.cs | 16 +- 12 files changed, 96 insertions(+), 1766 deletions(-) delete mode 100644 src/AddIns/Debugger/Debugger.Tests/Tests/DebugType_Tests.cs diff --git a/src/AddIns/Debugger/Debugger.Core/Eval.cs b/src/AddIns/Debugger/Debugger.Core/Eval.cs index 4d38cea43e..2d91ed09b3 100644 --- a/src/AddIns/Debugger/Debugger.Core/Eval.cs +++ b/src/AddIns/Debugger/Debugger.Core/Eval.cs @@ -191,10 +191,12 @@ namespace Debugger /// Synchronously calls a function and returns its return value public static Value InvokeMethod(Thread evalThread, IMethod method, Value thisValue, Value[] args) { - if (method.GetBackingField() != null) { - evalThread.Process.TraceMessage("Using backing field for " + method.FullName); - return Value.GetMemberValue(evalThread, thisValue, method.GetBackingField(), args); - } + #warning Fast property eval +// var field = Value.GetBackingField(method); +// if (field != null) { +// evalThread.Process.TraceMessage("Using backing field for " + method.FullName); +// return Value.GetMemberValue(evalThread, thisValue, field, args); +// } return AsyncInvokeMethod(evalThread, method, thisValue, args).WaitForResult(); } diff --git a/src/AddIns/Debugger/Debugger.Core/SourcecodeSegment.cs b/src/AddIns/Debugger/Debugger.Core/SourcecodeSegment.cs index af985081b4..3f1a0af159 100644 --- a/src/AddIns/Debugger/Debugger.Core/SourcecodeSegment.cs +++ b/src/AddIns/Debugger/Debugger.Core/SourcecodeSegment.cs @@ -184,20 +184,10 @@ namespace Debugger /// 'ILStart <= ILOffset <= ILEnd' and this range includes at least /// the returned area of source code. (May incude some extra compiler generated IL too) /// - internal static SourcecodeSegment Resolve(Module module, ICorDebugFunction corFunction, int offset) + internal static SourcecodeSegment Resolve(Module module, ISymUnmanagedMethod symMethod, ICorDebugFunction corFunction, int offset) { - ISymUnmanagedReader symReader = module.SymReader; - if (symReader == null) return null; // No symbols - - ISymUnmanagedMethod symMethod; - try { - symMethod = symReader.GetMethod(corFunction.GetToken()); - } catch (COMException) { - // Can not find the method - // eg. Compiler generated constructors are not in symbol store + if (symMethod == null) return null; - } - if (symMethod == null) return null; uint sequencePointCount = symMethod.GetSequencePointCount(); SequencePoint[] sequencePoints = symMethod.GetSequencePoints(); diff --git a/src/AddIns/Debugger/Debugger.Core/StackFrame.cs b/src/AddIns/Debugger/Debugger.Core/StackFrame.cs index 4fd0436231..4e361195e1 100644 --- a/src/AddIns/Debugger/Debugger.Core/StackFrame.cs +++ b/src/AddIns/Debugger/Debugger.Core/StackFrame.cs @@ -38,6 +38,7 @@ namespace Debugger /// Internal index of the stack frame. The value is increasing with age. public uint FrameIndex { get; private set; } + [Debugger.Tests.Ignore] public Module Module { get; private set; } public IMethod MethodInfo { get; private set; } @@ -52,6 +53,21 @@ namespace Debugger } } + internal ISymUnmanagedMethod SymMethod { + get { + if (this.Module.SymReader == null) { + return null; + } + try { + return this.Module.SymReader.GetMethod(this.CorFunction.GetToken()); + } catch (COMException) { + // Can not find the method + // eg. Compiler generated constructors are not in symbol store + return null; + } + } + } + /// Returns true is this incance can not be used any more. public bool IsInvalid { get { @@ -119,7 +135,7 @@ namespace Debugger { if (SourceCodeLine != 0) return SourcecodeSegment.ResolveForIL(this.Module, this.CorFunction, SourceCodeLine, offset, ILRanges); - return SourcecodeSegment.Resolve(this.Module, this.CorFunction, offset); + return SourcecodeSegment.Resolve(this.Module, this.SymMethod, this.CorFunction, offset); } /// Step into next instruction @@ -334,16 +350,10 @@ namespace Debugger public IEnumerable GetLocalVariables() { if (localVariables == null) { + var symMethod = this.SymMethod; // Note that the user might load symbols later - if (this.Module.SymReader == null) + if (symMethod == null) return new List(); - - ISymUnmanagedMethod symMethod; - try { - symMethod = this.Module.SymReader.GetMethod(this.MethodInfo.GetMetadataToken()); - } catch { - return new List(); - } localVariables = LocalVariable.GetLocalVariables(this.MethodInfo, symMethod); } @@ -373,7 +383,7 @@ namespace Debugger return false; if (opt.StepOverNoSymbols) { - if (this.Module.SymReader == null) return true; + if (this.SymMethod == null) return true; } if (opt.StepOverDebuggerAttributes) { string[] debuggerAttributes = { @@ -385,12 +395,10 @@ namespace Debugger if (this.MethodInfo.DeclaringType.GetDefinition().Attributes.Any(a => debuggerAttributes.Contains(a.AttributeType.FullName))) return true; } if (opt.StepOverAllProperties) { - // TODO - // if (this.IsPropertyAccessor) return true; + if (this.MethodInfo.IsAccessor) return true; } if (opt.StepOverFieldAccessProperties) { - // TODO - // if (this.IsPropertyAccessor && this.BackingFieldToken != 0) return true; + if (this.MethodInfo.IsAccessor && Value.GetBackingFieldToken(this.MethodInfo) != 0) return true; } return false; } diff --git a/src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs b/src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs index 5a693ae052..b1f6ba72b2 100644 --- a/src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs +++ b/src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs @@ -385,11 +385,6 @@ namespace Debugger } } - public static IField GetBackingField(this IMethod method) - { - return null; - } - public static ICorDebugType[] GetTypeArguments(this IMethod method) { List typeArgs = new List(); diff --git a/src/AddIns/Debugger/Debugger.Core/Value.cs b/src/AddIns/Debugger/Debugger.Core/Value.cs index d5a496ae06..ae1aab3c52 100644 --- a/src/AddIns/Debugger/Debugger.Core/Value.cs +++ b/src/AddIns/Debugger/Debugger.Core/Value.cs @@ -618,9 +618,9 @@ namespace Debugger #endregion /// Is this method in form 'return this.field;'? - internal static uint GetBackingFieldToken(ICorDebugFunction corFunction) + internal static uint GetBackingFieldToken(IMethod method) { - // TODO: use this + ICorDebugFunction corFunction = method.ToCorFunction(); ICorDebugCode corCode; try { diff --git a/src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj b/src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj index ca8faa8854..00fcb1743b 100644 --- a/src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj +++ b/src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj @@ -54,7 +54,6 @@ - diff --git a/src/AddIns/Debugger/Debugger.Tests/DebuggerTestsBase.cs b/src/AddIns/Debugger/Debugger.Tests/DebuggerTestsBase.cs index be8bf6e334..2fed6edbe9 100644 --- a/src/AddIns/Debugger/Debugger.Tests/DebuggerTestsBase.cs +++ b/src/AddIns/Debugger/Debugger.Tests/DebuggerTestsBase.cs @@ -222,7 +222,7 @@ namespace Debugger.Tests } LogEvent("ExceptionThrown", msg.ToString()); } - LogEvent("Paused", CurrentStackFrame != null ? CurrentStackFrame.NextStatement.ToString() : string.Empty); + LogEvent("Paused", CurrentStackFrame != null && CurrentStackFrame.NextStatement != null ? CurrentStackFrame.NextStatement.ToString() : string.Empty); }; process.Exited += delegate(object sender, DebuggerEventArgs e) { LogEvent("Exited", null); @@ -268,6 +268,27 @@ namespace Debugger.Tests } } + class LocalVariable + { + public string Name { get; set; } + public Type Type { get; set; } + public Value Value { get; set; } + } + + public void DumpLocalVariables() + { + DumpLocalVariables("LocalVariables"); + } + + public void DumpLocalVariables(string msg) + {/* + ObjectDump( + msg, + this.CurrentStackFrame.MethodInfo.GetLocalVariables(this.CurrentStackFrame.IP).Select(v => new LocalVariable() { Name = v.Name, Type = v.LocalType, Value = v.GetValue(this.CurrentStackFrame)}) + ); + */ + } + List expandProperties; List ignoreProperties; diff --git a/src/AddIns/Debugger/Debugger.Tests/Tests/AppDomain_Tests.cs b/src/AddIns/Debugger/Debugger.Tests/Tests/AppDomain_Tests.cs index e59aae9d96..b2c67189b3 100644 --- a/src/AddIns/Debugger/Debugger.Tests/Tests/AppDomain_Tests.cs +++ b/src/AddIns/Debugger/Debugger.Tests/Tests/AppDomain_Tests.cs @@ -2,7 +2,6 @@ // This code is distributed under the GNU LGPL (for details please see \doc\license.txt) using System; -using ICSharpCode.NRefactory.TypeSystem; namespace Debugger.Tests { @@ -32,23 +31,22 @@ namespace Debugger.Tests #if TEST_CODE namespace Debugger.Tests { using Debugger.MetaData; + using ICSharpCode.NRefactory.TypeSystem; public partial class DebuggerTests { - [NUnit.Framework.Test, NUnit.Framework.Ignore] + [NUnit.Framework.Test] public void AppDomain_Tests() { StartTest(); -// IType type1 = this.CurrentStackFrame.GetLocalVariableValue("one").Type; -// IType type1b = this.CurrentStackFrame.GetLocalVariableValue("one").Type; -// ObjectDump("SameDomainEqual", type1.Equals(type1b)); -// process.Continue(); -// ObjectDump("AppDomainName", this.CurrentStackFrame.GetLocalVariableValue("appDomainName").AsString()); -// IType type2 = this.CurrentStackFrame.GetLocalVariableValue("two").Type; -// ObjectDump("OtherDomainEqual", type1.Equals(type2)); -// ObjectDump("AppDomainsEqual", type1.AppDomain == type2.AppDomain); -// ObjectDump("AppDomainIDsEqual", type1.AppDomain.ID == type2.AppDomain.ID); + IType type1 = this.CurrentStackFrame.GetLocalVariableValue("one").Type; + process.Continue(); + ObjectDump("AppDomainName", this.CurrentStackFrame.GetLocalVariableValue("appDomainName").AsString()); + IType type2 = this.CurrentStackFrame.GetLocalVariableValue("two").Type; + ObjectDump("OtherDomainEqual", type1.Equals(type2)); + ObjectDump("AppDomain1-ID", type1.GetDefinition().Compilation.GetAppDomain().ID); + ObjectDump("AppDomain2-ID", type2.GetDefinition().Compilation.GetAppDomain().ID); EndTest(); } @@ -65,14 +63,13 @@ namespace Debugger.Tests { mscorlib.dll (No symbols) AppDomain_Tests.exe (Has symbols) AppDomain_Tests.cs:13,4-13,40 - True mscorlib.dll (No symbols) AppDomain_Tests.exe (Has symbols) AppDomain_Tests.cs:26,4-26,40 myDomain Id=2 False - False - False + 1 + 2 diff --git a/src/AddIns/Debugger/Debugger.Tests/Tests/ControlFlow_Stepping.cs b/src/AddIns/Debugger/Debugger.Tests/Tests/ControlFlow_Stepping.cs index 1e9c702976..458588d2d0 100644 --- a/src/AddIns/Debugger/Debugger.Tests/Tests/ControlFlow_Stepping.cs +++ b/src/AddIns/Debugger/Debugger.Tests/Tests/ControlFlow_Stepping.cs @@ -26,7 +26,7 @@ namespace Debugger.Tests public void Target() {} } - public static int ShortProperty { + public static int Property { get { return 1; } @@ -36,11 +36,11 @@ namespace Debugger.Tests public static int FieldProperty { get { - return - field; + return field; } } + [DebuggerNonUserCode] static void ZigZag1() { @@ -99,7 +99,7 @@ namespace Debugger.Tests string theasnwer = 42.ToString(); StepRoot(); new DefaultCtorClass().Target(); - int s = ShortProperty; + int p = Property; int f = FieldProperty; CatchExcpetion(); ZigZag1(); @@ -127,7 +127,6 @@ namespace Debugger.Tests { this.CurrentStackFrame.SetIP(start.Filename, start.StartLine + 1, start.StartColumn, false); process.Options.EnableJustMyCode = jmcEnabled; - process.Options.StepOverSingleLineProperties = true; process.Options.StepOverFieldAccessProperties = true; this.CurrentStackFrame.StepInto(); // 42.ToString() @@ -150,7 +149,10 @@ namespace Debugger.Tests { this.CurrentStackFrame.StepOver(); // Finish the step out Assert.AreEqual("Main", this.CurrentStackFrame.MethodInfo.Name); - this.CurrentStackFrame.StepInto(); // ShortProperty + this.CurrentStackFrame.StepInto(); // Property + Assert.AreNotEqual("Main", this.CurrentStackFrame.MethodInfo.Name); + this.CurrentStackFrame.StepOut(); + this.CurrentStackFrame.StepOver(); // Finish the step out Assert.AreEqual("Main", this.CurrentStackFrame.MethodInfo.Name); this.CurrentStackFrame.StepInto(); // FieldProperty @@ -209,7 +211,9 @@ namespace Debugger.Tests { ControlFlow_Stepping.cs:101,4-101,36 ControlFlow_Stepping.cs:26,25-26,26 ControlFlow_Stepping.cs:101,4-101,36 - ControlFlow_Stepping.cs:102,4-102,26 + ControlFlow_Stepping.cs:102,4-102,21 + ControlFlow_Stepping.cs:30,8-30,9 + ControlFlow_Stepping.cs:102,4-102,21 ControlFlow_Stepping.cs:103,4-103,26 ControlFlow_Stepping.cs:104,4-104,21 ControlFlow_Stepping.cs:105,4-105,14 @@ -235,7 +239,9 @@ namespace Debugger.Tests { ControlFlow_Stepping.cs:101,4-101,36 ControlFlow_Stepping.cs:26,25-26,26 ControlFlow_Stepping.cs:101,4-101,36 - ControlFlow_Stepping.cs:102,4-102,26 + ControlFlow_Stepping.cs:102,4-102,21 + ControlFlow_Stepping.cs:30,8-30,9 + ControlFlow_Stepping.cs:102,4-102,21 ControlFlow_Stepping.cs:103,4-103,26 ControlFlow_Stepping.cs:104,4-104,21 ControlFlow_Stepping.cs:105,4-105,14 @@ -256,7 +262,9 @@ namespace Debugger.Tests { ControlFlow_Stepping.cs:101,4-101,36 ControlFlow_Stepping.cs:26,25-26,26 ControlFlow_Stepping.cs:101,4-101,36 - ControlFlow_Stepping.cs:102,4-102,26 + ControlFlow_Stepping.cs:102,4-102,21 + ControlFlow_Stepping.cs:30,8-30,9 + ControlFlow_Stepping.cs:102,4-102,21 ControlFlow_Stepping.cs:103,4-103,26 ControlFlow_Stepping.cs:104,4-104,21 ControlFlow_Stepping.cs:105,4-105,14 diff --git a/src/AddIns/Debugger/Debugger.Tests/Tests/DebugType_Tests.cs b/src/AddIns/Debugger/Debugger.Tests/Tests/DebugType_Tests.cs deleted file mode 100644 index 6c513b0248..0000000000 --- a/src/AddIns/Debugger/Debugger.Tests/Tests/DebugType_Tests.cs +++ /dev/null @@ -1,1690 +0,0 @@ -// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) -// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) - -using System; -using System.Collections.Generic; - -namespace Debugger.Tests -{ - public class DebugType_Tests - { - public delegate int AddDelegate(byte b1, byte b2); - - public static int Add(byte b1, byte b2) - { - return b1 + b2; - } - - // The classes are intentionally nested for testing - - public enum MyEnum: byte { A, B } - - public class MyClass - { - } - - public struct MyStruct - { - } - - public class MyGenClass - { - public struct MyNestedStruct - { - } - public struct MyGenNestedStruct - { - } - } - - public interface MyInterfaceBase - { - void MyInterfaceBaseMethod(); - } - - public interface MyInterface: MyInterfaceBase - { - R Fun(A a, B b, M m); - } - - public interface ExtraInterface - { - - } - - public unsafe class MyInterfaceImpl : MyInterface, ExtraInterface - { - public List Prop { get { return new List(); } } - - public R Fun(MyClass a, MyStruct b, M m) - { - throw new NotImplementedException(); - } - - public M[] Fun2(ref int** iPtrPtr, ref M[,] mdArray, ref List.Enumerator listEnum) - { - throw new NotImplementedException(); - } - - void DebugType_Tests.MyInterfaceBase.MyInterfaceBaseMethod() - { - throw new NotImplementedException(); - } - } - - public class MyInterfaceImplDerived: MyInterfaceImpl, ExtraInterface - { - - } - - public unsafe class Members - { - public int instanceInt; - public static int staticInt; - - public void* voidPtr; - public char SetterOnlyProp { set { ; } } - public const int IntLiteral = 42; - - public int InstanceInt { - get { return instanceInt; } - } - - public static int StaticInt { - get { return staticInt; } - } - - public int AutoProperty { get; set; } - - public char this[int i] { - get { throw new NotImplementedException(); } - set { throw new NotImplementedException(); } - } - - public char this[string s] { - get { throw new NotImplementedException(); } - } - } - - public static unsafe void Main() - { - // The nulls should be first to test for "Value does not fall within the expected range." exception of .BaseType - object nullObject = null; - string nullString = null; - MyClass nullMyClass = null; - - // Simple types - int i = 42; - bool b = true; - char c = 'a'; - string s = "abc"; - object obj = new object(); - MyClass myClass = new MyClass(); - MyStruct myStruct = new MyStruct(); - object box = 40; - - // Pointers - int* iPtr = &i; - int** iPtrPtr = &iPtr; - bool* bPtr = &b; - void* voidPtr = &i; - MyStruct* myStructPtr = &myStruct; - IntPtr ptr = IntPtr.Zero; - - // Arrays - char[] szArray = "Test".ToCharArray(); - char[,] mdArray = new char[2,3]; - char[][,] jagArray = new char[][,] { mdArray }; - - // Generics - nullables - int? nullable_value = 5; - int? nullable_null = null; - - // Generic class - MyGenClass myGenClass_int = new MyGenClass(); - MyGenClass[] array_MyGenClass_int = new MyGenClass[] {}; - MyGenClass myGenClass_Nullable_int = new MyGenClass(); - MyGenClass.MyNestedStruct myNestedStruct = new MyGenClass.MyNestedStruct(); - MyGenClass.MyGenNestedStruct myGenNestedStruct = new MyGenClass.MyGenNestedStruct(); - - // Generic interface - MyInterfaceImpl myInterfaceImpl = new MyInterfaceImpl(); - MyInterface myInterface = myInterfaceImpl; - - // TypeRef generics - List list = new List(); - List.Enumerator listEnumerator = list.GetEnumerator(); - - // Other - AddDelegate fnPtr = Add; - ValueType valueType = null; - Enum enumType = null; - MyEnum myEnum = MyEnum.B; - - Members members = new Members(); - Access access = new Access(); - - System.Diagnostics.Debugger.Break(); - } - - public class Access - { - private int privateField = 0; - public int publicField = 0; - protected int protectedField = 0; - internal int internalField = 0; - static int staticField = 0; - - private int privateProperty { get { return 1 + privateField; } } - public int publicProperty { get { return 1 + publicField; } } - protected int protectedProperty { get { return 1 + protectedField; } } - internal int internalProperty { get { return 1 + internalField; } } - static int staticProperty { get { return 1 + staticField; } } - - private void privateMethod() {} - public void publicMethod() {} - protected void protectedMethod() {} - internal void internalMethod() {} - static void staticMethod() {} - } - } -} - -#if TEST_CODE -namespace Debugger.Tests { - using Debugger.MetaData; - using System.Linq; - - public partial class DebuggerTests - { - class LocalVariable - { - public string Name { get; set; } - public Type Type { get; set; } - public Value Value { get; set; } - } - - void DumpLocalVariables() - { - DumpLocalVariables("LocalVariables"); - } - - void DumpLocalVariables(string msg) - {/* - ObjectDump( - msg, - this.CurrentStackFrame.MethodInfo.GetLocalVariables(this.CurrentStackFrame.IP).Select(v => new LocalVariable() { Name = v.Name, Type = v.LocalType, Value = v.GetValue(this.CurrentStackFrame)}) - ); - */ - } - - [NUnit.Framework.Test, NUnit.Framework.Ignore] - public void DebugType_Tests() - { - if (IsDotnet45Installed()) - NUnit.Framework.Assert.Ignore("Does not yet work on .NET 4.5!"); - ExpandProperties( - "LocalVariable.Type", - "DebugType.GetElementType" - ); - StartTest(); - - process.Options.StepOverSingleLineProperties = false; - process.Options.StepOverFieldAccessProperties = true; - /* - ObjectDump("DefinedTypes", process.GetModule("DebugType_Tests.exe").GetNamesOfDefinedTypes()); - ObjectDump("DefinedTypes", process.GetModule("DebugType_Tests.exe").GetDefinedTypes()); - - ObjectDump("Members", this.CurrentStackFrame.GetLocalVariableValue("members").Type.GetMembers(DebugType.BindingFlagsAllDeclared)); - ObjectDump("Access-Members", this.CurrentStackFrame.GetLocalVariableValue("access").Type.GetMembers()); - ObjectDump("MyInterfaceImpl-Members", this.CurrentStackFrame.GetLocalVariableValue("myInterfaceImpl").Type.GetMembers()); - */ - DumpLocalVariables(); - - EndTest(); - } - } -} -#endif - -#if EXPECTED_OUTPUT - - - - - mscorlib.dll (No symbols) - DebugType_Tests.exe (Has symbols) - DebugType_Tests.cs:167,4-167,40 - - Debugger.Tests.DebugType_Tests - AddDelegate - MyEnum - MyClass - MyStruct - MyGenClass`1 - MyNestedStruct - MyGenNestedStruct`1 - MyInterfaceBase - MyInterface`3 - ExtraInterface - MyInterfaceImpl`1 - MyInterfaceImplDerived - Members - Access - - - - - null - - - - - null - - - - - null - - - - - null - - - - - null - - - - - null - - - - - null - - - - - null - - - - - null - - - - - null - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - - - null - - - - - - - - - - - - - - - null - - - - - - - - - - - - - - - null - - - - - - - - - - - - - null - - - - - - - - - - - - - null - - - - - - - - - - - null - - - - - - - - - - - null - - - - - - - - - - - - - null - - - - - - - - - - - - - - - null - - - - - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - - - null - - - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - - null - - - - - - - - -#endif // EXPECTED_OUTPUT diff --git a/src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Callstack.cs b/src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Callstack.cs index 7a08d6acac..a38fe765ce 100644 --- a/src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Callstack.cs +++ b/src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Callstack.cs @@ -60,7 +60,7 @@ namespace Debugger.Tests { ChainIndex="1" FrameIndex="2" HasSymbols="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Callstack.Sub2()" + MethodInfo="[Method Debugger.Tests.StackFrame_Callstack.Sub2]" NextStatement="StackFrame_Callstack.cs:22,4-22,40" Thread="Thread Name = Suspended = False" /> @@ -69,7 +69,7 @@ namespace Debugger.Tests { ChainIndex="1" FrameIndex="1" HasSymbols="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Callstack.Sub1()" + MethodInfo="[Method Debugger.Tests.StackFrame_Callstack.Sub1]" NextStatement="StackFrame_Callstack.cs:17,4-17,11" Thread="Thread Name = Suspended = False" /> @@ -77,7 +77,7 @@ namespace Debugger.Tests { @@ -89,7 +89,7 @@ namespace Debugger.Tests { ChainIndex="1" FrameIndex="1" HasSymbols="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Callstack.Sub1()" + MethodInfo="[Method Debugger.Tests.StackFrame_Callstack.Sub1]" NextStatement="StackFrame_Callstack.cs:17,4-17,11" Thread="Thread Name = Suspended = False" /> @@ -97,7 +97,7 @@ namespace Debugger.Tests { @@ -108,7 +108,7 @@ namespace Debugger.Tests { diff --git a/src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Lifetime.cs b/src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Lifetime.cs index b6b85829f9..637a64b775 100644 --- a/src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Lifetime.cs +++ b/src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Lifetime.cs @@ -73,7 +73,7 @@ namespace Debugger.Tests { ChainIndex="1" FrameIndex="1" HasSymbols="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Lifetime.Function(System.Int32 i)" + MethodInfo="[Method Debugger.Tests.StackFrame_Lifetime.Function]" NextStatement="StackFrame_Lifetime.cs:18,4-18,40" Thread="Thread Name = Suspended = False" /> @@ -84,7 +84,7 @@ namespace Debugger.Tests { ChainIndex="1" FrameIndex="1" HasSymbols="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Lifetime.Function(System.Int32 i)" + MethodInfo="[Method Debugger.Tests.StackFrame_Lifetime.Function]" NextStatement="StackFrame_Lifetime.cs:19,4-19,18" Thread="Thread Name = Suspended = False" /> @@ -93,7 +93,7 @@ namespace Debugger.Tests { ChainIndex="1" FrameIndex="2" HasSymbols="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Lifetime.SubFunction()" + MethodInfo="[Method Debugger.Tests.StackFrame_Lifetime.SubFunction]" NextStatement="StackFrame_Lifetime.cs:25,4-25,40" Thread="Thread Name = Suspended = False" /> @@ -104,7 +104,7 @@ namespace Debugger.Tests { ChainIndex="1" FrameIndex="1" HasSymbols="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Lifetime.Function(System.Int32 i)" + MethodInfo="[Method Debugger.Tests.StackFrame_Lifetime.Function]" NextStatement="StackFrame_Lifetime.cs:20,4-20,40" Thread="Thread Name = Suspended = False" /> @@ -114,7 +114,7 @@ namespace Debugger.Tests { ChainIndex="1" FrameIndex="1" HasSymbols="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Lifetime.Function(System.Int32 i)" + MethodInfo="[Method Debugger.Tests.StackFrame_Lifetime.Function]" NextStatement="StackFrame_Lifetime.cs:20,4-20,40" Thread="Thread Name = Suspended = False" /> @@ -123,7 +123,7 @@ namespace Debugger.Tests { @@ -134,7 +134,7 @@ namespace Debugger.Tests { FrameIndex="1" HasSymbols="True" IsInvalid="True" - MethodInfo="static System.Void Debugger.Tests.StackFrame_Lifetime.Function(System.Int32 i)" + MethodInfo="[Method Debugger.Tests.StackFrame_Lifetime.Function]" NextStatement="{Exception: The requested frame index is too big}" Thread="Thread Name = Suspended = False" /> @@ -142,7 +142,7 @@ namespace Debugger.Tests {