< Previous by Date Date Index Next by Date >
< Previous in Thread Thread Index  

Re: [reSIProcate] More Heap corruption..


That shouldn't be the problem.  As long as you are using a Multithreaded 
c-runtime and all components are using the same one it SHOULD be fine.

> -----Original Message-----
> From: julien [mailto:julien@xxxxxxxxxxx]
> Sent: Thursday, November 09, 2006 4:26 AM
> To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> Cc: Scott Godin
> Subject: Re: [reSIProcate] More Heap corruption..
> 
> Thank you for you answers,
> 
> I downloaded the latest version of resiprocate,
> 
> Do I have to use /MDd or /MTd would work too?
> Because the project I am trying to link to is in MTd mode so I am using
> MTd in resiprocate too.
> could that be the problem?
> 
> Thank you for your help all
> 
> 
> Scott Godin a écrit :
> > Make sure you are compiling all libraries and components with the
> same
> > version of the c-runtime library (ie. MultiThreaded DLL).
> >
> > -----Original Message-----
> > From: resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx
> > [mailto:resiprocate-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of
> julien
> > Sent: Wednesday, November 08, 2006 6:41 AM
> > To: resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> > Subject: Re: [reSIProcate] More Heap corruption..
> >
> > Hello Everyone,
> > I am having some heap corruption popping everytime I try to free a
> > resiprocate object :
> > Even the smallest call :
> > SipMessage *test = new SipMessage();
> > delete test;
> > generates a Heap corruption error inside "delete test"...
> > Everything works fine until I try to delete,
> > So I can use resiprocate correctly, send messages and everything but
> I
> > can't delete anything without getting errors
> >
> > I have tried adding #define _HAS_ITERATOR_DEBUGGING 0 in my compile
> > options (as suggested in this thread),
> > but it doesn't change anything.
> > I am compiling resiprocate on vs2005 with the following compiler
> options :
> >
> > /D "WIN32" /D "_DEBUG" /D "_LIB" /D "USE_ARES" /D "USE_IPV6" /D
> > "_VC80_UPGRADE=0x0710" /D "_MBCS" /Gm /EHsc /RTC1 /MTd /Fo"Debug\\"
> > /Fd"Debug\vc80.pdb" /W3 /nologo /c /Zi /TP /errorReport:prompt /Zm300
> /D
> > "_HAS_ITERATOR_DEBUGGING=0"
> >
> > (On compilation I receive a lot of warning about strcpy and such
> being
> > deprecated)
> >
> > I think It has to do with my compile options :-/ ?
> >
> > Any help/pointing in the right direction/investigation tips would be
> > most welcome!!
> > Thank you very much for your help
> > Best Regards,
> > Julien
> >
> >
> > Matthias Moetje - TERASENS GmbH a écrit :
> >
> >> hhmpf, forget my last message, it still didn't work
> >> as a non-heap variable.
> >> I found that the problem could be even reduced to this
> >> if (true)
> >> {
> >> ContactRecordList Contacts;
> >> }
> >> As soon as the Contacts variable went out of scope
> >> I got the heap corruption message, even when
> >> nothing was done with the variable.
> >> Well, you could easily think now, that the heap corruption
> >> comes from elswhere but it just occurs when a
> >> ContactRecordList goes out of scope, not with other
> >> variable types.
> >> Now I have disabled iterator debugging through:
> >> #define _HAS_ITERATOR_DEBUGGING 0
> >> I did this for my application and for all the stack and
> >> now I don't get any more heap corruption errors.
> >> Though I still don't know the actual reason for this
> >> problem and I'm not really sure if I have just disabled
> >> the error or if I have eliminated the reason for the
> >> error.
> >>
> >> Best regards,
> >>
> >> Matthias Moetje
> >>
> >> *TERASENS GmbH
> >> Augustenstraße 24
> >> 80333 Munich
> >> GERMANY*
> >> *Phone:
> >> Fax:
> >> e-mail:
> >> Web:*
> >>    *+49.89.143370-0
> >> +49.89.143370-22
> >> info@xxxxxxxxxxxx <mailto:info@xxxxxxxxxxxx>
> >> www.terasens.com <http://www.terasens.com/>*
> >>
> >>
> >>
> >>
> > ---------------------------------------------------------------------
> ---
> >
> >>     *From:* Byron Campen [mailto:bcampen@xxxxxxxxxxxx]
> >>     *Sent:* Thursday, June 08, 2006 4:46 PM
> >>     *To:* Matthias Moetje - TERASENS GmbH
> >>     *Cc:* resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> >>     *Subject:* Re: [reSIProcate] More Heap corruption..
> >>
> >>     I am not sure that is what you are seeing here. ContactRecord
> >>     doesn't contain pointers to anything, and the ContactRecordList
> >>     uses ContactRecord values (not pointers), so copy constructing
> the
> >>     ContactRecordList mContacts should make full copies of
> everything
> >>     (unless the copy constructor for Uri is broken somehow, which
> >>     would be very surprising indeed). There should be nothing shared
> >>     between the returned list and the list that is internal to the
> >>     RegistrationPersistenceManager. Are you using the
> >>     InMemoryRegistrationDatabase found in dum, or some other
> >>     implementation of RegistrationPersistenceManager?
> >>
> >>     Best regards,
> >>     Byron Campen
> >>
> >>
> >>>     Hi,
> >>>     I'm currently facing another heap corruption problem. I think
> this is
> >>>     caused by the way the
> RegistrationPersistenceManager::getContacts
> >>>     is implemented:
> >>>
> >>>     typedef std::list<ContactRecord> ContactRecordList;
> >>>
> >>>     virtual ContactRecordList getContacts(const Uri& aor) = 0;
> >>>
> >>>
> >>>     When this function is used like:
> >>>
> >>>     *ContactRecordList mContacts = pStore->getContacts(aor);*
> >>>
> >>>     then the contents of the returned list get assigned to
> >>>     mContacts, but the internal ContactRecordList gets
> >>>     destroyed which causes it to destroy(delete) all elements
> >>>     and this is causing the heap corruption because the
> >>>     elements are still present in mContacts.
> >>>
> >>>     To proof this is skipped the delete in the debugger and
> >>>     the corruption message does not occur.
> >>>
> >>>     How can we solve this problem? (or am I missing something?)
> >>>
> >>>     What about making getContacts return
> shared_ptr<ContactRecordList>?
> >>>
> >>>     Best regards,
> >>>
> >>>     Matthias Moetje
> >>>
> >>>     <TERASE1.jpg>
> >>>     *TERASENS GmbH
> >>>     Augustenstraße 24
> >>>     80333 Munich
> >>>     GERMANY*
> >>>     *Phone:
> >>>     Fax:
> >>>     e-mail:
> >>>     Web:*
> >>>           *+49.89.143370-0
> >>>     +49.89.143370-22
> >>>     info@xxxxxxxxxxxx <mailto:info@xxxxxxxxxxxx>
> >>>     www.terasens.com <http://www.terasens.com/>*
> >>>
> >>>     <TERASE1.jpg>
> >>>     _______________________________________________
> >>>     resiprocate-devel mailing list
> >>>     resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> >>>     <mailto:resiprocate-devel@xxxxxxxxxxxxxxxxxxx>
> >>>     https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
> >>>
> >> --------------------------------------------------------------------
> ----
> >>
> >> _______________________________________________
> >> resiprocate-devel mailing list
> >> resiprocate-devel@xxxxxxxxxxxxxxxxxxx
> >> https://list.sipfoundry.org/mailman/listinfo/resiprocate-devel
> >>
> >
> >
> >
> 
> 
> --
> Julien Saito
> ジュリアン 齋藤
> julien@xxxxxxxxxxx
>