UnityEngine.StackTraceUtility.PostprocessStacktrace C# (CSharp) Method

PostprocessStacktrace() private method

private PostprocessStacktrace ( string oldString, bool stripEngineInternalInformation ) : string
oldString string
stripEngineInternalInformation bool
return string
        internal static string PostprocessStacktrace(string oldString, bool stripEngineInternalInformation)
        {
            if (oldString == null)
            {
                return string.Empty;
            }
            char[] separator = new char[] { '\n' };
            string[] strArray = oldString.Split(separator);
            StringBuilder builder = new StringBuilder(oldString.Length);
            for (int i = 0; i < strArray.Length; i++)
            {
                strArray[i] = strArray[i].Trim();
            }
            for (int j = 0; j < strArray.Length; j++)
            {
                string name = strArray[j];
                if (((name.Length != 0) && (name[0] != '\n')) && !name.StartsWith("in (unmanaged)"))
                {
                    if (stripEngineInternalInformation && name.StartsWith("UnityEditor.EditorGUIUtility:RenderGameViewCameras"))
                    {
                        break;
                    }
                    if ((stripEngineInternalInformation && (j < (strArray.Length - 1))) && IsSystemStacktraceType(name))
                    {
                        if (IsSystemStacktraceType(strArray[j + 1]))
                        {
                            continue;
                        }
                        int index = name.IndexOf(" (at");
                        if (index != -1)
                        {
                            name = name.Substring(0, index);
                        }
                    }
                    if (((name.IndexOf("(wrapper managed-to-native)") == -1) && (name.IndexOf("(wrapper delegate-invoke)") == -1)) && ((name.IndexOf("at <0x00000> <unknown method>") == -1) && ((!stripEngineInternalInformation || !name.StartsWith("[")) || !name.EndsWith("]"))))
                    {
                        if (name.StartsWith("at "))
                        {
                            name = name.Remove(0, 3);
                        }
                        int startIndex = name.IndexOf("[0x");
                        int num5 = -1;
                        if (startIndex != -1)
                        {
                            num5 = name.IndexOf("]", startIndex);
                        }
                        if ((startIndex != -1) && (num5 > startIndex))
                        {
                            name = name.Remove(startIndex, (num5 - startIndex) + 1);
                        }
                        name = name.Replace("  in <filename unknown>:0", "").Replace(@"\", "/").Replace(projectFolder, "").Replace('\\', '/');
                        int num6 = name.LastIndexOf("  in ");
                        if (num6 != -1)
                        {
                            name = name.Remove(num6, 5).Insert(num6, " (at ");
                            name = name.Insert(name.Length, ")");
                        }
                        builder.Append(name + "\n");
                    }
                }
            }
            return builder.ToString();
        }