Je travaille sur les commandes SOS et leur sortie, mais j'ai remarqué qu'il n'y a pas moyen d'obtenir tous les types qui sont actuellement utilisés en quelque sorte. Le meilleur moyen à ce jour est !dumpheap -stat
, mais il ne répertorie que les types pour lesquels il existe des instances. Toutefois, lorsqu'un ValueType n'est jamais encadré, ce type n'apparaîtra pas sur !dumpheap -stat
. (Ce qui n'est pas surprenant, car ils ne sont pas alloués sur le tas.)Manière efficace d'obtenir le nom/MT de ValueTypes non listés dans! Dumpheap -stat
Donc, ma question est: Existe-t-il des moyens efficaces pour déterminer quels ValueTypes supplémentaires existent actuellement? Je veux dire, je pourrais les charger sur demande en inspectant des objets de tas individuels (quelque chose comme !dumpvc <mt> <address>
basé sur !do <address>
sortie), mais pour les statistiques affichées, il serait agréable de trouver les types par des moyens plus simples que de regarder (instances/définitions de classe de) toutes les classes connues pour déterminer si elles utilisent des ValueTypes supplémentaires.
Question étrange. Pourquoi savoir qu'un programme utilise System.Int32 serait utile? ! dumpmodule -mt liste tous les types dans un module, y compris les types de valeur. –
Je ne suis pas vraiment après Int32 et les types de base similaires. Les types composites avec plus d'un membre sont les parties intéressantes, par exemple 'System.Drawing.Color', qui consiste en une chaîne, un long et deux courts métrages. – Wormbo