[Insight-users] Problem with Iterator debugging

Daanen Vincent daanen at koelis.com
Tue Oct 6 11:44:46 EDT 2009


I just check the compiler flags :
Itk is built wtih the followoing options : /MTd /Zi /Ob0 / Od /RTC1
And my application is built with the following ones : /MTd /ZI /Ob0 / Od
/RTC1

As you can see, only one differ : /ZI instead of /Zi.. Changing from /ZI to
/Zi in my application does not change anything :(

Anyway, I could make it compiles and run with small changes. I hope it will
fing a way to correct this a day...

Vince

> -----Message d'origine-----
> De : Bill Lorensen [mailto:bill.lorensen at gmail.com] 
> Envoyé : mardi 6 octobre 2009 17:28
> À : Daanen Vincent
> Cc : Luis Ibanez; insight-users at itk.org
> Objet : Re: [Insight-users] Problem with Iterator debugging
> 
> According to this:
> http://msdn.microsoft.com/en-us/library/aa985939%28VS.80%29.aspx
> 
> _HAS_ITERATOR_DEBUGGING is defined for debug builds
> 
> I suspect that there is some incompatibility between the itk compiler
> flags and your code's compiler flags.
> 
> Bill
> 
> On Tue, Oct 6, 2009 at 10:10 AM, Daanen Vincent 
> <daanen at koelis.com> wrote:
> > Hi Luis,
> >
> >> -----Message d'origine-----
> >> De : Luis Ibanez [mailto:luis.ibanez at kitware.com]
> >> Envoyé : mardi 6 octobre 2009 15:31
> >> À : Daanen Vincent
> >> Cc : insight-users at itk.org
> >> Objet : Re: [Insight-users] Problem with Iterator debugging
> >>
> >> Hi Vince,
> >>
> >> This is interesting.
> >>
> >> The code in the file:
> >>
> >> Program Files (x86)/Microsoft Visual Studio 8/vc/include/deque
> >>
> >> where you are getting this compilation error is:
> >>
> >>  88     reference operator*() const
> >>  89       { // return designated object
> >>  90       size_type _Block = _Myoff / _DEQUESIZ;
> >>  91       size_type _Off = _Myoff & (_DEQUESIZ - 1);  //
> >> assume power of 2
> >>  92       if (this->_Mycont == 0
> >>  93         || _Myoff < ((_Mydeque *)this->_Mycont)->_Myoff
> >>  94         || ((_Mydeque *)this->_Mycont)->_Myoff
> >>  95           + ((_Mydeque *)this->_Mycont)->_Mysize <= _Myoff)
> >>  96       {
> >>
> >>
> >> As you pointed out, this is in the block of code guarded
> >> by the #define
> >>
> >>  66  #if _HAS_ITERATOR_DEBUGGING
> >>
> >> The declaration of Myoff is altered from public: to protected:
> >> in lines
> >>
> >>  301
> >>  302  #else /* _HAS_ITERATOR_DEBUGGING */
> >>  303 protected:
> >>  304   const _Mydeque *_Mycont;  // pointer to deque
> >>  305  #endif /* _HAS_ITERATOR_DEBUGGING */
> >>  306
> >>  307   size_type _Myoff; // offset of element in deque
> >>  308   };
> >>
> >>
> >> It would seems that the code is attempting to combine code
> >> that is compiled with the flag  _HAS_ITERATOR_DEBUGGING
> >> ON, with other code that has this flag off.
> >
> > Yes, that's also my conclusion .. And I can not find any 
> clue to understand
> > why
> >
> >> ITK does not define this variable, nor the _SECURE_SC.
> >>
> >> Tell us more about the rest of the code that you are combining...
> >>
> >
> > The rest of the code is internal librairies (our own 
> technical cores) but we
> > can not easily recompile them due to our quality insurance process
> >
> >> In particular:
> >> Are you using CMake for configuring this project ?
> >
> > No, we are using Visual Studio 2005 and we are adding 
> directly in the
> > projects hold by VS2005.
> >
> >>
> >> Are you by any change combining libraries build for Release
> >> with libraries build for Debug ?
> >
> > No .. I've already checked that yesterday because I had 
> other problem to
> > integrate Itk .. I finally succeed be recompiling and 
> changing some compiler
> > options ..
> >>
> >>
> >>   Please let us know,
> >>
> >>
> >>         Thanks
> >>
> >>
> >>               Luis
> >>
> >>
> >> ---------------
> >>
> >> BTW:
> >> It quite interesting how shy Microsoft if to point out 
> their internal
> >> use of Open Source software.  The file "deque" has its copyright
> >> notice conveniently moved to the last lines of the file:
> >>
> >>
> >> 1367 /*
> >> 1368  * Copyright (c) 1992-2005 by P.J. Plauger.  ALL 
> RIGHTS RESERVED.
> >> 1369  * Consult your license regarding permissions and 
> restrictions.
> >> 1370  */
> >> 1371
> >> 1372 /*
> >> 1373  * This file is derived from software bearing the following
> >> 1374  * restrictions:
> >> 1375  *
> >> 1376  * Copyright (c) 1994
> >> 1377  * Hewlett-Packard Company
> >> 1378  *
> >> 1379  * Permission to use, copy, modify, distribute and sell this
> >> 1380  * software and its documentation for any purpose is hereby
> >> 1381  * granted without fee, provided that the above 
> copyright notice
> >> 1382  * appear in all copies and that both that copyright 
> notice and
> >> 1383  * this permission notice appear in supporting documentation.
> >> 1384  * Hewlett-Packard Company makes no representations about the
> >> 1385  * suitability of this software for any purpose. It 
> is provided
> >> 1386  * "as is" without express or implied warranty.
> >> 1387  V4.05:0009 */
> >>
> >>
> >>
> >>
> >>
> >> --------------------------------------------------
> >> On Tue, Oct 6, 2009 at 8:45 AM, Daanen Vincent
> >> <daanen at koelis.com> wrote:
> >> > Hi,
> >> >
> >> > I compiled Itk (v3.16) with default option in debug mode.
> >> > When I try to use it in a "big" project, I the following error:
> >> >
> >> > "c:\program files\microsoft visual studio
> >> 8\vc\include\deque(94) : error
> >> > C2248: 'std::deque<_Ty>::_Myoff'ÿ: impossible to access to
> >> protected membre
> >> > declared in class 'std::deque<_Ty>'." in source file which
> >> does ot included
> >> > itk headers ...
> >> >
> >> > I turn off Iterator debugging (/D _HAS_ITERATOR_DEBUGGING=0  /D
> >> > _SECURE_SCL=0) and it compiles but crashes at the very
> >> beginnig of the
> >> > sotware when using another 3rd party library.
> >> >
> >> > I can't figure out why I got the compilation error only
> >> when including ITK
> >> > (if I remove its usage with #ifdef/#endif) the compilation
> >> is ok and I got
> >> > no crash when running the software.
> >> >
> >> > For the moment, the solution is to compile with #define
> >> __USE_ITK__  0 in
> >> > the source file where itk is used, and then set define
> >> __USE_ITK__  1 and
> >> > recompile only this file .... But I think this will not
> >> work for a long time
> >> > and I would prefer to really fix this problem instead of
> >> using such a
> >> > solution.
> >> >
> >> > Soi should I recompile itk with _HAS_ITERATOR_DEBUGGING=0 &
> >> _SECURE_SCL=0 ?
> >> > If yes, could someone tell me what I should change and where..
> >> >
> >> > Thanks
> >> >
> >> >  Vince
> >> >
> >> >
> >> >
> >> > --------------------------------------------
> >> > Vincent Daanen, PhD
> >> > D&D Manager
> >> >
> >> > --------------------------------------------
> >> > KOELIS
> >> > 5, avenue du Grand Sablon 38700 La Tronche
> >> > www.koelis.com  -  daanen at koelis.com
> >> > Tel .+33(0) 476637588 Fax .+33(0) 476637592
> >> > --------------------------------------------
> >> >
> >> > CONFIDENTIALITY This e-mail and any attachments are
> >> confidential and may
> >> > also be privileged. If you are not the named recipient,
> >> please notify the
> >> > sender immediately and do not disclose the contents to
> >> another person, use
> >> > it for any purpose, or store or copy the information in 
> any medium.
> >> >
> >> > "Les problèmes ne peuvent être résolus par ceux dont
> >> l'horizon se limite aux
> >> > réalités quotidiennes,  mais par ceux qui rêvent de choses
> >> qui n'ont jamais
> >> > existé et qui se disent : Pourquoi Pas ?" (J-F Kennedy, 1963).
> >> >
> >> > _____________________________________
> >> > Powered by www.kitware.com
> >> >
> >> > Visit other Kitware open-source projects at
> >> > http://www.kitware.com/opensource/opensource.html
> >> >
> >> > Please keep messages on-topic and check the ITK FAQ at:
> >> http://www.itk.org/Wiki/ITK_FAQ
> >> >
> >> > Follow this link to subscribe/unsubscribe:
> >> > http://www.itk.org/mailman/listinfo/insight-users
> >> >
> >
> > _____________________________________
> > Powered by www.kitware.com
> >
> > Visit other Kitware open-source projects at
> > http://www.kitware.com/opensource/opensource.html
> >
> > Please keep messages on-topic and check the ITK FAQ at: 
> http://www.itk.org/Wiki/ITK_FAQ
> >
> > Follow this link to subscribe/unsubscribe:
> > http://www.itk.org/mailman/listinfo/insight-users
> >



More information about the Insight-users mailing list