RedLars
2008-06-26 15:54:04 UTC
Currently debugging an unmanaged memory leak.
Using this article as a guideline http://www.microsoft.com/whdc/archive/XP_kernel.mspx
(see Built-in User Heap Leak Detection)
0:000> !heap -l
Searching the memory for potential unreachable busy blocks.
Heap 00150000
... 36 other blocks (removed for brevity)
Scanning VM ...
Scanning references from 170901 busy blocks (16
MBytes) ...................
Entry User Heap Segment Size PrevSize Unused
Flags
-----------------------------------------------------------------------------
0018c540 0018c548 00150000 00150000 28 20 8
busy
0018cf30 0018cf38 00150000 00150000 28 50 8
busy
...1030 other blocks (removed for brevity)
The next bit I'm rather uncertain about:
0:000> dc 0018c540+28-8 l1
0018c560 006e0000 ..n.
0:000> dds 006e0000
006e0000 00905a4d og901as!Ordinal24164+0x8761
006e0004 00000003
006e0008 00000004
006e000c 0000ffff
006e0010 000000b8
006e0014 00000000
006e0018 00000040
006e001c 00000000
006e0020 00000000
006e0024 00000000
006e0028 00000000
006e002c 00000000
006e0030 00000000
006e0034 00000000
006e0038 00000000
006e003c 00000100
006e0040 0eba1f0e
006e0044 cd09b400
006e0048 4c01b821
006e004c 685421cd
006e0050 70207369
006e0054 72676f72
006e0058 63206d61
006e005c 6f6e6e61
006e0060 65622074
006e0064 6e757220
006e0068 206e6920
006e006c 20534f44
006e0070 65646f6d
006e0074 0a0d0d2e
006e0078 00000024
006e007c 00000000
#1 What can I actually learn from this output?
#2 Could someone please explain what the command dc and dds are
doing ? Especically confussed about the calculation of the address in
the dc command.
#3 Any other commands I should rather be executing?
Cheers
Using this article as a guideline http://www.microsoft.com/whdc/archive/XP_kernel.mspx
(see Built-in User Heap Leak Detection)
0:000> !heap -l
Searching the memory for potential unreachable busy blocks.
Heap 00150000
... 36 other blocks (removed for brevity)
Scanning VM ...
Scanning references from 170901 busy blocks (16
MBytes) ...................
Entry User Heap Segment Size PrevSize Unused
Flags
-----------------------------------------------------------------------------
0018c540 0018c548 00150000 00150000 28 20 8
busy
0018cf30 0018cf38 00150000 00150000 28 50 8
busy
...1030 other blocks (removed for brevity)
The next bit I'm rather uncertain about:
0:000> dc 0018c540+28-8 l1
0018c560 006e0000 ..n.
0:000> dds 006e0000
006e0000 00905a4d og901as!Ordinal24164+0x8761
006e0004 00000003
006e0008 00000004
006e000c 0000ffff
006e0010 000000b8
006e0014 00000000
006e0018 00000040
006e001c 00000000
006e0020 00000000
006e0024 00000000
006e0028 00000000
006e002c 00000000
006e0030 00000000
006e0034 00000000
006e0038 00000000
006e003c 00000100
006e0040 0eba1f0e
006e0044 cd09b400
006e0048 4c01b821
006e004c 685421cd
006e0050 70207369
006e0054 72676f72
006e0058 63206d61
006e005c 6f6e6e61
006e0060 65622074
006e0064 6e757220
006e0068 206e6920
006e006c 20534f44
006e0070 65646f6d
006e0074 0a0d0d2e
006e0078 00000024
006e007c 00000000
#1 What can I actually learn from this output?
#2 Could someone please explain what the command dc and dds are
doing ? Especically confussed about the calculation of the address in
the dc command.
#3 Any other commands I should rather be executing?
Cheers