Windbg Commands Heap -s and! Heap -stat does not match output

I have a memory dump. In this dump, I have a bunch with a pen fd00000. This is an excerpt from the output of the command !heap -s fd00000:

 0: Heap 0fd00000
 Flags          00001002 - HEAP_GROWABLE 
 Reserved memory in segments              80192 (k)
 Commited memory in segments              56540 (k)
 Virtual bytes (correction for large UCR) 60592 (k)
 Free space                               3884 (k) (572 blocks)
 External fragmentation          6% (572 free blocks)
 Virtual address fragmentation   6% (69 uncommited ranges)
 Virtual blocks  124 - total 0 KBytes
 Lock contention 23
 Segments        1

You see that it shows the summary information as expected. But the conclusion !heap -stat -h 0fd00000 shows the following:

 heap @ 0fd00000
 group-by: TOTSIZE max-display: 20
 size     #blocks     total     ( %) (percent of total busy bytes)
 19fa40 7a - c614280  (93.96)
 62d30 4 - 18b4c0  (0.73)
 d49 13d - 107365  (0.49)

This is all a hexadecimal number, so I see that the โ€œtotal bytes busyโ€ exceeds 205 megabytes. So you see that it !heap -stells me that this heap has 80 MB / 60 MB of reserved / virtual memory, and it !heap -stattells me that this heap takes up 205 megabytes. . The failure is so huge. How is this possible? When I start !heap -s, I see several entries like this:

Virtual block: 293c0000 - 293c0000 (size 00000000)

Perhaps this is the reason?

+4
1

, !heap , . VirtualAlloc, !heap , , . WinDbg SDK Windows, !heap , Windows.

VMMap .

+1

Source: https://habr.com/ru/post/1540716/


All Articles