I've recently been working on upgrading code from VC7 to VC9, and have
run into all kinds of fun issues.  The most significant problem/pain has
been the ridiculously slow debugging introduced when compiling with
iterator debugging (default behavior of VC8/VC9).  I've waded through
that mess, getting OSG and the necessary dependencies compiled without
iterator debugging turned on (and without Secure SCL on), and my
debugging performance has returned to pre-VC8 performance.  I did in the
meantime run across one slight problem.  I've only caught it in one
place within OSG, but I'm sure it exists elsewhere in the code:


In any case, I kept getting a crash when executing the return statement
in the osgDB::getFileExtension() function.  After much debugging and
research, I found that it seems there is a problem with the VC8/VC9
compiler described on the following page:




If you don't want to be bored by the details, it basically says that VC8
& VC9 have a bug when Iterator Debugging is turned off with regards to
iterator copying, and that Microsoft doesn't intend to address it until
VC10.  In my specific case, that bug causes an assertion at the return
statement of getFileExtension().


This is not a bug in OSG, but it's definitely something to be on the
lookout for if you are turning iterator debugging off, whether it be in
OSG or any other STL-based code.


Has anyone else experienced this?  Any thoughts?  I have a clunky
work-around I'm using that works okay, but I hate clunky work arounds




osg-users mailing list

Reply via email to