Boost logo

Boost Users :

Subject: [Boost-users] Two issues - An error I think due to some invalid pointer and another speed problem.
From: Raj Prasan (prasna991_at_[hidden])
Date: 2008-11-18 04:13:31


this is my second post. first I had a problem of a crash during startup
and later changed my entry point and solved it. I got help from this list.
Thanks a lot for that again..

This time I need some ways to debug it. Or a direct solution if possible.
Please help this n00b folks.

Scenario..

A AutoCAD like program. OpengL based.. Windows XP SP2
Code : C++ Mixed (native + managed.NET) /w CLR
VS 2008, no MFC
My code is pretty complex with a lot of classes,
STL lists, maps
pointers of the same objects in lists in different places.

Issue 1

Moreover after adding the serialization library, the compile time
has heavily increased. And the full system slows down.
When compiling the task manager shows around 500 mb usage for
the compilation process.

I had a really lot of warning generated.. I mean more than 300 maybe or
more.
So I just disabled them in the settings.

Compile Time - 7 mins 44 secs
Link Time - 1 min 30 secs
Total - 9 mins 14 secs

Code is hardly 6000 to 10000 lines..
Can anyone guide me or give me links to articles
that can help me..

Issue 2

Later I had this SEHException.. then I had to add try catch
and found it raised unregistered class exception, so I fixed it
adding BOOST_CLASS_EXPORT() below each class declaration...
I still had some problems of redefinition, so I simply removed
serialization from some classes and fixed that.

Later I got some void cast exception, I still commented some
more serialization code. Now It runs fine and gets me an file
when I serialize immediately after initialization. After that
when I create some lines/circles etc, and then serialize It gives me
another error...

BREAKS at xtree header - Call Stack

> New Rapid
Vision.exe!std::_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>::_Orphan_ptr(std::_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
> & _Cont={...},
std::_Tree_nod<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>::_Node * _Ptr=0x00000000) Line 1376 + 0x5 bytes C++
     New Rapid
Vision.exe!std::_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>::clear() Line 971 C++
     New Rapid
Vision.exe!std::_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>::erase(std::_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>::const_iterator _First={address=0x0578d980 class_id={...} object_id={...}
},
std::_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>::const_iterator _Last={address=0xcdcdcdcd class_id={...} object_id={...}
}) Line 938 C++
     New Rapid
Vision.exe!std::_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>::_Tidy() Line 1421 + 0x77 bytes C++
     New Rapid
Vision.exe!std::_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>::~_Tree<std::_Tset_traits<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>,0>
>() Line 541 C++
     New Rapid
Vision.exe!std::set<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>
>::~set<boost::archive::detail::basic_oarchive_impl::aobject,std::less<boost::archive::detail::basic_oarchive_impl::aobject>,std::allocator<boost::archive::detail::basic_oarchive_impl::aobject>
>() + 0xf bytes C++
     New Rapid
Vision.exe!boost::archive::detail::basic_oarchive_impl::~basic_oarchive_impl()
+ 0x59 bytes C++
     New Rapid
Vision.exe!boost::archive::detail::basic_oarchive_impl::`scalar deleting
destructor'() + 0xf bytes C++
     New Rapid
Vision.exe!boost::archive::detail::basic_oarchive::~basic_oarchive() Line
407 + 0x1f bytes C++
     [Managed to Native Transition]
     New Rapid
Vision.exe!<Module>.boost.archive.detail.common_oarchive<boost::archive::text_oarchive>.{dtor}()
+ 0x18 bytes
     New Rapid
Vision.exe!boost::archive::basic_text_oarchive<boost::archive::text_oarchive>::~basic_text_oarchive<boost::archive::text_oarchive>()
Line 126 + 0xe bytes C++
     New Rapid
Vision.exe!boost::archive::text_oarchive_impl<boost::archive::text_oarchive>::~text_oarchive_impl<boost::archive::text_oarchive>()
Line 71 + 0x12 bytes C++
     New Rapid Vision.exe!boost::archive::text_oarchive::~text_oarchive()
Line 88 + 0xe bytes C++
     New Rapid Vision.exe!RCadApp::savetofile() Line 210 + 0x9 bytes C++
     New Rapid Vision.exe!RCadApp::changeHandler(RCadApp::HANDLERLIST = 3)
Line 661 C++
     New Rapid Vision.exe!ToolStripButtonSettings::DrawTools(System::Object^
o = 0x021d29e8, System::Windows::Forms::MouseEventArgs^ e = 0x02279a28) Line
258 C++

System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.RaiseMouseEvent(object
key, System.Windows.Forms.MouseEventArgs e) + 0x4a bytes

System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.HandleMouseDown(System.Windows.Forms.MouseEventArgs
e) + 0xbb bytes

System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.FireEventInteractive(System.EventArgs
e, System.Windows.Forms.ToolStripItemEventType met) + 0x9e bytes

System.Windows.Forms.dll!System.Windows.Forms.ToolStripItem.FireEvent(System.EventArgs
e, System.Windows.Forms.ToolStripItemEventType met) + 0x122 bytes

System.Windows.Forms.dll!System.Windows.Forms.ToolStrip.OnMouseDown(System.Windows.Forms.MouseEventArgs
mea) + 0x111 bytes
     System.Windows.Forms.dll!System.Windows.Forms.Control.WmMouseDown(ref
System.Windows.Forms.Message m, System.Windows.Forms.MouseButtons button,
int clicks) + 0xf1 bytes
     System.Windows.Forms.dll!System.Windows.Forms.Control.WndProc(ref
System.Windows.Forms.Message m) + 0x4d3 bytes

System.Windows.Forms.dll!System.Windows.Forms.ScrollableControl.WndProc(ref
System.Windows.Forms.Message m) + 0x45 bytes
     System.Windows.Forms.dll!System.Windows.Forms.ToolStrip.WndProc(ref
System.Windows.Forms.Message m = {msg=0x203 (WM_LBUTTONDBLCLK) hwnd=0x170362
wparam=0x1 lparam=0x4c000a result=0x0}) + 0x71 bytes

System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.OnMessage(ref
System.Windows.Forms.Message m) + 0xd bytes

System.Windows.Forms.dll!System.Windows.Forms.Control.ControlNativeWindow.WndProc(ref
System.Windows.Forms.Message m) + 0x36 bytes

System.Windows.Forms.dll!System.Windows.Forms.NativeWindow.DebuggableCallback(System.IntPtr
hWnd, int msg = 515, System.IntPtr wparam, System.IntPtr lparam) + 0x57
bytes
     [Native to Managed Transition]
     user32.dll!7e418734()
     [Frames below may be incorrect and/or missing, no symbols loaded for
user32.dll]
     user32.dll!7e418816()
     user32.dll!7e4189cd()
     [Managed to Native Transition]

System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(int
dwComponentID, int reason = -1, int pvLoopData = 0) + 0x2f1 bytes

System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int
reason = -1, System.Windows.Forms.ApplicationContext context =
{System.Windows.Forms.ApplicationContext}) + 0x17d bytes

System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int
reason, System.Windows.Forms.ApplicationContext context) + 0x53 bytes

System.Windows.Forms.dll!System.Windows.Forms.Application.Run(System.Windows.Forms.Form
mainForm) + 0x2e bytes
     New Rapid Vision.exe!main(array<System::String^> ^ args = {Length=0})
Line 18 C++
     New Rapid Vision.exe!mainCRTStartupStrArray(array<System::String^> ^
arguments = {Length=0}) Line 309 + 0x9 bytes C++
     mscoree.dll!7900b1b3()
     kernel32.dll!7c816fd7()

-- 
With best Regards
Quakeboy


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net