windbg debug memory leakage

program:

 

#include "stdlib.h"
#include <crtdbg.h>

void testLeak1()
{
 new int;
}

void testLeak2()
{
 malloc(123);
}

int _tmain(int argc, _TCHAR* argv[])
{
 _CrtSetDbgFlag( _CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_CHECK_CRT_DF );

 malloc(100);
 testLeak1();
 testLeak2();

 return 0;
}

 

CommandLine: D:\ctest\test\Debug\test.exe
CommandLine: D:\ctest\test\Debug\test.exe
Unable to deliver callback, Unable to deliver callback, 127127

Symbol search path is: Symbol search path is: SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols
SRV*C:\MyLocalSymbols*http://msdl.microsoft.com/download/symbols
Executable search path is:
Executable search path is:
ModLoad: 00400000 0041b000   test.exe
ModLoad: 00400000 0041b000   test.exe
Unable to deliver callback, Unable to deliver callback, 00

ModLoad: 7c920000 7c9b3000   ntdll.dll
ModLoad: 7c920000 7c9b3000   ntdll.dll
ModLoad: 7c800000 7c91e000   C:\WINDOWS\system32\kernel32.dll
ModLoad: 7c800000 7c91e000   C:\WINDOWS\system32\kernel32.dll
ModLoad: 10200000 10323000   C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\MSVCR90D.dll
ModLoad: 10200000 10323000   C:\WINDOWS\WinSxS\x86_Microsoft.VC90.DebugCRT_1fc8b3b9a1e18e3b_9.0.21022.8_x-ww_597c3456\MSVCR90D.dll
(fdc.e44): Break instruction exception(fdc.e44): Break instruction exception - code 80000003 (first chance)
 - code 80000003 (first chance)
eax=00251eb4 ebx=7ffdb000 ecx=00000003 edx=00000008 esi=00251f48 edi=00251eb4
eip=7c92120e esp=0012fb20 ebp=0012fc94 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
eax=00251eb4 ebx=7ffdb000 ecx=00000003 edx=00000008 esi=00251f48 edi=00251eb4
eip=7c92120e esp=0012fb20 ebp=0012fc94 iopl=0         nv up ei pl nz na po nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000202
ntdll!DbgBreakPoint:
7c92120e cc              int     3
ntdll!DbgBreakPoint:
7c92120e cc              int     3
0:000> g
0:000> g
Detected memory leaks!
Detected memory leaks!
Dumping objects ->
Dumping objects ->
{80} {80} normal block at 0x00395F38, 123 bytes long.
normal block at 0x00395F38, 123 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
{79} {79} normal block at 0x00395EF8, 4 bytes long.
normal block at 0x00395EF8, 4 bytes long.
 Data: <    > CD CD CD CD
 Data: <    > CD CD CD CD
{78} {78} normal block at 0x00395E58, 100 bytes long.
normal block at 0x00395E58, 100 bytes long.
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
 Data: <                > CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.c(593) : f:\dd\vctools\crt_bld\self_x86\crt\src\mbctype.c(593) : {4} {4} crt block at 0x00392E60, subtype 0, 544 bytes long.
crt block at 0x00392E60, subtype 0, 544 bytes long.
 Data: <                > 02 00 00 00 A8 03 00 00 01 00 00 00 04 08 00 00
 Data: <                > 02 00 00 00 A8 03 00 00 01 00 00 00 04 08 00 00
f:\dd\vctools\crt_bld\self_x86\crt\src\ioinit.c(136) : f:\dd\vctools\crt_bld\self_x86\crt\src\ioinit.c(136) : {2} {2} crt block at 0x00392110, subtype 0, 2048 bytes long.
crt block at 0x00392110, subtype 0, 2048 bytes long.
 Data: <            `  |> 03 00 00 00 C1 0A 00 00 01 00 00 00 60 B9 99 7C
 Data: <            `  |> 03 00 00 00 C1 0A 00 00 01 00 00 00 60 B9 99 7C
f:\dd\vctools\crt_bld\self_x86\crt\src\tidtable.c(394) : f:\dd\vctools\crt_bld\self_x86\crt\src\tidtable.c(394) : {1} {1} crt block at 0x00391EC0, subtype 0, 532 bytes long.
crt block at 0x00391EC0, subtype 0, 532 bytes long.
 Data: <D               > 44 0E 00 00 FF FF FF FF 00 00 00 00 00 00 00 00
 Data: <D               > 44 0E 00 00 FF FF FF FF 00 00 00 00 00 00 00 00
Object dump complete.
Object dump complete.
Unable to deliver callback, Unable to deliver callback, 00

eax=00000000 ebx=00000000 ecx=7c800000 edx=0012fcb8 esi=7c92de50 edi=00000000
eip=7c92e4f4 esp=0012fdf0 ebp=0012feec iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
eax=00000000 ebx=00000000 ecx=7c800000 edx=0012fcb8 esi=7c92de50 edi=00000000
eip=7c92e4f4 esp=0012fdf0 ebp=0012feec iopl=0         nv up ei pl zr na pe nc
cs=001b  ss=0023  ds=0023  es=0023  fs=003b  gs=0000             efl=00000246
ntdll!KiFastSystemCallRet:
7c92e4f4 c3              ret
ntdll!KiFastSystemCallRet:
7c92e4f4 c3              ret
0:000> !heap -p -a 0x00395F38
0:000> !heap -p -a 0x00395F38
    address 00395f38 found in
    address 00395f38 found in
    _HEAP @ 390000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00395f10 0017 0000  [07]   00395f18    0009f - (busy)
        Trace: 004c
        7c98cf9a ntdll!RtlDebugAllocateHeap+0x000000e1
        7c969564 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c938f01 ntdll!RtlAllocateHeap+0x00000e64
        102c103e MSVCR90D!_heap_alloc_base+0x0000005e
        102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6
        102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f
        102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c
        102db25b MSVCR90D!malloc+0x0000001b
    _HEAP @ 390000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00395f10 0017 0000  [07]   00395f18    0009f - (busy)
        Trace: 004c
        7c98cf9a ntdll!RtlDebugAllocateHeap+0x000000e1
        7c969564 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c938f01 ntdll!RtlAllocateHeap+0x00000e64
        102c103e MSVCR90D!_heap_alloc_base+0x0000005e
        102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6
        102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f
        102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c
        102db25b MSVCR90D!malloc+0x0000001b
*** WARNING: Unable to verify checksum for test.exe
*** WARNING: Unable to verify checksum for test.exe
        411a38 test!testLeak2+0x00000028
        41356c test!wmain+0x0000006c
        411968 test!__tmainCRTStartup+0x000001a8
        4117af test!wmainCRTStartup+0x0000000f
        7c817067 kernel32!BaseProcessStart+0x00000023

 
        411a38 test!testLeak2+0x00000028
        41356c test!wmain+0x0000006c
        411968 test!__tmainCRTStartup+0x000001a8
        4117af test!wmainCRTStartup+0x0000000f
        7c817067 kernel32!BaseProcessStart+0x00000023

 
0:000> !heap -p -a 0x00395F38
0:000> !heap -p -a 0x00395F38
    address 00395f38 found in
    address 00395f38 found in
    _HEAP @ 390000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00395f10 0017 0000  [07]   00395f18    0009f - (busy)
        Trace: 004c
        7c98cf9a ntdll!RtlDebugAllocateHeap+0x000000e1
        7c969564 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c938f01 ntdll!RtlAllocateHeap+0x00000e64
        102c103e MSVCR90D!_heap_alloc_base+0x0000005e
        102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6
        102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f
        102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c
        102db25b MSVCR90D!malloc+0x0000001b
        411a38 test!testLeak2+0x00000028
        41356c test!wmain+0x0000006c
        411968 test!__tmainCRTStartup+0x000001a8
        4117af test!wmainCRTStartup+0x0000000f
        7c817067 kernel32!BaseProcessStart+0x00000023

 
    _HEAP @ 390000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00395f10 0017 0000  [07]   00395f18    0009f - (busy)
        Trace: 004c
        7c98cf9a ntdll!RtlDebugAllocateHeap+0x000000e1
        7c969564 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c938f01 ntdll!RtlAllocateHeap+0x00000e64
        102c103e MSVCR90D!_heap_alloc_base+0x0000005e
        102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6
        102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f
        102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c
        102db25b MSVCR90D!malloc+0x0000001b
        411a38 test!testLeak2+0x00000028
        41356c test!wmain+0x0000006c
        411968 test!__tmainCRTStartup+0x000001a8
        4117af test!wmainCRTStartup+0x0000000f
        7c817067 kernel32!BaseProcessStart+0x00000023

 
0:000> !heap -p -a 0x00395EF8
0:000> !heap -p -a 0x00395EF8
    address 00395ef8 found in
    address 00395ef8 found in
    _HEAP @ 390000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00395ed0 0008 0000  [07]   00395ed8    00028 - (busy)
        Trace: 004b
        7c98cf9a ntdll!RtlDebugAllocateHeap+0x000000e1
        7c969564 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c938f01 ntdll!RtlAllocateHeap+0x00000e64
        102c103e MSVCR90D!_heap_alloc_base+0x0000005e
        102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6
        102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f
        102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c
        102db25b MSVCR90D!malloc+0x0000001b
        102bd691 MSVCR90D!operator new+0x00000011
        412fd5 test!testLeak1+0x00000025
        413567 test!wmain+0x00000067
        411968 test!__tmainCRTStartup+0x000001a8
        4117af test!wmainCRTStartup+0x0000000f
        7c817067 kernel32!BaseProcessStart+0x00000023

 
    _HEAP @ 390000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00395ed0 0008 0000  [07]   00395ed8    00028 - (busy)
        Trace: 004b
        7c98cf9a ntdll!RtlDebugAllocateHeap+0x000000e1
        7c969564 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c938f01 ntdll!RtlAllocateHeap+0x00000e64
        102c103e MSVCR90D!_heap_alloc_base+0x0000005e
        102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6
        102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f
        102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c
        102db25b MSVCR90D!malloc+0x0000001b
        102bd691 MSVCR90D!operator new+0x00000011
        412fd5 test!testLeak1+0x00000025
        413567 test!wmain+0x00000067
        411968 test!__tmainCRTStartup+0x000001a8
        4117af test!wmainCRTStartup+0x0000000f
        7c817067 kernel32!BaseProcessStart+0x00000023

 
0:000> x *!_crtheap
0:000> x *!_crtheap
103161ec MSVCR90D!_crtheap = <no type information>
103161ec MSVCR90D!_crtheap = <no type information>
0:000> dd MSVCR90D!_crtheap
0:000> dd MSVCR90D!_crtheap
103161ec  00390000 00000000 00000000 00000000
103161fc  00000000 00000000 00000000 00000000
1031620c  00000000 00000000 00000000 00000000
1031621c  00000000 00000000 00000000 00000000
1031622c  00000000 00000000 00000000 00000000
1031623c  00000000 00000000 00000000 00000000
1031624c  00000000 00000000 00000000 00000000
1031625c  00000000 ccd28a82 00003dde 00391ea0
103161ec  00390000 00000000 00000000 00000000
103161fc  00000000 00000000 00000000 00000000
1031620c  00000000 00000000 00000000 00000000
1031621c  00000000 00000000 00000000 00000000
1031622c  00000000 00000000 00000000 00000000
1031623c  00000000 00000000 00000000 00000000
1031624c  00000000 00000000 00000000 00000000
1031625c  00000000 ccd28a82 00003dde 00391ea0
0:000> !heap -p -a 0x00395EF8
0:000> !heap -p -a 0x00395EF8
    address 00395ef8 found in
    address 00395ef8 found in
    _HEAP @ 390000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00395ed0 0008 0000  [07]   00395ed8    00028 - (busy)
        Trace: 004b
        7c98cf9a ntdll!RtlDebugAllocateHeap+0x000000e1
        7c969564 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c938f01 ntdll!RtlAllocateHeap+0x00000e64
        102c103e MSVCR90D!_heap_alloc_base+0x0000005e
        102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6
        102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f
        102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c
        102db25b MSVCR90D!malloc+0x0000001b
        102bd691 MSVCR90D!operator new+0x00000011
        412fd5 test!testLeak1+0x00000025
        413567 test!wmain+0x00000067
        411968 test!__tmainCRTStartup+0x000001a8
        4117af test!wmainCRTStartup+0x0000000f
        7c817067 kernel32!BaseProcessStart+0x00000023

 
    _HEAP @ 390000
      HEAP_ENTRY Size Prev Flags    UserPtr UserSize - state
        00395ed0 0008 0000  [07]   00395ed8    00028 - (busy)
        Trace: 004b
        7c98cf9a ntdll!RtlDebugAllocateHeap+0x000000e1
        7c969564 ntdll!RtlAllocateHeapSlowly+0x00000044
        7c938f01 ntdll!RtlAllocateHeap+0x00000e64
        102c103e MSVCR90D!_heap_alloc_base+0x0000005e
        102cfd76 MSVCR90D!_heap_alloc_dbg_impl+0x000001f6
        102cfb2f MSVCR90D!_nh_malloc_dbg_impl+0x0000001f
        102cfadc MSVCR90D!_nh_malloc_dbg+0x0000002c
        102db25b MSVCR90D!malloc+0x0000001b
        102bd691 MSVCR90D!operator new+0x00000011
        412fd5 test!testLeak1+0x00000025
        413567 test!wmain+0x00000067
        411968 test!__tmainCRTStartup+0x000001a8
        4117af test!wmainCRTStartup+0x0000000f
        7c817067 kernel32!BaseProcessStart+0x00000023

 

posted on 2011-04-07 00:51  cutepig  阅读(1714)  评论(0编辑  收藏  举报

导航