我正在研究 SOS 命令及其输出,但我注意到似乎没有办法以某种方式获取当前正在使用的所有类型。到目前为止最好的方法是!dumpheap -stat
,但它只列出有实例的类型。但是,当 ValueType 从未被装箱时,该类型将不会显示在!dumpheap -stat
. (这并不奇怪,因为它们不是在堆上分配的。)
所以我的问题是:是否有任何有效的方法来确定当前存在哪些附加值类型?我的意思是,我可以在检查单个堆对象时按需加载它们(例如!dumpvc <mt> <address>
基于!do <address>
输出),但是对于显示的统计信息,通过一些比查看(实例/类定义)更简单的方法来查找类型会更好已知的类来确定它们是否使用任何额外的 ValueType。