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
>