コード例 #1
0
        private void ComputeNames(ClrStackFrame frame)
        {
            // start by parsing (short)type name
            var typeName = frame.Method.Type.Name;

            if (string.IsNullOrEmpty(typeName))
            {
                // IL generated frames
                TypeName = string.Empty;
            }
            else
            {
                TypeName = typeName;
            }

            // generic methods are not well formatted by ClrMD
            // foo<...>()  =>   foo[[...]]()
#if ClrMD1
            var fullName = frame.Method?.GetFullSignature();
#else
            var fullName = frame.Method?.Signature;
#endif
            MethodName = frame.Method.Name;
            if (MethodName.EndsWith("]]"))
            {
                // fix ClrMD bug with method name
                MethodName = GetGenericMethodName(fullName);
            }

            Signature.AddRange(BuildSignature(fullName));
        }