c++ - How to fix Ogre3d segfault with std::_Rb_tree_insert_and_rebalance? -
i'm working on 3d music visualizer using ogre3d, it's spectrum analizer, lot old xmms plugin:
it works well, bars drawn , updated, there no framerate issues, crashes randomly. can run without problems, finish song, other times crashes instantly, other times music stops, without crash.
here source code main class :
https://github.com/balazsbela/ogrevisualizer/blob/master/src/visualizerapplication.cpp#l221
also crashes seem happen less when display framerate overlay ogre samples. limiting framerate ?
the crashes seemingly random. performance issue ?
please me out, i'm quite lost on one, posted on ogre3d forums received no responses.
(http)://www.ogre3d.org/forums/viewtopic.php?f=2&t=63207
thank you.
backtrace:
balazsbela@darknet:~/workspace/ogrevisualizer/release$ gdb ogrevisualizer core gnu gdb (gdb) 7.2-debian copyright (c) 2010 free software foundation, inc. license gplv3+: gnu gpl version 3 or later <http://gnu.org/licenses/gpl.html> free software: free change , redistribute it. there no warranty, extent permitted law. type "show copying" , "show warranty" details. gdb configured "i486-linux-gnu". bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... reading symbols /home/balazsbela/workspace/ogrevisualizer/release/ogrevisualizer...done. [new thread 17705] [new thread 17702] [new thread 17703] [new thread 17700] reading symbols /usr/lib/libv4l/v4l1compat.so...(no debugging symbols found)...done. loaded symbols /usr/lib/libv4l/v4l1compat.so reading symbols /usr/local/lib/libogremain.so.1.7.1...done. loaded symbols /usr/local/lib/libogremain.so.1.7.1 reading symbols /usr/lib/libfftw3.so.3...(no debugging symbols found)...done. loaded symbols /usr/lib/libfftw3.so.3 reading symbols /usr/lib/libsdl_sound-1.0.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libsdl_sound-1.0.so.1 reading symbols /usr/lib/libsdl-1.2.so.0...(no debugging symbols found)...done. loaded symbols /usr/lib/libsdl-1.2.so.0 reading symbols /usr/lib/libsdl_mixer-1.2.so.0...(no debugging symbols found)...done. loaded symbols /usr/lib/libsdl_mixer-1.2.so.0 reading symbols /usr/lib/libois-1.2.0.so...(no debugging symbols found)...done. loaded symbols /usr/lib/libois-1.2.0.so reading symbols /usr/lib/libstdc++.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libstdc++.so.6 reading symbols /lib/i686/cmov/libm.so.6...reading symbols /usr/lib/debug/lib/i686/cmov/libm-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/libm.so.6 reading symbols /lib/libgcc_s.so.1...(no debugging symbols found)...done. loaded symbols /lib/libgcc_s.so.1 reading symbols /lib/i686/cmov/libc.so.6...reading symbols /usr/lib/debug/lib/i686/cmov/libc-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/libc.so.6 reading symbols /lib/i686/cmov/libpthread.so.0...reading symbols /usr/lib/debug/lib/i686/cmov/libpthread-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/libpthread.so.0 reading symbols /usr/local/lib/libv4l1.so.0...done. loaded symbols /usr/local/lib/libv4l1.so.0 reading symbols /usr/lib/libfreetype.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libfreetype.so.6 reading symbols /usr/lib/libsm.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libsm.so.6 reading symbols /usr/lib/libice.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libice.so.6 reading symbols /usr/lib/libx11.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libx11.so.6 reading symbols /usr/lib/libxext.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libxext.so.6 reading symbols /usr/lib/libxt.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libxt.so.6 reading symbols /usr/lib/libxaw.so.7...(no debugging symbols found)...done. loaded symbols /usr/lib/libxaw.so.7 reading symbols /lib/i686/cmov/libdl.so.2...reading symbols /usr/lib/debug/lib/i686/cmov/libdl-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/libdl.so.2 reading symbols /usr/lib/libboost_thread.so.1.42.0...(no debugging symbols found)...done. loaded symbols /usr/lib/libboost_thread.so.1.42.0 reading symbols /usr/lib/libboost_date_time.so.1.42.0...(no debugging symbols found)...done. loaded symbols /usr/lib/libboost_date_time.so.1.42.0 reading symbols /usr/lib/libfreeimage.so.3...(no debugging symbols found)...done. loaded symbols /usr/lib/libfreeimage.so.3 reading symbols /usr/lib/libzzip-0.so.13...(no debugging symbols found)...done. loaded symbols /usr/lib/libzzip-0.so.13 reading symbols /usr/lib/libz.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libz.so.1 reading symbols /usr/lib/libsmpeg-0.4.so.0...(no debugging symbols found)...done. loaded symbols /usr/lib/libsmpeg-0.4.so.0 reading symbols /usr/lib/libmikmod.so.2...(no debugging symbols found)...done. loaded symbols /usr/lib/libmikmod.so.2 reading symbols /usr/lib/libvorbis.so.0...(no debugging symbols found)...done. loaded symbols /usr/lib/libvorbis.so.0 reading symbols /usr/lib/libvorbisfile.so.3...(no debugging symbols found)...done. loaded symbols /usr/lib/libvorbisfile.so.3 reading symbols /usr/lib/libflac.so.8...(no debugging symbols found)...done. loaded symbols /usr/lib/libflac.so.8 reading symbols /usr/lib/libogg.so.0...(no debugging symbols found)...done. loaded symbols /usr/lib/libogg.so.0 reading symbols /usr/lib/sse2/libspeex.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/sse2/libspeex.so.1 reading symbols /usr/lib/libasound.so.2...(no debugging symbols found)...done. loaded symbols /usr/lib/libasound.so.2 reading symbols /lib/i686/cmov/librt.so.1...reading symbols /usr/lib/debug/lib/i686/cmov/librt-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/librt.so.1 reading symbols /usr/lib/libdirectfb-1.2.so.9...(no debugging symbols found)...done. loaded symbols /usr/lib/libdirectfb-1.2.so.9 reading symbols /usr/lib/libfusion-1.2.so.9...(no debugging symbols found)...done. loaded symbols /usr/lib/libfusion-1.2.so.9 reading symbols /usr/lib/libdirect-1.2.so.9...(no debugging symbols found)...done. loaded symbols /usr/lib/libdirect-1.2.so.9 reading symbols /usr/lib/libvga.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libvga.so.1 reading symbols /lib/ld-linux.so.2...reading symbols /usr/lib/debug/lib/ld-2.11.2.so...done. done. loaded symbols /lib/ld-linux.so.2 reading symbols /usr/local/lib/libv4l2.so.0...done. loaded symbols /usr/local/lib/libv4l2.so.0 reading symbols /lib/libuuid.so.1...(no debugging symbols found)...done. loaded symbols /lib/libuuid.so.1 reading symbols /usr/lib/libxcb.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libxcb.so.1 reading symbols /usr/lib/libxmu.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libxmu.so.6 reading symbols /usr/lib/libxpm.so.4...(no debugging symbols found)...done. loaded symbols /usr/lib/libxpm.so.4 reading symbols /usr/lib/libjpeg.so.62...(no debugging symbols found)...done. loaded symbols /usr/lib/libjpeg.so.62 reading symbols /usr/lib/libmng.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libmng.so.1 reading symbols /usr/lib/libopenjpeg.so.2...(no debugging symbols found)...done. loaded symbols /usr/lib/libopenjpeg.so.2 reading symbols /lib/libpng12.so.0...(no debugging symbols found)...done. loaded symbols /lib/libpng12.so.0 reading symbols /usr/lib/libilmimf.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libilmimf.so.6 reading symbols /usr/lib/libimath.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libimath.so.6 reading symbols /usr/lib/libhalf.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libhalf.so.6 reading symbols /usr/lib/libiex.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libiex.so.6 reading symbols /usr/lib/libilmthread.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libilmthread.so.6 reading symbols /lib/libx86.so.1...(no debugging symbols found)...done. loaded symbols /lib/libx86.so.1 reading symbols /usr/local/lib/libv4lconvert.so.0...done. loaded symbols /usr/local/lib/libv4lconvert.so.0 reading symbols /usr/lib/libxau.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libxau.so.6 reading symbols /usr/lib/libxdmcp.so.6...(no debugging symbols found)...done. loaded symbols /usr/lib/libxdmcp.so.6 reading symbols /usr/lib/liblcms.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/liblcms.so.1 reading symbols /usr/local/lib/ogre/rendersystem_gl.so...done. loaded symbols /usr/local/lib/ogre/rendersystem_gl.so reading symbols /usr/lib/libglu.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libglu.so.1 reading symbols /usr/lib/libgl.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libgl.so.1 reading symbols /usr/lib/libxrandr.so.2...(no debugging symbols found)...done. loaded symbols /usr/lib/libxrandr.so.2 reading symbols /usr/lib/libglcore.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libglcore.so.1 reading symbols /usr/lib/tls/libnvidia-tls.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/tls/libnvidia-tls.so.1 reading symbols /usr/lib/libxrender.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libxrender.so.1 reading symbols /usr/lib/libxcursor.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/libxcursor.so.1 reading symbols /usr/lib/libxfixes.so.3...(no debugging symbols found)...done. loaded symbols /usr/lib/libxfixes.so.3 reading symbols /lib/i686/cmov/libnss_compat.so.2...reading symbols /usr/lib/debug/lib/i686/cmov/libnss_compat-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/libnss_compat.so.2 reading symbols /lib/i686/cmov/libnsl.so.1...reading symbols /usr/lib/debug/lib/i686/cmov/libnsl-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/libnsl.so.1 reading symbols /lib/i686/cmov/libnss_nis.so.2...reading symbols /usr/lib/debug/lib/i686/cmov/libnss_nis-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/libnss_nis.so.2 reading symbols /lib/i686/cmov/libnss_files.so.2...reading symbols /usr/lib/debug/lib/i686/cmov/libnss_files-2.11.2.so...done. done. loaded symbols /lib/i686/cmov/libnss_files.so.2 reading symbols /usr/lib/alsa-lib/libasound_module_rate_speexrate.so...(no debugging symbols found)...done. loaded symbols /usr/lib/alsa-lib/libasound_module_rate_speexrate.so reading symbols /usr/lib/sse2/libspeexdsp.so.1...(no debugging symbols found)...done. loaded symbols /usr/lib/sse2/libspeexdsp.so.1 core generated `./ogrevisualizer'. program terminated signal 11, segmentation fault. #0 0xb6dc563d in std::_rb_tree_insert_and_rebalance(bool, std::_rb_tree_node_base*, std::_rb_tree_node_base*, std::_rb_tree_node_base&) () /usr/lib/libstdc++.so.6 (gdb) bt #0 0xb6dc563d in std::_rb_tree_insert_and_rebalance(bool, std::_rb_tree_node_base*, std::_rb_tree_node_base*, std::_rb_tree_node_base&) () /usr/lib/libstdc++.so.6 #1 0xb73bb3c2 in std::_rb_tree<ogre::node*, ogre::node*, std::_identity<ogre::node*>, std::less<ogre::node*>, ogre::stlallocator<ogre::node*, ogre::categorisedallocpolicy<(ogre::memorycategory)0> > >::_m_insert_(std::_rb_tree_node_base const*, std::_rb_tree_node_base const*, ogre::node* const&) () /usr/local/lib/libogremain.so.1.7.1 #2 0xb73b5a52 in _m_insert_unique (this=0xb6157ea0, child=0xb616aff8, forceparentupdate=false) @ /usr/include/c++/4.4/bits/stl_tree.h:1182 #3 insert (this=0xb6157ea0, child=0xb616aff8, forceparentupdate=false) @ /usr/include/c++/4.4/bits/stl_set.h:411 #4 ogre::node::requestupdate (this=0xb6157ea0, child=0xb616aff8, forceparentupdate=false) @ /home/balazsbela/downloads/ogre_src_v1-7-1/ogremain/src/ogrenode.cpp:805 #5 0xb73b6a40 in ogre::node::needupdate (this=0xb616aff8, forceparentupdate=92) @ /home/balazsbela/downloads/ogre_src_v1-7-1/ogremain/src/ogrenode.cpp:789 #6 0xb73b5038 in ogre::node::setscale (this=0x1825c, scale=...) @ /home/balazsbela/downloads/ogre_src_v1-7-1/ogremain/src/ogrenode.cpp:638 #7 0x0805d306 in visualizerapplication::adjustnodes (this=0x9cd4808) @ ../src/visualizerapplication.cpp:236 #8 0xb6e867f0 in ?? () /usr/lib/libsdl_mixer-1.2.so.0 #9 0xb6e8719a in ?? () /usr/lib/libsdl_mixer-1.2.so.0 #10 0xb6ed9b0d in ?? () /usr/lib/libsdl-1.2.so.0 #11 0xb6ee185e in ?? () /usr/lib/libsdl-1.2.so.0 #12 0xb6f2e0bd in ?? () /usr/lib/libsdl-1.2.so.0 #13 0xb6bc7955 in start_thread (arg=0xb198ab70) @ pthread_create.c:300 #14 0xb6ca6e7e in clone () @ ../sysdeps/unix/sysv/linux/i386/clone.s:130 (gdb)
ogre.log: http://pastie.org/1581790
i can't find line 236 in link posted, kind of segfault linked changing stl structure while accessing iterator in function beneath in stack.
Comments
Post a Comment