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)); }