тестировал на Rational Purify ,ниже лог, тут по любому что то с сокетами не так я делаю
[I] Starting main
[I] Summary of all memory leaks... {932 bytes, 2 blocks}
[I] MPK: Potential memory leak of 896 bytes from 1 block allocated in EnumerateSecurityPackagesW [SECUR32.DLL]
Offset 0x000000b4 referenced by 0x0017a13c, a location in a HeapAlloc'd block
Offset 0x000000c8 referenced by 0x0017a140, a location in a HeapAlloc'd block
Offset 0x00000102 referenced by 0x0017a158, a location in a HeapAlloc'd block
Offset 0x00000114 referenced by 0x0017a15c, a location in a HeapAlloc'd block
Offset 0x00000144 referenced by 0x0017a174, a location in a HeapAlloc'd block
Offset 0x0000014e referenced by 0x0017a178, a location in a HeapAlloc'd block
Offset 0x0000017a referenced by 0x0017a190, a location in a HeapAlloc'd block
Offset 0x000001d4 referenced by 0x0017a194, a location in a HeapAlloc'd block
Offset 0x0000022e referenced by 0x0017a1ac, a location in a HeapAlloc'd block
Offset 0x00000240 referenced by 0x0017a1b0, a location in a HeapAlloc'd block
Distribution of potentially leaked blocks
896 bytes from 1 block of 896 bytes (0x00179d88)
Allocation location
LocalAlloc [C:\WINDOWS\system32\KERNEL32.DLL]
EnumerateSecurityPackagesW [C:\WINDOWS\system32\SECUR32.DLL]
[W] MLK: Memory leak of 36 bytes from 1 block allocated in QuerySecurityPackageInfoW [SECUR32.DLL]
Distribution of leaked blocks
Allocation location
LocalAlloc [c:\WINDOWS\system32\KERNEL32.DLL]
QuerySecurityPackageInfoW [C:\WINDOWS\system32\SECUR32.DLL]
[I] Exiting with code 0 (0x00000000)
Process time: 281 milliseconds
[I] Program terminated at 06.09.2009 22:43:33
Здравствуйте, paxerus, Вы писали:
P> [I] MPK: Potential memory leak of 896 bytes from 1 block allocated in EnumerateSecurityPackagesW [SECUR32.DLL]
насколько я понял — он пишет о потенциальных утечках — попробуй так —
using namespace std;
int main(int argc, char* argv[])
{
WSADATA wsa;
SOCKET m_socket;
//---- initialized winsock 2if(WSAStartup(MAKEWORD(2, 0),&wsa)!=0)
{
printf("Winsock initialization failed\n");
WSACleanup();здесь контрольный в голову — в принципе не надо — но для чистоты эксперимента
return(-1);
}
//---- start the serverif((m_socket=socket(AF_INET,SOCK_STREAM,0))==INVALID_SOCKET)
{
printf("SocketServer: invalid socket (WSAStartup is missing?)\n");
WSACleanup();return(FALSE);
}
closesocket(m_socket);
m_socket=INVALID_SOCKET;
WSACleanup();
return(0);
}
если я таки прав — то в принципе чистить при выгрузке вроде как не надо — если это программа — то винда сама почистит —
но на 100% не скажу , а проверять некогда.
C>если я таки прав — то в принципе чистить при выгрузке вроде как не надо — если это программа — то винда сама почистит — C>но на 100% не скажу , а проверять некогда.
вот результат вашего кода
[I] Starting main
[I] Terminating thread 0x4aa0
[I] Terminating thread 0x4d74
[I] Terminating thread 0x440c
[I] Summary of all memory leaks... {7936 bytes, 76 blocks}
[W] MLK: Memory leak of 7592 bytes from 73 blocks allocated in WmiOpenBlock [ADVAPI32.DLL]
Distribution of leaked blocks
Allocation location
RtlAllocateHeap+0xc [c:\WINDOWS\system32\NTDLL.DLL ip=0x6C9013B9]
WmiOpenBlock+0x1ec [C:\WINDOWS\system32\ADVAPI32.DLL ip=0x77DD67D7]
[I] MPK: Potential memory leak of 208 bytes from 2 blocks allocated in WmiOpenBlock [ADVAPI32.DLL]
Offset 0x00000050 referenced by 0x0243d703, a location in a memory-mapped range
Distribution of potentially leaked blocks
Allocation location
RtlAllocateHeap+0xc [c:\WINDOWS\system32\NTDLL.DLL ip=0x6C9013B9]
WmiOpenBlock+0x1ec [C:\WINDOWS\system32\ADVAPI32.DLL ip=0x77DD67D7]
[W] MLK: Memory leak of 136 bytes from 1 block allocated at ip=0x5d5b49c3
Distribution of leaked blocks
Allocation location
HeapAlloc+0xc [c:\WINDOWS\system32\KERNEL32.DLL ip=0x6C803450]
??? [ip=0x5D5B49C2]
[I] Exiting with code 0 (0x00000000)
[I] Program terminated at 2009-09-08 15:49:16
как видете есть не только потенциальные утечки
[W] MLK: Memory leak of 136 bytes from 1 block allocated at ip=0x5d5b49c3
Distribution of leaked blocks
кстати когда тестирю сам сервер заваливаю его запросами но при этом утечка не меняется,в основном либо это же число либо другое, возможно не утечка только не понятно тогда что
Здравствуйте, paxerus, Вы писали:
P>Помогите плз разобраться
Во-первых, это не твой лик, если он и имеет место.
Во-вторых, ты все равно ничего не сделаешь тут.
В-третьих, попробуй еще Visual Leak Detector. Он очень прост и легко подключается — #include <vld.h> — и все.
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Здравствуйте, paxerus, Вы писали:
P>>Помогите плз разобраться
PD>Во-первых, это не твой лик, если он и имеет место. PD>Во-вторых, ты все равно ничего не сделаешь тут. PD>В-третьих, попробуй еще Visual Leak Detector. Он очень прост и легко подключается — #include <vld.h> — и все.