[select-Server] memory leaks ??



  • Nein, hab ich nicht, hab grad nochmal durch den Code geschaut, habe nix mit new allokiert


  • Mod

    Siehst Du in Deinem Dump die Allkationsnummern 241+243. Sind die konstant, dann setze einfach mal

    _CrtSetBreakAlloc(241);
    

    An den Start Deines Programmes. Dann bekonmmst Du einen Debug Breakpoint und kannst im Callstack sehen, wer diesen new/malloc auslöst.

    Siehe auch
    http://msdn.microsoft.com/en-us/library/4wth1ha5(VS.80).aspx



  • OK, gut, hab mal eine Nachricht dem Server geschickt und dann wurde er durch _CrtSetBreakAlloc(205) angehalten, als ich auf Close ging.
    Er zeigt mir im CallStack das:

    > msvcr80d.dll!realloc_help(void * pUserData=0x003baec8, unsigned int * pnNewSize=0x031cf980, int nBlockUse=1, const char * szFileName=0x63674d88, int nLine=173, int fRealloc=1) Line 651 C++

    Aber ich versteh das eigentlich nicht wirklich 😕



  • Habs doch hinbekommen, lag an meinem OnClose(), habs so abgeändert und bis jetzt keine Leaks mehr bekommen.

    void CServerDlg::OnClose()
    {
    	TerminateThread(hClient, 0);
    	ClientSock.Close();
    	TerminateThread(hServer, 0);
    	CloseMyHandle(hServer);
    	serversock.Close();
    	CloseSocket();			// WSACleanup()
    	EndDialog(0);
    }
    

    Kann zwar noch nicht wirklich erklären, wieso das vorige OnClose() falsch war, aber ok, so funktionierts jetzt.

    Auf jeden Fall vielen Dank für die tollen Aufklärungen und Hilfen !!


Anmelden zum Antworten