Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么?windbg中的dumpvc可以转储数组元素吗?_Windbg_Dump - Fatal编程技术网

为什么?windbg中的dumpvc可以转储数组元素吗?

为什么?windbg中的dumpvc可以转储数组元素吗?,windbg,dump,Windbg,Dump,在此博客上,此命令: 0:009> !dumpvc 000007fe984b57d8 000000018003ead8 他想查看数组中的一个元素, 这里的元素类型是 System.Collections.Generic.Dictionary`2+Entry[[System.Guid, mscorlib],[Microsoft.TeamFoundation.Framework.Server.TeamFoundationPerformanceCounters, Microsoft.TeamF

在此博客上,此命令:

0:009> !dumpvc 000007fe984b57d8 000000018003ead8
他想查看数组中的一个元素, 这里的元素类型是

System.Collections.Generic.Dictionary`2+Entry[[System.Guid, mscorlib],[Microsoft.TeamFoundation.Framework.Server.TeamFoundationPerformanceCounters, Microsoft.TeamFoundation.Framework.Server]]
从我的角度来看,我认为!dumpvc用于探索值类型,类型“Dictionary`2+Entry…”不是值类型

出现这种情况的原因是什么

我尝试过这样做:转储字节数组

0:000> !da -length 3  -nofields 00000001ba9f63b0
-nofields has no effect unless -details is specified
Name:        System.Byte[]
MethodTable: 000007fee3a20b50
EEClass:     000007fee35a2330
Size:        148(0x94) bytes
Array:       Rank 1, Number of elements 124, Type Byte
Element Methodtable: 000007fee3a1c168
[0] 00000001ba9f63c0
[1] 00000001ba9f63c1
[2] 00000001ba9f63c2

0:000> !do 00000001ba9f63c0
<Note: this object has an invalid CLASS field>
0:000> !dumpvc 000007fee3a1c168 00000001ba9f63c0
Name:        System.Byte
MethodTable: 000007fee3a1c168
EEClass:     000007fee35a03b8
Size:        24(0x18) bytes
File:        C:\Windows\Microsoft.Net\assembly\....\mscorlib.dll
Fields:
              MT    Field   Offset                 Type VT     Attr            Value Name
000007fee3a1c168  4000276        0          System.Byte  1 instance               62 m_value
0:000>!da-长度3-无字段0000000 1BA9F63B0
-除非指定了-details,否则nofields无效
名称:System.Byte[]
方法表:000007fee3a20b50
EEClass:000007fee35a2330
大小:148(0x94)字节
数组:秩1,元素数124,类型Byte
元素方法表:000007fee3a1c168
[0]0000000 1BA9F63C0
[1] 0000000 1BA9F63C1
[2] 0000000 1BA9F63C2
0:000> !do 0000000 1BA9F63C0
0:000> !dumpvc 000007 FEE3A1C1680000000 1BA9F63C0
名称:System.Byte
方法表:000007fee3a1c168
EEClass:000007fee35a03b8
大小:24(0x18)字节
文件:C:\Windows\Microsoft.Net\assembly\..\mscorlib.dll
领域:
MT字段偏移类型VT属性值名称
000007FEE3A1C1684000276 0系统。字节1实例62 m_值
它显示了我预期的结果。
可以dumpvc每次调试时都在everywhere中探索数组元素?

Byte[]是引用类型,您可以使用
转储它!执行

字节是一种值类型,您可以使用
转储它!da
如果有很多

这同样适用于字典:

Dictionary`2是引用类型,并与
一起转储!执行

这些条目的类型是Dictionary`2+条目,它似乎是一个包含指向键和值的指针的结构(类似于)。结构是值类型,由
转储!da
并且您可以使用
!在它们上转储VC