2014-01-29 2 views
5

У меня есть файл дампа 32 гигабайт. !address -summary показывает использование кучи на 32.033 Gb, но !heap -s показывает все кучи как маленькие (2 МБ или меньше). Любые идеи о несоответствии между двумя командами, показанными ниже?! Address -summary и! Heap -s не согласны с утечкой памяти?

пс. Windbg версия 6.3.9600.16384 AMD64

0:018> !address -summary 

Mapping file section regions... 
Mapping module regions... 
Mapping PEB regions... 
Mapping TEB and stack regions... 
Mapping heap regions... 
Mapping page heap regions... 
Mapping other regions... 
Mapping stack trace database regions... 
Mapping activation context regions... 

--- Usage Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal 
Free         167  7f7`f74c0000 ( 7.969 Tb)    99.61% 
Heap          95  8`02223000 ( 32.033 Gb) 99.68% 0.39% 
<unknown>        33  0`032f6000 ( 50.961 Mb) 0.15% 0.00% 
Image         518  0`02f78000 ( 47.469 Mb) 0.14% 0.00% 
Stack         57  0`004c0000 ( 4.750 Mb) 0.01% 0.00% 
Other         15  0`001b8000 ( 1.719 Mb) 0.01% 0.00% 
TEB          19  0`00026000 (152.000 kb) 0.00% 0.00% 
PEB          1  0`00001000 ( 4.000 kb) 0.00% 0.00% 

--- Type Summary (for busy) ------ RgnCount ----------- Total Size -------- %ofBusy %ofTotal 
MEM_PRIVATE        187  8`03b5e000 ( 32.058 Gb) 99.76% 0.39% 
MEM_IMAGE        519  0`02f79000 ( 47.473 Mb) 0.14% 0.00% 
MEM_MAPPED        32  0`02059000 ( 32.348 Mb) 0.10% 0.00% 

--- State Summary ---------------- RgnCount ----------- Total Size -------- %ofBusy %ofTotal 
MEM_FREE        167  7f7`f74c0000 ( 7.969 Tb)   99.61% 
MEM_COMMIT        672  8`04f16000 ( 32.077 Gb) 99.82% 0.39% 
MEM_RESERVE        66  0`03c1a000 ( 60.102 Mb) 0.18% 0.00% 

--- Protect Summary (for commit) - RgnCount ----------- Total Size -------- %ofBusy %ofTotal 
PAGE_READWRITE       216  8`01672000 ( 32.022 Gb) 99.65% 0.39% 
PAGE_READONLY       297  0`01dd2000 ( 29.820 Mb) 0.09% 0.00% 
PAGE_EXECUTE_READ      98  0`0195b000 ( 25.355 Mb) 0.08% 0.00% 
PAGE_WRITECOPY       41  0`00140000 ( 1.250 Mb) 0.00% 0.00% 
PAGE_READWRITE|PAGE_GUARD    19  0`00036000 (216.000 kb) 0.00% 0.00% 
PAGE_EXECUTE_READWRITE     1  0`00001000 ( 4.000 kb) 0.00% 0.00% 

--- Largest Region by Usage ----------- Base Address -------- Region Size ---------- 
Free          9`80030000  7f5`6e4d0000 ( 7.959 Tb) 
Heap          1`80030000  8`00000000 ( 32.000 Gb) 
<unknown>         0`00939000  0`013f7000 ( 19.965 Mb) 
Image         7fe`fe95a000  0`0089e000 ( 8.617 Mb) 
Stack          0`03590000  0`00035000 (212.000 kb) 
Other          0`007a0000  0`00181000 ( 1.504 Mb) 
TEB          7ff`fff94000  0`00002000 ( 8.000 kb) 
PEB          7ff`fffd6000  0`00001000 ( 4.000 kb) 

0:018> !heap -s 
LFH Key     : 0x000000b22491393a 
Termination on corruption : ENABLED 
      Heap  Flags Reserv Commit Virt Free List UCR Virt Lock Fast 
          (k)  (k) (k)  (k) length  blocks cont. heap 
------------------------------------------------------------------------------------- 
Virtual block: 00000000002f0000 - 00000000002f0000 (size 0000000000000000) 
Virtual block: 0000000180030000 - 0000000180030000 (size 0000000000000000) 
00000000001f0000 00000002 2048 1640 2048  18 29  2 2  0 LFH 
0000000000010000 00008000  64  4  64  1  1  1 0  0  
Virtual block: 00000000004e0000 - 00000000004e0000 (size 0000000000000000) 
00000000004d0000 00001002 1088 212 1088  16 11  2 1  0 LFH 
Virtual block: 0000000002100000 - 0000000002100000 (size 0000000000000000) 
00000000022c0000 00001002  64  28  64  2  2  1 1  0 LFH 
Virtual block: 00000000022d0000 - 00000000022d0000 (size 0000000000000000) 
00000000004c0000 00001002  64  64  64  11  3  1 1  0 LFH 
Virtual block: 0000000002400000 - 0000000002400000 (size 0000000000000000) 
0000000000490000 00001002  64  36  64  6  2  1 1  0 LFH 
Virtual block: 0000000002530000 - 0000000002530000 (size 0000000000000000) 
00000000026f0000 00001002  64  64  64  6  3  1 1  0 LFH 
Virtual block: 0000000002700000 - 0000000002700000 (size 0000000000000000) 
0000000002840000 00001002  64  36  64  6  2  1 1  0 LFH 
Virtual block: 0000000002850000 - 0000000002850000 (size 0000000000000000) 
00000000029d0000 00001002  64  28  64  2  2  1 1  0 LFH 
Virtual block: 00000000029e0000 - 00000000029e0000 (size 0000000000000000) 
0000000002b60000 00001002  64  32  64  3  2  1 1  0 LFH 
Virtual block: 0000000002c00000 - 0000000002c00000 (size 0000000000000000) 
0000000002bf0000 00001002  64  36  64  5  2  1 1  0 LFH 
0000000002db0000 00001002  512  24 512  3  2  1 0  0  
0000000002ea0000 00011002  512  8 512  2  1  1 0  0  
Virtual block: 0000000002fc0000 - 0000000002fc0000 (size 0000000000000000) 
Virtual block: 00000000037d0000 - 00000000037d0000 (size 0000000000000000) 
0000000002f40000 00001002  512 204 512  66  7  1 2  0 LFH 
0000000003270000 00001002  64  8  64  3  1  1 0  0  
0000000003120000 00001002  512  8 512  2  2  1 0  0  
0000000003750000 00001002  512  8 512  3  2  1 0  0  
0000000003900000 00001002  512  8 512  3  1  1 0  0  
0000000003740000 00001002  64  8  64  3  1  1 0  0  
Virtual block: 0000000003980000 - 0000000003980000 (size 0000000000000000) 
0000000003b60000 00001002  64  40  64  1  2  1 1  0 LFH 
0000000003e40000 00001003  512 100 512  42 14  1 0 N/A 
0000000003d20000 00001003  512  8 512  5  1  1 0 N/A 
0000000004090000 00001003  512  8 512  5  1  1 0 N/A 
00000000036b0000 00001003  512  8 512  5  1  1 0 N/A 
0000000003f50000 00001003  512  8 512  5  1  1 0 N/A 
0000000004160000 00001003  512  8 512  5  1  1 0 N/A 
0000000004360000 00001003  512  8 512  5  1  1 0 N/A 
00000000045a0000 00001003  512  8 512  5  1  1 0 N/A 
00000000042d0000 00001003  512  8 512  5  1  1 0 N/A 
0000000003ad0000 00001003  512  8 512  5  1  1 0 N/A 
0000000004790000 00001003  512  8 512  5  1  1 0 N/A 
0000000004010000 00001003  512  8 512  5  1  1 0 N/A 
0000000004460000 00001003  512  8 512  5  1  1 0 N/A 
00000000046c0000 00001003  512  8 512  5  1  1 0 N/A 
0000000004990000 00001003  512  8 512  5  1  1 0 N/A 
0000000004ba0000 00001003  512  8 512  5  1  1 0 N/A 
0000000004b80000 00001003 1088 136 1088  69  2  2 0 N/A 
Virtual block: 0000000005120000 - 0000000005120000 (size 0000000000000000) 
00000000031d0000 00001002 1088 376 1088  12  3  2 1  0 LFH 
Virtual block: 0000000005250000 - 0000000005250000 (size 0000000000000000) 
0000000003d10000 00001002  64  36  64  7  2  1 1  0 LFH 
------------------------------------------------------------------------------------- 

ответ

2

кажется, что 32 Гб скрыты за линией, начиная с Virtual block. Я создал образец программы, который выделяет блок памяти объемом 100 МБ, используя функцию HeapAlloc().

В WinDbg 6.12.0002.633, 6.2.9200.16384 и 6.3.9600.16384 каждый раз, когда я выделяю такой блок, он отображается как дополнительная строка Virtual block: <address> - <address> (size 00000000).

К сожалению, я понятия не имею, как получить правильный размер.

+0

Но '! Address -summary' действительно заявляет, что использование кучи составляет 32 ГБ. Разве не должно быть '! Heap -s' показывать кучи на 32 ГБ? –

+0

Конечно, вы правы. Вызовы VirtualAlloc() увеличивают количество памяти ''. Неужели '! Heap -s -v' находит что-нибудь подозрительное? –

+0

Нет, результат выглядит так же, как '! Heap -s'. –

Смежные вопросы