首先,没有任何new、malloc;至少在俺自己的代码里没有。
引用的库均为系统自带,MFC STL socket 而已
现象:
运行10来分钟 提示内存不足。
用leakdiag检测内存泄露,很多API调用处都显示有内存泄露,报告如下。
提示: 已经把VS2008 的工程属性-》C/C++/代码生成 -》运行时库 设置成 MD
(据高手说 有些内存泄露是因为 引用的库使用不同版本的运行时库)
<STACK numallocs="01" size="0548" totalsize="0548">
<STACKSTATS>
<SIZESTAT size="0548" numallocs="01"/>
<HEAPSTAT handle="3f0000" numallocs="01"/>
</STACKSTATS>
<FRAME num="0" dll="MSVCR90D.dll" function ="_heap_alloc_base" offset="0x5E" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\malloc.c" line="105" addr="0x102C103E" />
<FRAME num="1" dll="MSVCR90D.dll" function ="_heap_alloc_dbg_impl" offset="0x1F6" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c" line="427" addr="0x102CFD76" />
<FRAME num="2" dll="MSVCR90D.dll" function ="_nh_malloc_dbg_impl" offset="0x1F" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c" line="239" addr="0x102CFB2F" />
<FRAME num="3" dll="MSVCR90D.dll" function ="_calloc_dbg_impl" offset="0xA3" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c" line="593" addr="0x102CFFE3" />
<FRAME num="4" dll="MSVCR90D.dll" function ="_calloc_dbg" offset="0x2C" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\dbgheap.c" line="644" addr="0x102D003C" />
<FRAME num="5" dll="MSVCP90D.dll" function ="_Getctype" offset="0x36" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\_tolower.c" line="144" addr="0x104EEE36" />
<FRAME num="6" dll="MSVCP90D.dll" function ="std___Locinfo___Getctype" offset="0x14" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\xlocinfo" line="126" addr="0x10488394" />
<FRAME num="7" dll="MSVCP90D.dll" function ="std__ctype<wchar_t>___Init" offset="0x17" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\xlocale" line="2109" addr="0x1048BF07" />
<FRAME num="8" dll="MSVCP90D.dll" function ="std__ctype<wchar_t>__ctype<wchar_t>" offset="0x50" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\xlocale" line="2088" addr="0x1048BD00" />
<FRAME num="9" dll="MSVCP90D.dll" function ="std__ctype<wchar_t>___Getcat" offset="0xFD" filename="f:\dd\vctools\crt_bld\self_x86\crt\src\xlocale" line="2095" addr="0x1048BE1D" />
<FRAME num="10" dll="DefWorld.exe" function ="std__use_facet<std__ctype<wchar_t> >" offset="0xBA" filename="d:\program files\microsoft visual studio 9.0\vc\include\xlocale" line="498" addr="0x46E74A" />
<FRAME num="11" dll="DefWorld.exe" function ="std__operator<<<wchar_t,std__char_traits<wchar_t> >" offset="0x149" filename="d:\program files\microsoft visual studio 9.0\vc\include\ostream" line="667" addr="0x46DD29" />
<FRAME num="12" dll="DefWorld.exe" function ="CDataPage__ProcessResult" offset="0x45B" filename="d:\yahoo\defworld-md\datapage.cpp" line="1099" addr="0x43F37B" />
<FRAME num="13" dll="DefWorld.exe" function ="CDataPage__OnTimer" offset="0x4A" filename="d:\yahoo\defworld-md\datapage.cpp" line="771" addr="0x43D92A" />
<STACKID>053E17E8</STACKID>
</STACK>
<STACK numallocs="01" size="032" totalsize="032">
<STACKSTATS>
<SIZESTAT size="032" numallocs="01"/>
<HEAPSTAT handle="150000" numallocs="01"/>
</STACKSTATS>
<FRAME num="0" dll="ntdll.dll" function ="RtlDeleteCriticalSection" offset="0x15C" filename="" line="" addr="0x7C9314D6" />
<FRAME num="1" dll="ntdll.dll" function ="RtlInitializeCriticalSectionAndSpinCount" offset="0x4C" filename="" line="" addr="0x7C931566" />
<FRAME num="2" dll="kernel32.dll" function ="InitializeCriticalSectionAndSpinCount" offset="0x15" filename="" line="" addr="0x7C80B8DE" />
<FRAME num="3" dll="UxTheme.dll" function ="GetThemeTextMetrics" offset="0xCC4" filename="" line="" addr="0x5ADDBF57" />
<FRAME num="4" dll="UxTheme.dll" function ="GetThemeTextMetrics" offset="0xB25" filename="" line="" addr="0x5ADDBDB8" />
<FRAME num="5" dll="UxTheme.dll" function ="GetThemeTextMetrics" offset="0xAE1" filename="" line="" addr="0x5ADDBD74" />
<FRAME num="6" dll="UxTheme.dll" function="" filename="" line="" addr="0x5adc166e" offset="0x0000166E" />
<FRAME num="7" dll="ntdll.dll" function ="LdrInitializeThunk" offset="0x24" filename="" line="" addr="0x7C92118A" />
<FRAME num="8" dll="ntdll.dll" function ="LdrFindResourceDirectory_U" offset="0x28D" filename="" line="" addr="0x7C93B5D2" />
<FRAME num="9" dll="ntdll.dll" function ="RtlValidateUnicodeString" offset="0x511" filename="" line="" addr="0x7C9362DB" />
<FRAME num="10" dll="ntdll.dll" function ="LdrLoadDll" offset="0x110" filename="" line="" addr="0x7C93643D" />
<FRAME num="11" dll="kernel32.dll" function ="LoadLibraryExW" offset="0xC8" filename="" line="" addr="0x7C801BBD" />
<FRAME num="12" dll="kernel32.dll" function ="LoadLibraryExA" offset="0x1F" filename="" line="" addr="0x7C801D72" />
<FRAME num="13" dll="kernel32.dll" function ="LoadLibraryA" offset="0x2D" filename="" line="" addr="0x7C801DA8" />
<STACKID>01CF4008</STACKID>
</STACK>
<STACK numallocs="01" size="032" totalsize="032">
<STACKSTATS>
<SIZESTAT size="032" numallocs="01"/>
<HEAPSTAT handle="150000" numallocs="01"/>
</STACKSTATS>
<FRAME num="0" dll="ntdll.dll" function ="RtlAddAtomToAtomTable" offset="0x16E" filename="" line="" addr="0x7C954710" />
<FRAME num="1" dll="ntdll.dll" function ="RtlAddAtomToAtomTable" offset="0x7C" filename="" line="" addr="0x7C95461E" />
<FRAME num="2" dll="kernel32.dll" function ="DeleteAtom" offset="0x22" filename="" line="" addr="0x7C8330B7" />
<FRAME num="3" dll="kernel32.dll" function ="AddAtomW" offset="0x11" filename="" line="" addr="0x7C8330D2" />
<FRAME num="4" dll="UxTheme.dll" function ="SetWindowTheme" offset="0x9E" filename="" line="" addr="0x5ADCB43C" />
<FRAME num="5" dll="UxTheme.dll" function ="SetWindowTheme" offset="0x5C" filename="" line="" addr="0x5ADCB3FA" />
<FRAME num="6" dll="comdlg32.dll" function ="PrintDlgExW" offset="0x2469" filename="" line="" addr="0x7634C1ED" />
<FRAME num="7" dll="comdlg32.dll" function ="GetOpenFileNameA" offset="0x9196" filename="" line="" addr="0x7632C235" />
<FRAME num="8" dll="comdlg32.dll" function ="GetOpenFileNameA" offset="0x55B" filename="" line="" addr="0x763235FA" />
<FRAME num="9" dll="USER32.dll" function ="GetDC" offset="0x6D" filename="" line="" addr="0x77D18734" />
<FRAME num="10" dll="USER32.dll" function ="EnumDisplaySettingsA" offset="0x27D" filename="" line="" addr="0x77D23CE4" />
<FRAME num="11" dll="USER32.dll" function ="EnumDisplaySettingsA" offset="0xC9" filename="" line="" addr="0x77D23B30" />
<FRAME num="12" dll="USER32.dll" function ="DefDlgProcA" offset="0x22" filename="" line="" addr="0x77D3E599" />
<FRAME num="13" dll="USER32.dll" function ="GetDC" offset="0x6D" filename="" line="" addr="0x77D18734" />
<STACKID>01CF49A8</STACKID>
</STACK>
[课程]Android-CTF解题方法汇总!