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 @@ -191,10 +191,12 @@ namespace Debugger
/// <summary> Synchronously calls a function and returns its return value </summary>
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();
}

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

@ -184,20 +184,10 @@ namespace Debugger @@ -184,20 +184,10 @@ namespace Debugger
/// '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)
/// </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 (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();

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

@ -38,6 +38,7 @@ namespace Debugger @@ -38,6 +38,7 @@ namespace Debugger
/// <summary> Internal index of the stack frame. The value is increasing with age. </summary>
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 @@ -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>
public bool IsInvalid {
get {
@ -119,7 +135,7 @@ namespace Debugger @@ -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);
}
/// <summary> Step into next instruction </summary>
@ -334,16 +350,10 @@ namespace Debugger @@ -334,16 +350,10 @@ namespace Debugger
public IEnumerable<LocalVariable> 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<LocalVariable>();
ISymUnmanagedMethod symMethod;
try {
symMethod = this.Module.SymReader.GetMethod(this.MethodInfo.GetMetadataToken());
} catch {
return new List<LocalVariable>();
}
localVariables = LocalVariable.GetLocalVariables(this.MethodInfo, symMethod);
}
@ -373,7 +383,7 @@ namespace Debugger @@ -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 @@ -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;
}

5
src/AddIns/Debugger/Debugger.Core/TypeSystemExtensions.cs

@ -385,11 +385,6 @@ namespace Debugger @@ -385,11 +385,6 @@ namespace Debugger
}
}
public static IField GetBackingField(this IMethod method)
{
return null;
}
public static ICorDebugType[] GetTypeArguments(this IMethod method)
{
List<ICorDebugType> typeArgs = new List<ICorDebugType>();

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

@ -618,9 +618,9 @@ namespace Debugger @@ -618,9 +618,9 @@ namespace Debugger
#endregion
/// <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;
try {

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

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

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

@ -222,7 +222,7 @@ namespace Debugger.Tests @@ -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 @@ -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> ignoreProperties;

25
src/AddIns/Debugger/Debugger.Tests/Tests/AppDomain_Tests.cs

@ -2,7 +2,6 @@ @@ -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 @@ -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 { @@ -65,14 +63,13 @@ namespace Debugger.Tests {
<ModuleLoaded>mscorlib.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>AppDomain_Tests.exe (Has symbols)</ModuleLoaded>
<Paused>AppDomain_Tests.cs:13,4-13,40</Paused>
<SameDomainEqual>True</SameDomainEqual>
<ModuleLoaded>mscorlib.dll (No symbols)</ModuleLoaded>
<ModuleLoaded>AppDomain_Tests.exe (Has symbols)</ModuleLoaded>
<Paused>AppDomain_Tests.cs:26,4-26,40</Paused>
<AppDomainName>myDomain Id=2</AppDomainName>
<OtherDomainEqual>False</OtherDomainEqual>
<AppDomainsEqual>False</AppDomainsEqual>
<AppDomainIDsEqual>False</AppDomainIDsEqual>
<AppDomain1-ID>1</AppDomain1-ID>
<AppDomain2-ID>2</AppDomain2-ID>
<Exited />
</Test>
</DebuggerTests>

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

@ -26,7 +26,7 @@ namespace Debugger.Tests @@ -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 @@ -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 @@ -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 { @@ -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 { @@ -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 { @@ -209,7 +211,9 @@ namespace Debugger.Tests {
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:26,25-26,26</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:104,4-104,21</Paused>
<Paused>ControlFlow_Stepping.cs:105,4-105,14</Paused>
@ -235,7 +239,9 @@ namespace Debugger.Tests { @@ -235,7 +239,9 @@ namespace Debugger.Tests {
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:26,25-26,26</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:104,4-104,21</Paused>
<Paused>ControlFlow_Stepping.cs:105,4-105,14</Paused>
@ -256,7 +262,9 @@ namespace Debugger.Tests { @@ -256,7 +262,9 @@ namespace Debugger.Tests {
<Paused>ControlFlow_Stepping.cs:101,4-101,36</Paused>
<Paused>ControlFlow_Stepping.cs:26,25-26,26</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:104,4-104,21</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 { @@ -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" />
</Item>
@ -69,7 +69,7 @@ namespace Debugger.Tests { @@ -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" />
</Item>
@ -77,7 +77,7 @@ namespace Debugger.Tests { @@ -77,7 +77,7 @@ namespace Debugger.Tests {
<StackFrame
ChainIndex="1"
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"
Thread="Thread Name = Suspended = False" />
</Item>
@ -89,7 +89,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" />
</Item>
@ -97,7 +97,7 @@ namespace Debugger.Tests { @@ -97,7 +97,7 @@ namespace Debugger.Tests {
<StackFrame
ChainIndex="1"
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"
Thread="Thread Name = Suspended = False" />
</Item>
@ -108,7 +108,7 @@ namespace Debugger.Tests { @@ -108,7 +108,7 @@ namespace Debugger.Tests {
<StackFrame
ChainIndex="1"
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"
Thread="Thread Name = Suspended = False" />
</Item>

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

@ -73,7 +73,7 @@ namespace Debugger.Tests { @@ -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" />
</SelectedStackFrame>
@ -84,7 +84,7 @@ namespace Debugger.Tests { @@ -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" />
</Old_StackFrame>
@ -93,7 +93,7 @@ namespace Debugger.Tests { @@ -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" />
</SelectedStackFrame>
@ -104,7 +104,7 @@ namespace Debugger.Tests { @@ -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" />
</Old_StackFrame>
@ -114,7 +114,7 @@ namespace Debugger.Tests { @@ -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" />
</SelectedStackFrame>
@ -123,7 +123,7 @@ namespace Debugger.Tests { @@ -123,7 +123,7 @@ namespace Debugger.Tests {
<StackFrame
ChainIndex="1"
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"
Thread="Thread Name = Suspended = False" />
</Main>
@ -134,7 +134,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" />
</Old_StackFrame>
@ -142,7 +142,7 @@ namespace Debugger.Tests { @@ -142,7 +142,7 @@ namespace Debugger.Tests {
<StackFrame
ChainIndex="1"
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"
Thread="Thread Name = Suspended = False" />
</SelectedStackFrame>

Loading…
Cancel
Save