• 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

     

  • 相关阅读:
    Android中Handler原理
    微软柯塔娜(Cortana)的一句名言
    C# 单例模式的五种写法
    HTTP Status 404
    PLSQL中显示Cursor、隐示Cursor、动态Ref Cursor差别
    Android 开发之集成百度地图的定位与地图展示
    iOS知识点汇总
    优化报表系统结构之报表server计算
    淘宝中间的一像素线(手机端)
    解决yum升级的问题“There was a problem importing one of the Python modules”
  • 原文地址:https://www.cnblogs.com/cutepig/p/2007370.html
Copyright © 2020-2023  润新知