Ejemplo n.º 1
0
 // Token: 0x06000138 RID: 312 RVA: 0x00005888 File Offset: 0x00003A88
 private Client.ExceptionInfo GetExceptionInfo(Backtrace backTrace, EvaluationOptions options = null, bool isUnhandled = false)
 {
     Client.ExceptionInfo exceptionInfo = null;
     if (backTrace != null && backTrace.FrameCount > 0)
     {
         for (int i = 0; i < backTrace.FrameCount; i++)
         {
             Mono.Debugging.Client.StackFrame frame = backTrace.GetFrame(i);
             if (isUnhandled || !frame.IsExternalCode)
             {
                 try
                 {
                     exceptionInfo = ((options == null) ? frame.GetException() : frame.GetException(options));
                 }
                 catch (AbsentInformationException)
                 {
                     goto IL_4A;
                 }
                 if (exceptionInfo != null)
                 {
                     this.ResolveFullException(exceptionInfo);
                     break;
                 }
             }
             IL_4A :;
         }
     }
     return(exceptionInfo);
 }
Ejemplo n.º 2
0
 // Token: 0x06000134 RID: 308 RVA: 0x00005795 File Offset: 0x00003995
 private static string GetUnhandledExceptionMessage(Client.ExceptionInfo ex)
 {
     if (ex != null)
     {
         return(string.Format("Unhandled Exception:\n\n{0}: {1}", ex.Type, ExceptionsAdapter.ReplaceMessage(ex)));
     }
     return("An unhandled exception occured.");
 }
Ejemplo n.º 3
0
 // Token: 0x06000135 RID: 309 RVA: 0x000057B6 File Offset: 0x000039B6
 private static string ReplaceMessage(Client.ExceptionInfo ex)
 {
     if (!(ex.Message == "Loading..."))
     {
         return(ex.Message);
     }
     return("<Timeout exceeded getting exception details>");
 }
Ejemplo n.º 4
0
        // Token: 0x06000139 RID: 313 RVA: 0x00005900 File Offset: 0x00003B00
        private void ResolveFullException(Client.ExceptionInfo exception)
        {
            int num = 0;

            if (exception.Instance != null)
            {
                while (num++ < 4 && (exception.IsEvaluating || exception.StackIsEvaluating))
                {
                    exception.Instance.WaitHandle.WaitOne(2000);
                }
            }
        }
Ejemplo n.º 5
0
        private static IEnumerable <Domain.Error.ExceptionInfo> GetErrorInfo(Client.ExceptionInfo clientExceptionInfo)
        {
            var exceptionInfo = new Domain.Error.ExceptionInfo
            {
                StackTrace = clientExceptionInfo.StackTrace,
                Message    = clientExceptionInfo.Message,
                Type       = clientExceptionInfo.ExceptionType,
                ExtraData  = clientExceptionInfo.Data == null ? null : clientExceptionInfo.Data.ToDictionary(kvp => kvp.Key, kvp => kvp.Value),
                Module     = clientExceptionInfo.Source,
                MethodName = clientExceptionInfo.MethodName
            };

            yield return(exceptionInfo);

            if (clientExceptionInfo.InnerExceptionInfo != null)
            {
                foreach (var innerExceptionInfo in GetErrorInfo(clientExceptionInfo.InnerExceptionInfo))
                {
                    yield return(innerExceptionInfo);
                }
            }
        }