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 {