diff --git a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValueClass.cs b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValueClass.cs index e91248abf5..f946708085 100644 --- a/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValueClass.cs +++ b/src/AddIns/Misc/Debugger/Debugger.Core/Project/Src/Variables/ObjectValueClass.cs @@ -210,6 +210,21 @@ namespace Debugger return currModule.CorModule.GetClassFromToken(superToken); } + // TypeSpec - generic class whith 'which' + if ((superToken & 0xFF000000) == 0x1B000000) { + // Walkaround - fake 'object' type + string fullTypeName = "System.Object"; + + foreach (Module superModule in process.Modules) { + try { + uint token = superModule.MetaData.FindTypeDefByName(fullTypeName, 0).Token; + return superModule.CorModule.GetClassFromToken(token); + } catch { + continue; + } + } + } + // TypeRef - Referencing to external assembly if ((superToken & 0xFF000000) == 0x01000000) { string fullTypeName = currModule.MetaData.GetTypeRefProps(superToken).Name;