internal ILRuntimeException(string message, ILIntepreter intepreter, CLR.Method.ILMethod method, Exception innerException = null) : base(message, innerException) { var ds = intepreter.AppDomain.DebugService; if (innerException is ILRuntimeException) { ILRuntimeException e = innerException as ILRuntimeException; stackTrace = e.stackTrace; thisInfo = e.thisInfo; localInfo = e.localInfo; } else { stackTrace = ds.GetStackTrace(intepreter); if (method.HasThis) { thisInfo = ds.GetThisInfo(intepreter); } else { thisInfo = ""; } localInfo = ds.GetLocalVariableInfo(intepreter); } if (ds.OnILRuntimeException != null) { ds.OnILRuntimeException(ToString()); } }
internal ILRuntimeException(string message, ILIntepreter intepreter, CLR.Method.ILMethod method, Exception innerException = null) : base(message, innerException) { if (innerException is ILRuntimeException) { ILRuntimeException e = innerException as ILRuntimeException; stackTrace = e.stackTrace; thisInfo = e.thisInfo; localInfo = e.localInfo; } else { stackTrace = Debugger.DebugService.Instance.GetStackTrance(intepreter); if (method.HasThis) { thisInfo = Debugger.DebugService.Instance.GetThisInfo(intepreter); } else { thisInfo = ""; } localInfo = Debugger.DebugService.Instance.GetLocalVariableInfo(intepreter); } }