Browse Source

Fixing/updating debugger unit tests:

AppDomain_Tests,
ControlFlow_Stepping,
DebugType_Tests,
StackFrame_Callstack,
StackFrame_Lifetime
newNRvisualizers
David Srbecký 13 years ago
parent
commit
848aa733e5
  1. 10
      src/AddIns/Debugger/Debugger.Core/Eval.cs
  2. 14
      src/AddIns/Debugger/Debugger.Core/SourcecodeSegment.cs
  3. 36
      src/AddIns/Debugger/Debugger.Core/StackFrame.cs
  4. 5
      src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs
  5. 4
      src/AddIns/Debugger/Debugger.Core/Value.cs
  6. 1
      src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj
  7. 23
      src/AddIns/Debugger/Debugger.Tests/DebuggerTestsBase.cs
  8. 25
      src/AddIns/Debugger/Debugger.Tests/Tests/AppDomain_Tests.cs
  9. 26
      src/AddIns/Debugger/Debugger.Tests/Tests/ControlFlow_Stepping.cs
  10. 1690
      src/AddIns/Debugger/Debugger.Tests/Tests/DebugType_Tests.cs
  11. 12
      src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Callstack.cs
  12. 16
      src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Lifetime.cs

10
src/AddIns/Debugger/Debugger.Core/Eval.cs

@ -191,10 +191,12 @@ namespace Debugger
/// <summary> Synchronously calls a function and returns its return value </summary> /// <summary> Synchronously calls a function and returns its return value </summary>
public static Value InvokeMethod(Thread evalThread, IMethod method, Value thisValue, Value[] args) public static Value InvokeMethod(Thread evalThread, IMethod method, Value thisValue, Value[] args)
{ {
if (method.GetBackingField() != null) { #warning Fast property eval
evalThread.Process.TraceMessage("Using backing field for " + method.FullName); // var field = Value.GetBackingField(method);
return Value.GetMemberValue(evalThread, thisValue, method.GetBackingField(), args); // 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(); return AsyncInvokeMethod(evalThread, method, thisValue, args).WaitForResult();
} }

14
src/AddIns/Debugger/Debugger.Core/SourcecodeSegment.cs

@ -184,20 +184,10 @@ namespace Debugger
/// 'ILStart &lt;= ILOffset &lt;= ILEnd' and this range includes at least /// 'ILStart &lt;= ILOffset &lt;= ILEnd' and this range includes at least
/// the returned area of source code. (May incude some extra compiler generated IL too) /// the returned area of source code. (May incude some extra compiler generated IL too)
/// </summary> /// </summary>
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 (symMethod == null)
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
return null; return null;
}
if (symMethod == null) return null;
uint sequencePointCount = symMethod.GetSequencePointCount(); uint sequencePointCount = symMethod.GetSequencePointCount();
SequencePoint[] sequencePoints = symMethod.GetSequencePoints(); SequencePoint[] sequencePoints = symMethod.GetSequencePoints();

36
src/AddIns/Debugger/Debugger.Core/StackFrame.cs

@ -38,6 +38,7 @@ namespace Debugger
/// <summary> Internal index of the stack frame. The value is increasing with age. </summary> /// <summary> Internal index of the stack frame. The value is increasing with age. </summary>
public uint FrameIndex { get; private set; } public uint FrameIndex { get; private set; }
[Debugger.Tests.Ignore]
public Module Module { get; private set; } public Module Module { get; private set; }
public IMethod MethodInfo { 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;
}
}
}
/// <summary> Returns true is this incance can not be used any more. </summary> /// <summary> Returns true is this incance can not be used any more. </summary>
public bool IsInvalid { public bool IsInvalid {
get { get {
@ -119,7 +135,7 @@ namespace Debugger
{ {
if (SourceCodeLine != 0) if (SourceCodeLine != 0)
return SourcecodeSegment.ResolveForIL(this.Module, this.CorFunction, SourceCodeLine, offset, ILRanges); 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);
} }
/// <summary> Step into next instruction </summary> /// <summary> Step into next instruction </summary>
@ -334,16 +350,10 @@ namespace Debugger
public IEnumerable<LocalVariable> GetLocalVariables() public IEnumerable<LocalVariable> GetLocalVariables()
{ {
if (localVariables == null) { if (localVariables == null) {
var symMethod = this.SymMethod;
// Note that the user might load symbols later // Note that the user might load symbols later
if (this.Module.SymReader == null) if (symMethod == null)
return new List<LocalVariable>(); return new List<LocalVariable>();
ISymUnmanagedMethod symMethod;
try {
symMethod = this.Module.SymReader.GetMethod(this.MethodInfo.GetMetadataToken());
} catch {
return new List<LocalVariable>();
}
localVariables = LocalVariable.GetLocalVariables(this.MethodInfo, symMethod); localVariables = LocalVariable.GetLocalVariables(this.MethodInfo, symMethod);
} }
@ -373,7 +383,7 @@ namespace Debugger
return false; return false;
if (opt.StepOverNoSymbols) { if (opt.StepOverNoSymbols) {
if (this.Module.SymReader == null) return true; if (this.SymMethod == null) return true;
} }
if (opt.StepOverDebuggerAttributes) { if (opt.StepOverDebuggerAttributes) {
string[] debuggerAttributes = { string[] debuggerAttributes = {
@ -385,12 +395,10 @@ namespace Debugger
if (this.MethodInfo.DeclaringType.GetDefinition().Attributes.Any(a => debuggerAttributes.Contains(a.AttributeType.FullName))) return true; if (this.MethodInfo.DeclaringType.GetDefinition().Attributes.Any(a => debuggerAttributes.Contains(a.AttributeType.FullName))) return true;
} }
if (opt.StepOverAllProperties) { if (opt.StepOverAllProperties) {
// TODO if (this.MethodInfo.IsAccessor) return true;
// if (this.IsPropertyAccessor) return true;
} }
if (opt.StepOverFieldAccessProperties) { if (opt.StepOverFieldAccessProperties) {
// TODO if (this.MethodInfo.IsAccessor && Value.GetBackingFieldToken(this.MethodInfo) != 0) return true;
// if (this.IsPropertyAccessor && this.BackingFieldToken != 0) return true;
} }
return false; return false;
} }

5
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) public static ICorDebugType[] GetTypeArguments(this IMethod method)
{ {
List<ICorDebugType> typeArgs = new List<ICorDebugType>(); List<ICorDebugType> typeArgs = new List<ICorDebugType>();

4
src/AddIns/Debugger/Debugger.Core/Value.cs

@ -618,9 +618,9 @@ namespace Debugger
#endregion #endregion
/// <summary> Is this method in form 'return this.field;'? </summary> /// <summary> Is this method in form 'return this.field;'? </summary>
internal static uint GetBackingFieldToken(ICorDebugFunction corFunction) internal static uint GetBackingFieldToken(IMethod method)
{ {
// TODO: use this ICorDebugFunction corFunction = method.ToCorFunction();
ICorDebugCode corCode; ICorDebugCode corCode;
try { try {

1
src/AddIns/Debugger/Debugger.Tests/Debugger.Tests.csproj

@ -54,7 +54,6 @@
<Compile Include="Tests\StackFrame_Callstack.cs" /> <Compile Include="Tests\StackFrame_Callstack.cs" />
<Compile Include="Tests\DebugType_CompilerGeneratedClasses.cs" /> <Compile Include="Tests\DebugType_CompilerGeneratedClasses.cs" />
<Compile Include="Tests\ControlFlow_DebuggeeKilled.cs" /> <Compile Include="Tests\ControlFlow_DebuggeeKilled.cs" />
<Compile Include="Tests\DebugType_Tests.cs" />
<Compile Include="Tests\Exception_Custom.cs" /> <Compile Include="Tests\Exception_Custom.cs" />
<Compile Include="Tests\StackFrame_Lifetime.cs" /> <Compile Include="Tests\StackFrame_Lifetime.cs" />
<Compile Include="Tests\StackFrame_Tests.cs" /> <Compile Include="Tests\StackFrame_Tests.cs" />

23
src/AddIns/Debugger/Debugger.Tests/DebuggerTestsBase.cs

@ -222,7 +222,7 @@ namespace Debugger.Tests
} }
LogEvent("ExceptionThrown", msg.ToString()); 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) { process.Exited += delegate(object sender, DebuggerEventArgs e) {
LogEvent("Exited", null); 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<string> expandProperties; List<string> expandProperties;
List<string> ignoreProperties; List<string> ignoreProperties;

25
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) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using ICSharpCode.NRefactory.TypeSystem;
namespace Debugger.Tests namespace Debugger.Tests
{ {
@ -32,23 +31,22 @@ namespace Debugger.Tests
#if TEST_CODE #if TEST_CODE
namespace Debugger.Tests { namespace Debugger.Tests {
using Debugger.MetaData; using Debugger.MetaData;
using ICSharpCode.NRefactory.TypeSystem;
public partial class DebuggerTests public partial class DebuggerTests
{ {
[NUnit.Framework.Test, NUnit.Framework.Ignore] [NUnit.Framework.Test]
public void AppDomain_Tests() public void AppDomain_Tests()
{ {
StartTest(); StartTest();
// IType type1 = this.CurrentStackFrame.GetLocalVariableValue("one").Type; IType type1 = this.CurrentStackFrame.GetLocalVariableValue("one").Type;
// IType type1b = this.CurrentStackFrame.GetLocalVariableValue("one").Type; process.Continue();
// ObjectDump("SameDomainEqual", type1.Equals(type1b)); ObjectDump("AppDomainName", this.CurrentStackFrame.GetLocalVariableValue("appDomainName").AsString());
// process.Continue(); IType type2 = this.CurrentStackFrame.GetLocalVariableValue("two").Type;
// ObjectDump("AppDomainName", this.CurrentStackFrame.GetLocalVariableValue("appDomainName").AsString()); ObjectDump("OtherDomainEqual", type1.Equals(type2));
// IType type2 = this.CurrentStackFrame.GetLocalVariableValue("two").Type; ObjectDump("AppDomain1-ID", type1.GetDefinition().Compilation.GetAppDomain().ID);
// ObjectDump("OtherDomainEqual", type1.Equals(type2)); ObjectDump("AppDomain2-ID", type2.GetDefinition().Compilation.GetAppDomain().ID);
// ObjectDump("AppDomainsEqual", type1.AppDomain == type2.AppDomain);
// ObjectDump("AppDomainIDsEqual", type1.AppDomain.ID == type2.AppDomain.ID);
EndTest(); EndTest();
} }
@ -65,14 +63,13 @@ namespace Debugger.Tests {
<ModuleLoaded>mscorlib.dll (No symbols)</ModuleLoaded> <ModuleLoaded>mscorlib.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>AppDomain_Tests.exe (Has symbols)</ModuleLoaded> <ModuleLoaded>AppDomain_Tests.exe (Has symbols)</ModuleLoaded>
<Paused>AppDomain_Tests.cs:13,4-13,40</Paused> <Paused>AppDomain_Tests.cs:13,4-13,40</Paused>
<SameDomainEqual>True</SameDomainEqual>
<ModuleLoaded>mscorlib.dll (No symbols)</ModuleLoaded> <ModuleLoaded>mscorlib.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>AppDomain_Tests.exe (Has symbols)</ModuleLoaded> <ModuleLoaded>AppDomain_Tests.exe (Has symbols)</ModuleLoaded>
<Paused>AppDomain_Tests.cs:26,4-26,40</Paused> <Paused>AppDomain_Tests.cs:26,4-26,40</Paused>
<AppDomainName>myDomain Id=2</AppDomainName> <AppDomainName>myDomain Id=2</AppDomainName>
<OtherDomainEqual>False</OtherDomainEqual> <OtherDomainEqual>False</OtherDomainEqual>
<AppDomainsEqual>False</AppDomainsEqual> <AppDomain1-ID>1</AppDomain1-ID>
<AppDomainIDsEqual>False</AppDomainIDsEqual> <AppDomain2-ID>2</AppDomain2-ID>
<Exited /> <Exited />
</Test> </Test>
</DebuggerTests> </DebuggerTests>

26
src/AddIns/Debugger/Debugger.Tests/Tests/ControlFlow_Stepping.cs

@ -26,7 +26,7 @@ namespace Debugger.Tests
public void Target() {} public void Target() {}
} }
public static int ShortProperty { public static int Property {
get { get {
return 1; return 1;
} }
@ -36,11 +36,11 @@ namespace Debugger.Tests
public static int FieldProperty { public static int FieldProperty {
get { get {
return return field;
field;
} }
} }
[DebuggerNonUserCode] [DebuggerNonUserCode]
static void ZigZag1() static void ZigZag1()
{ {
@ -99,7 +99,7 @@ namespace Debugger.Tests
string theasnwer = 42.ToString(); string theasnwer = 42.ToString();
StepRoot(); StepRoot();
new DefaultCtorClass().Target(); new DefaultCtorClass().Target();
int s = ShortProperty; int p = Property;
int f = FieldProperty; int f = FieldProperty;
CatchExcpetion(); CatchExcpetion();
ZigZag1(); ZigZag1();
@ -127,7 +127,6 @@ namespace Debugger.Tests {
this.CurrentStackFrame.SetIP(start.Filename, start.StartLine + 1, start.StartColumn, false); this.CurrentStackFrame.SetIP(start.Filename, start.StartLine + 1, start.StartColumn, false);
process.Options.EnableJustMyCode = jmcEnabled; process.Options.EnableJustMyCode = jmcEnabled;
process.Options.StepOverSingleLineProperties = true;
process.Options.StepOverFieldAccessProperties = true; process.Options.StepOverFieldAccessProperties = true;
this.CurrentStackFrame.StepInto(); // 42.ToString() this.CurrentStackFrame.StepInto(); // 42.ToString()
@ -150,7 +149,10 @@ namespace Debugger.Tests {
this.CurrentStackFrame.StepOver(); // Finish the step out this.CurrentStackFrame.StepOver(); // Finish the step out
Assert.AreEqual("Main", this.CurrentStackFrame.MethodInfo.Name); 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); Assert.AreEqual("Main", this.CurrentStackFrame.MethodInfo.Name);
this.CurrentStackFrame.StepInto(); // FieldProperty this.CurrentStackFrame.StepInto(); // FieldProperty
@ -209,7 +211,9 @@ namespace Debugger.Tests {
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused> <Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:26,25-26,26</Paused> <Paused>ControlFlow_Stepping.cs:26,25-26,26</Paused>
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused> <Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:102,4-102,26</Paused> <Paused>ControlFlow_Stepping.cs:102,4-102,21</Paused>
<Paused>ControlFlow_Stepping.cs:30,8-30,9</Paused>
<Paused>ControlFlow_Stepping.cs:102,4-102,21</Paused>
<Paused>ControlFlow_Stepping.cs:103,4-103,26</Paused> <Paused>ControlFlow_Stepping.cs:103,4-103,26</Paused>
<Paused>ControlFlow_Stepping.cs:104,4-104,21</Paused> <Paused>ControlFlow_Stepping.cs:104,4-104,21</Paused>
<Paused>ControlFlow_Stepping.cs:105,4-105,14</Paused> <Paused>ControlFlow_Stepping.cs:105,4-105,14</Paused>
@ -235,7 +239,9 @@ namespace Debugger.Tests {
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused> <Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:26,25-26,26</Paused> <Paused>ControlFlow_Stepping.cs:26,25-26,26</Paused>
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused> <Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:102,4-102,26</Paused> <Paused>ControlFlow_Stepping.cs:102,4-102,21</Paused>
<Paused>ControlFlow_Stepping.cs:30,8-30,9</Paused>
<Paused>ControlFlow_Stepping.cs:102,4-102,21</Paused>
<Paused>ControlFlow_Stepping.cs:103,4-103,26</Paused> <Paused>ControlFlow_Stepping.cs:103,4-103,26</Paused>
<Paused>ControlFlow_Stepping.cs:104,4-104,21</Paused> <Paused>ControlFlow_Stepping.cs:104,4-104,21</Paused>
<Paused>ControlFlow_Stepping.cs:105,4-105,14</Paused> <Paused>ControlFlow_Stepping.cs:105,4-105,14</Paused>
@ -256,7 +262,9 @@ namespace Debugger.Tests {
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused> <Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:26,25-26,26</Paused> <Paused>ControlFlow_Stepping.cs:26,25-26,26</Paused>
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused> <Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:102,4-102,26</Paused> <Paused>ControlFlow_Stepping.cs:102,4-102,21</Paused>
<Paused>ControlFlow_Stepping.cs:30,8-30,9</Paused>
<Paused>ControlFlow_Stepping.cs:102,4-102,21</Paused>
<Paused>ControlFlow_Stepping.cs:103,4-103,26</Paused> <Paused>ControlFlow_Stepping.cs:103,4-103,26</Paused>
<Paused>ControlFlow_Stepping.cs:104,4-104,21</Paused> <Paused>ControlFlow_Stepping.cs:104,4-104,21</Paused>
<Paused>ControlFlow_Stepping.cs:105,4-105,14</Paused> <Paused>ControlFlow_Stepping.cs:105,4-105,14</Paused>

1690
src/AddIns/Debugger/Debugger.Tests/Tests/DebugType_Tests.cs

File diff suppressed because one or more lines are too long

12
src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Callstack.cs

@ -60,7 +60,7 @@ namespace Debugger.Tests {
ChainIndex="1" ChainIndex="1"
FrameIndex="2" FrameIndex="2"
HasSymbols="True" 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" NextStatement="StackFrame_Callstack.cs:22,4-22,40"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Item> </Item>
@ -69,7 +69,7 @@ namespace Debugger.Tests {
ChainIndex="1" ChainIndex="1"
FrameIndex="1" FrameIndex="1"
HasSymbols="True" 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" NextStatement="StackFrame_Callstack.cs:17,4-17,11"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Item> </Item>
@ -77,7 +77,7 @@ namespace Debugger.Tests {
<StackFrame <StackFrame
ChainIndex="1" ChainIndex="1"
HasSymbols="True" HasSymbols="True"
MethodInfo="static System.Void Debugger.Tests.StackFrame_Callstack.Main()" MethodInfo="[Method Debugger.Tests.StackFrame_Callstack.Main]"
NextStatement="StackFrame_Callstack.cs:12,4-12,11" NextStatement="StackFrame_Callstack.cs:12,4-12,11"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Item> </Item>
@ -89,7 +89,7 @@ namespace Debugger.Tests {
ChainIndex="1" ChainIndex="1"
FrameIndex="1" FrameIndex="1"
HasSymbols="True" 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" NextStatement="StackFrame_Callstack.cs:17,4-17,11"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Item> </Item>
@ -97,7 +97,7 @@ namespace Debugger.Tests {
<StackFrame <StackFrame
ChainIndex="1" ChainIndex="1"
HasSymbols="True" HasSymbols="True"
MethodInfo="static System.Void Debugger.Tests.StackFrame_Callstack.Main()" MethodInfo="[Method Debugger.Tests.StackFrame_Callstack.Main]"
NextStatement="StackFrame_Callstack.cs:12,4-12,11" NextStatement="StackFrame_Callstack.cs:12,4-12,11"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Item> </Item>
@ -108,7 +108,7 @@ namespace Debugger.Tests {
<StackFrame <StackFrame
ChainIndex="1" ChainIndex="1"
HasSymbols="True" HasSymbols="True"
MethodInfo="static System.Void Debugger.Tests.StackFrame_Callstack.Main()" MethodInfo="[Method Debugger.Tests.StackFrame_Callstack.Main]"
NextStatement="StackFrame_Callstack.cs:12,4-12,11" NextStatement="StackFrame_Callstack.cs:12,4-12,11"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Item> </Item>

16
src/AddIns/Debugger/Debugger.Tests/Tests/StackFrame_Lifetime.cs

@ -73,7 +73,7 @@ namespace Debugger.Tests {
ChainIndex="1" ChainIndex="1"
FrameIndex="1" FrameIndex="1"
HasSymbols="True" 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" NextStatement="StackFrame_Lifetime.cs:18,4-18,40"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</SelectedStackFrame> </SelectedStackFrame>
@ -84,7 +84,7 @@ namespace Debugger.Tests {
ChainIndex="1" ChainIndex="1"
FrameIndex="1" FrameIndex="1"
HasSymbols="True" 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" NextStatement="StackFrame_Lifetime.cs:19,4-19,18"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Old_StackFrame> </Old_StackFrame>
@ -93,7 +93,7 @@ namespace Debugger.Tests {
ChainIndex="1" ChainIndex="1"
FrameIndex="2" FrameIndex="2"
HasSymbols="True" 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" NextStatement="StackFrame_Lifetime.cs:25,4-25,40"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</SelectedStackFrame> </SelectedStackFrame>
@ -104,7 +104,7 @@ namespace Debugger.Tests {
ChainIndex="1" ChainIndex="1"
FrameIndex="1" FrameIndex="1"
HasSymbols="True" 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" NextStatement="StackFrame_Lifetime.cs:20,4-20,40"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Old_StackFrame> </Old_StackFrame>
@ -114,7 +114,7 @@ namespace Debugger.Tests {
ChainIndex="1" ChainIndex="1"
FrameIndex="1" FrameIndex="1"
HasSymbols="True" 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" NextStatement="StackFrame_Lifetime.cs:20,4-20,40"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</SelectedStackFrame> </SelectedStackFrame>
@ -123,7 +123,7 @@ namespace Debugger.Tests {
<StackFrame <StackFrame
ChainIndex="1" ChainIndex="1"
HasSymbols="True" HasSymbols="True"
MethodInfo="static System.Void Debugger.Tests.StackFrame_Lifetime.Main()" MethodInfo="[Method Debugger.Tests.StackFrame_Lifetime.Main]"
NextStatement="StackFrame_Lifetime.cs:13,4-13,40" NextStatement="StackFrame_Lifetime.cs:13,4-13,40"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Main> </Main>
@ -134,7 +134,7 @@ namespace Debugger.Tests {
FrameIndex="1" FrameIndex="1"
HasSymbols="True" HasSymbols="True"
IsInvalid="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}" NextStatement="{Exception: The requested frame index is too big}"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</Old_StackFrame> </Old_StackFrame>
@ -142,7 +142,7 @@ namespace Debugger.Tests {
<StackFrame <StackFrame
ChainIndex="1" ChainIndex="1"
HasSymbols="True" HasSymbols="True"
MethodInfo="static System.Void Debugger.Tests.StackFrame_Lifetime.Main()" MethodInfo="[Method Debugger.Tests.StackFrame_Lifetime.Main]"
NextStatement="StackFrame_Lifetime.cs:13,4-13,40" NextStatement="StackFrame_Lifetime.cs:13,4-13,40"
Thread="Thread Name = Suspended = False" /> Thread="Thread Name = Suspended = False" />
</SelectedStackFrame> </SelectedStackFrame>

Loading…
Cancel
Save