在给定size参数时,!DumpHeap
似乎无法正确处理字符串类型。
请观察:
0:000> !DumpMT 00007fff6c9c16b8
EEClass: 00007fff6c3447a8
Module: 00007fff6c341000
Name: System.String
mdToken: 0000000002000068
File: C:\Windows\Microsoft.Net\assembly\GAC_64\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll
BaseSize: 0x18
ComponentSize: 0x2
Slots in VTable: 193
Number of IFaces in IFaceMap: 7
0:000> !dumpheap -min 100000 -mt 00007fff6c9c16b8 -stat
Statistics:
MT Count TotalSize Class Name
Total 0 objects
0:000> !strings /n:100000
Address Gen Length Value
---------------------------------------
0000009767ed96c8 LOH 106134
SET DEADLOCK_PRIORITY HIGH
DECLARE @CommittedCommitStateId INT = (Select PR...
0000009767f223e0 LOH 105665
SET DEADLOCK_PRIORITY HIGH
DECLARE @CommittedCommitStateId INT = (Select PR...
0000009767fa26f0 LOH 107518
SET DEADLOCK_PRIORITY HIGH
DECLARE @CommittedCommitStateId INT = (Select PR...
0000009767fd6f28 LOH 107049
SET DEADLOCK_PRIORITY HIGH
DECLARE @CommittedCommitStateId INT = (Select PR...
---------------------------------------
4 matching strings
0:000>
SOS !DumpHeap -min 100000
没有产生任何结果,而!strings /n:100000
产生了一些结果。
可能!DumpHeap -min
只是没有正确处理字符串吗?或者我错过了什么?