1
J'ai essayé de vider la poignée épinglé par !dumpvc
mais je ne sais pas le MethodTable pour la poignée épinglé. Comment l'obtenir?Comment obtenir la table de méthodes pour la poignée épinglée?
0:000> !gcroot 0000000384b8a160
HandleTable:
00000002008e1bf8 (pinned handle)
-> 000000067fff3978 System.Object[]
-> 00000003802f6800 System.Collections.Generic.List`1[[System.String, mscorlib]]
-> 000000023e781020 System.Object[]
-> 0000000384b8a160 System.String
, cela ne donne la MT de la poignée épinglé lui-même, il donne la MT de l'objet, il épinglé point de poignée. – Jason
J'ai le gcroot suivant, et beaucoup de chaînes ne peuvent pas être collectées par GC, et nous avons finalement trouvé la chaîne List épinglé, mais nous ne savons pas comment trouver la poignée de la broche. BTW, nous avons utilisé le System.Runtime.Caching.MemoryCache pour stocker la chaîne en tant que clé. =============================================== " 0: 000> gcroot 000000038245b130 HandleTable: 00000002008e1bf8 (poignée épinglé) -> 000000067fff3978 System.Object [] -> 00000003802f6800 System.Collections.Generic.List'1 [[System.String, mscorlib]] ! -> 000000023e781020 System.Object [] -> 000000038245b130 System.String " – Jason
La poignée épinglé est simplement une entrée de table de poignée, donc il n'y a pas de MT. Par curiosité, pour quoi utiliseriez-vous le MT, s'il existait? –