BreakPointContext.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using ILRuntime.Runtime.Intepreter;
  6. using ILRuntime.Runtime.Stack;
  7. namespace ILRuntime.Runtime.Debugger
  8. {
  9. unsafe class BreakPointContext
  10. {
  11. public ILIntepreter Interpreter { get; set; }
  12. public Exception Exception { get; set; }
  13. public string DumpContext()
  14. {
  15. /*StringBuilder sb = new StringBuilder();
  16. if (Exception != null)
  17. sb.AppendLine(Exception.Message);
  18. StackFrame[] frames = Interpreter.Stack.Frames.ToArray();
  19. StackFrame topFrame = frames[0];
  20. var m = topFrame.Method;
  21. if (m.HasThis)
  22. {
  23. sb.AppendLine("this:");
  24. sb.AppendLine(DebugService.Instance.GetThisInfo(Interpreter));
  25. }
  26. sb.AppendLine("->" + topFrame.Method.Definition.Body.Instructions[topFrame.Address.Value]);
  27. sb.AppendLine("Local Variables:");
  28. sb.AppendLine(DebugService.Instance.GetLocalVariableInfo(Interpreter));
  29. sb.Append(DebugService.Instance.GetStackTrance(Interpreter));
  30. return sb.ToString();*/
  31. return null;
  32. }
  33. string GetStackObjectValue(StackObject val, IList<object> mStack)
  34. {
  35. string v;
  36. switch (val.ObjectType)
  37. {
  38. case ObjectTypes.Null:
  39. v = "null";
  40. break;
  41. case ObjectTypes.Integer:
  42. v = val.Value.ToString();
  43. break;
  44. case ObjectTypes.Object:
  45. {
  46. object obj = Interpreter.Stack.ManagedStack[val.Value];
  47. v = obj.ToString();
  48. }
  49. break;
  50. default:
  51. v = "Unknown type";
  52. break;
  53. }
  54. return v;
  55. }
  56. }
  57. }