.net – 我如何使用!gcroot

从Visual Studio立即窗口中加载SOS调试扩展,我可以做到

!dumpheap -stat

然后我得到这样的东西:

    total 108,014 objects
    Statistics:
    MT         Count  TotalSize  Class Name
   ...
    0x00be209c 135   714108    System.Object[]
    0x79b925c8 218   2659728  System.String
    0x00be2c3c 78986 10,705,064 System.Byte[]
    Total 208,014 objects, Total size: 36,259,364

我现在如何在某些System.Byte []实例上调用!gcroot?我首先要找到他们的地址.但是使用!dumpheap -type System.Byte []肯定是一个坏主意,因为这会给我一个无穷无尽的列表,因为即时窗口似乎很慢,所以列出它们需要20多分钟 – duirng那个时候视觉工作室不是可用.是否有一个我可以调用的场景技巧!gcroot在一些字节数组上?

最佳答案 您可以使用-min -max开关滤除噪声,我猜你的问题是大对象所以调用!dumpheap -min -type System.Byte []其中大到足以滤除噪声.

点赞