我做了一个S/C的基于WINSOCKET的聊天程序,现在调试SERVER端应用程序时,发现有严重的内存泄露,我是用DEBUG的GO指令来调试程序的,结构清单如下:
Detected memory leaks!
Dumping objects ->
sockcore.cpp(836) : {877} normal block at 0x007A4090, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 C0 00 00 00 20 00 00 00
sockcore.cpp(836) : {787} normal block at 0x007A3470, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 AC 00 00 00 20 00 00 00
afxtempl.h(370) : {773} normal block at 0x007A30A0, 20 bytes long.
Data: <) ) $ $ > 29 00 00 00 29 00 00 00 24 00 00 00 24 00 00 00
afxtempl.h(370) : {772} normal block at 0x007A3420, 20 bytes long.
Data: <`&z `&z `Gz `Gz > 60 26 7A 00 60 26 7A 00 60 47 7A 00 60 47 7A 00
afxtempl.h(370) : {761} normal block at 0x007A4930, 20 bytes long.
Data: <$ $ > 24 00 00 00 24 00 00 00 CD CD CD CD CD CD CD CD
afxtempl.h(370) : {760} normal block at 0x007A3140, 20 bytes long.
Data: < 0z 0z > 90 30 7A 00 90 30 7A 00 CD CD CD CD CD CD CD CD
sockcore.cpp(836) : {692} normal block at 0x007A4650, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 B4 00 00 00 20 00 00 00
sockcore.cpp(836) : {690} normal block at 0x007A46A0, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 B4 00 00 00 02 00 00 00
sockcore.cpp(836) : {688} normal block at 0x007A3310, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 B4 00 00 00 01 00 00 00
afxtempl.h(370) : {687} normal block at 0x007A1AA0, 20 bytes long.
Data: <, , > 2C 00 00 00 2C 00 00 00 CD CD CD CD CD CD CD CD
afxtempl.h(370) : {686} normal block at 0x007A33D0, 20 bytes long.
Data: <PGz PGz > 50 47 7A 00 50 47 7A 00 CD CD CD CD CD CD CD CD
strcore.cpp(118) : {541} normal block at 0x007A3040, 26 bytes long.
Data: < 192.> 01 00 00 00 0D 00 00 00 0D 00 00 00 31 39 32 2E
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {529} client block at 0x007A3880, subtype 0, 212 bytes long.
a CServerConnectThread object at $007A3880, 212 bytes long
strcore.cpp(118) : {495} normal block at 0x007A2040, 26 bytes long.
Data: < 192.> 01 00 00 00 0D 00 00 00 0D 00 00 00 31 39 32 2E
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {483} client block at 0x007A3E70, subtype 0, 212 bytes long.
a CServerConnectThread object at $007A3E70, 212 bytes long
strcore.cpp(118) : {347} normal block at 0x007A2830, 26 bytes long.
Data: < 192.> 01 00 00 00 0D 00 00 00 0D 00 00 00 31 39 32 2E
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {334} client block at 0x007A2210, subtype 0, 212 bytes long.
a CServerConnectThread object at $007A2210, 212 bytes long
Object dump complete.
这些东西我看不太懂,请高手指点!!!
谢谢,高分奉上!!!
Detected memory leaks!
Dumping objects ->
sockcore.cpp(836) : {877} normal block at 0x007A4090, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 C0 00 00 00 20 00 00 00
sockcore.cpp(836) : {787} normal block at 0x007A3470, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 AC 00 00 00 20 00 00 00
afxtempl.h(370) : {773} normal block at 0x007A30A0, 20 bytes long.
Data: <) ) $ $ > 29 00 00 00 29 00 00 00 24 00 00 00 24 00 00 00
afxtempl.h(370) : {772} normal block at 0x007A3420, 20 bytes long.
Data: <`&z `&z `Gz `Gz > 60 26 7A 00 60 26 7A 00 60 47 7A 00 60 47 7A 00
afxtempl.h(370) : {761} normal block at 0x007A4930, 20 bytes long.
Data: <$ $ > 24 00 00 00 24 00 00 00 CD CD CD CD CD CD CD CD
afxtempl.h(370) : {760} normal block at 0x007A3140, 20 bytes long.
Data: < 0z 0z > 90 30 7A 00 90 30 7A 00 CD CD CD CD CD CD CD CD
sockcore.cpp(836) : {692} normal block at 0x007A4650, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 B4 00 00 00 20 00 00 00
sockcore.cpp(836) : {690} normal block at 0x007A46A0, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 B4 00 00 00 02 00 00 00
sockcore.cpp(836) : {688} normal block at 0x007A3310, 28 bytes long.
Data: < s > CD CD CD CD 73 03 00 00 B4 00 00 00 01 00 00 00
afxtempl.h(370) : {687} normal block at 0x007A1AA0, 20 bytes long.
Data: <, , > 2C 00 00 00 2C 00 00 00 CD CD CD CD CD CD CD CD
afxtempl.h(370) : {686} normal block at 0x007A33D0, 20 bytes long.
Data: <PGz PGz > 50 47 7A 00 50 47 7A 00 CD CD CD CD CD CD CD CD
strcore.cpp(118) : {541} normal block at 0x007A3040, 26 bytes long.
Data: < 192.> 01 00 00 00 0D 00 00 00 0D 00 00 00 31 39 32 2E
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {529} client block at 0x007A3880, subtype 0, 212 bytes long.
a CServerConnectThread object at $007A3880, 212 bytes long
strcore.cpp(118) : {495} normal block at 0x007A2040, 26 bytes long.
Data: < 192.> 01 00 00 00 0D 00 00 00 0D 00 00 00 31 39 32 2E
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {483} client block at 0x007A3E70, subtype 0, 212 bytes long.
a CServerConnectThread object at $007A3E70, 212 bytes long
strcore.cpp(118) : {347} normal block at 0x007A2830, 26 bytes long.
Data: < 192.> 01 00 00 00 0D 00 00 00 0D 00 00 00 31 39 32 2E
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {334} client block at 0x007A2210, subtype 0, 212 bytes long.
a CServerConnectThread object at $007A2210, 212 bytes long
Object dump complete.
这些东西我看不太懂,请高手指点!!!
谢谢,高分奉上!!!
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {529} client block at 0x007A3880, subtype 0, 212 bytes long.
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {483} client block at 0x007A3E70, subtype 0, 212 bytes long.
D:\MyC over\TALK\TalkServer\ServerListenSocket.cpp(51) : {334} client block at 0x007A2210, subtype 0, 212 bytes long.
那不就一目了然了吗?
bounder checker 6.01,在这里下的,你去看看
http://www.vckbase.com/tools/debug/BChecker6.01.zip
s/n: 6109-00009B-9F
sockcore.cpp 是由于
afxtempl是由于CArray由于你的Array没有释放,这个问题一般可以看其他的地方是否有指针没有释放,sockcore.cpp也是一样的原因
s/n: 6109-00009B-9F