You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.9 KiB
61 lines
1.9 KiB
using System; |
|
using System.Collections.Generic; |
|
using System.Linq; |
|
using System.Text; |
|
|
|
using ILRuntime.Runtime.Intepreter; |
|
using ILRuntime.Runtime.Stack; |
|
namespace ILRuntime.Runtime.Debugger |
|
{ |
|
unsafe class BreakPointContext |
|
{ |
|
public ILIntepreter Interpreter { get; set; } |
|
public Exception Exception { get; set; } |
|
|
|
public string DumpContext() |
|
{ |
|
/*StringBuilder sb = new StringBuilder(); |
|
if (Exception != null) |
|
sb.AppendLine(Exception.Message); |
|
StackFrame[] frames = Interpreter.Stack.Frames.ToArray(); |
|
StackFrame topFrame = frames[0]; |
|
var m = topFrame.Method; |
|
if (m.HasThis) |
|
{ |
|
sb.AppendLine("this:"); |
|
sb.AppendLine(DebugService.Instance.GetThisInfo(Interpreter)); |
|
} |
|
sb.AppendLine("->" + topFrame.Method.Definition.Body.Instructions[topFrame.Address.Value]); |
|
sb.AppendLine("Local Variables:"); |
|
sb.AppendLine(DebugService.Instance.GetLocalVariableInfo(Interpreter)); |
|
|
|
sb.Append(DebugService.Instance.GetStackTrance(Interpreter)); |
|
return sb.ToString();*/ |
|
return null; |
|
} |
|
|
|
string GetStackObjectValue(StackObject val, IList<object> mStack) |
|
{ |
|
string v; |
|
switch (val.ObjectType) |
|
{ |
|
case ObjectTypes.Null: |
|
v = "null"; |
|
break; |
|
case ObjectTypes.Integer: |
|
v = val.Value.ToString(); |
|
break; |
|
case ObjectTypes.Object: |
|
{ |
|
object obj = Interpreter.Stack.ManagedStack[val.Value]; |
|
v = obj.ToString(); |
|
} |
|
break; |
|
default: |
|
v = "Unknown type"; |
|
break; |
|
} |
|
return v; |
|
} |
|
} |
|
}
|
|
|