!dumpvc 79b9a9ac a0a208 名称:System.IntPtr MethodTable:79b9a9ac EEClass:798d57e0 大小:12(0xc)字节 文件:C:\ WINDOWS \ Microsoft.Net \ assembly \ GAC_32 \ mscorlib \ v4.0_4.0.0.0__b77a5c561934e089 \ mscorlib.dll 领域: MT字段偏移类型VT Attr值名称 79b5a21c 40004a9 0 PTR 0实例748d5756 m_value 79b9a9ac 40004aa b4c System.IntPtr 1共享静态零
域:值0015db70:NotInit<<
!dumpobj 748d5756 无效的对象
!dumpvc 79b5a21c 748d5756 名称:System.UIntPtr MethodTable:79b5a21c EEClass:798d8a84 大小:12(0xc)字节 文件:C:\ WINDOWS \ Microsoft.Net \ assembly \ GAC_32 \ mscorlib \ v4.0_4.0.0.0__b77a5c561934e089 \ mscorlib.dll 领域: MT字段偏移类型VT Attr值名称 79b5a21c 4000697 0 PTR 0实例m_value 79b5a21c 4000698 b78 System.UIntPtr 1共享静态零
域:值0015db70:NotInit<<
答案 0 :(得分:2)
!dumpobj不能用于什么地址?假设你的意思是!dumpobj 748d5756,问题是!do不会对Value Type有效。 GC堆上的每个对象(ref类型)都在对象内存的开头有一个MT(方法表)指针。因此,GC堆上的每个对象都是自描述的。方法!做的是它读取MT以确定类型,然后转储对象的字段。
使用值类型,您没有MT。值类型仅包含字段。因此,您必须使用!dumpvc。