Охота на утечки памяти - PullRequest
       19

Охота на утечки памяти

0 голосов
/ 16 ноября 2009

Я нахожу пропущенные блоки кучи с помощью следующей команды в WinDbg

!heap –l

С каждым просочившимся блоком кучи я бегу к следованию, чтобы получить трассировку стека.

!heap -p -a leakedheapblock

Ниже приведен результат этой команды:

address 1c841cc0 found in
_HEAP @ 3930000
  HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
    1c851cc0 0009 0000  [03]   1c851ce8    0000c - (busy)
    Trace: 84f8
    7c873c19 ntdll!RtlpDphNormalHeapAllocate+0x00000030
    7c876870 ntdll!RtlpDebugPageHeapAllocate+0x00000335
    7c8794a8 ntdll!RtlDebugAllocateHeap+0x0000002d
    7c8531e4 ntdll!RtlAllocateHeapSlowly+0x00000041
    7c83d97a ntdll!RtlAllocateHeap+0x00000e9f
    1699d238 MyLibrary!malloc+0x0000007a

Как найти фрагмент кода в «MyLibrary», который пропускает.

1 Ответ

0 голосов
/ 16 ноября 2009

В MSDN есть хорошее руководство по этому поводу: Включение обнаружения утечки памяти

...