Run Sample_Terrain from console, then press [ESC]: Crash.
Reproducible: Always.
It's independant of compiling with "-g" or without.
Error when compiling using
Code:
make CFLAGS="-g"
Code:
*** glibc detected *** ./Sample_Terrain: double free or corruption (fasttop): 0x0000000000aa7710 ***
======= Backtrace: =========
/lib/libc.so.6[0x2b788837daad]
/lib/libc.so.6(cfree+0x76)[0x2b788837f796]
/usr/lib/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6(_ZNSsD1Ev+0x3a)[0x2b7887c1f74a]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so(_ZNSt4pairIKSsiED1Ev+0x15)[0x2b78874dd1a5]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so(_ZN9__gnu_cxx13new_allocatorISt4pairIKSsiEE7destroyEPS3_+0x19)[0x2b78874de677]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so(_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EE12destroy_nodeEPSt13_Rb_tree_nodeIS2_E+0x32)[0x2b78874e05be]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so(_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EE8_M_eraseEPSt13_Rb_tree_nodeIS2_E+0x41)[0x2b78874e063d]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so(_ZNSt8_Rb_treeISsSt4pairIKSsiESt10_Select1stIS2_ESt4lessISsESaIS2_EED1Ev+0x22)[0x2b78874e0670]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so(_ZNSt3mapISsiSt4lessISsESaISt4pairIKSsiEEED1Ev+0x15)[0x2b78874e06c5]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so(_ZN13ShaderContextD1Ev+0x1d)[0x2b78874e06e5]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so[0x2b78879700f2]
/lib/libc.so.6(__cxa_finalize+0x94)[0x2b7888343d54]
/home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so[0x2b788796db63]
======= Memory map: ========
00400000-00404000 r-xp 00000000 08:17 15777800 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/Sample_Terrain
00603000-00604000 r--p 00003000 08:17 15777800 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/Sample_Terrain
00604000-00605000 rw-p 00004000 08:17 15777800 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/Sample_Terrain
00605000-01a40000 rw-p 00605000 00:00 0 [heap]
40002000-40004000 rwxp 00000000 00:0d 730 /dev/zero
2aaaaaaab000-2aaaaab30000 rw-p 2aaaaaaab000 00:00 0
2aaaaab30000-2aaaaab52000 rw-s 00000000 00:08 65536 /SYSV00000000 (deleted)
2aaaaab52000-2aaaaab75000 rw-p 2aaaaab52000 00:00 0
2aaaaab75000-2aaaab9d0000 rw-s c0000000 00:0d 10392 /dev/nvidia0
2aaaab9d0000-2aaaab9d1000 rw-s d0001000 00:0d 10392 /dev/nvidia0
2aaaaba12000-2aaaaba40000 rw-p 2aaaaba12000 00:00 0
2aaaaba40000-2aaaabb40000 rw-s 7ab80000 00:0d 10392 /dev/nvidia0
2aaaabb40000-2aaaabb41000 rw-s d0c02000 00:0d 10392 /dev/nvidia0
2aaaabb41000-2aaaabb42000 rw-s 5bde4000 00:0d 10392 /dev/nvidia0
2aaaabb42000-2aaaabb43000 rw-s 5bde5000 00:0d 10392 /dev/nvidia0
2aaaabb43000-2aaaabb44000 rw-s cf69d000 00:0d 10392 /dev/nvidia0
2aaaabb44000-2aaaabb48000 rw-s 1d056000 00:0d 10392 /dev/nvidia0
2aaaabb48000-2aaaabc48000 rw-s 1d253000 00:0d 10392 /dev/nvidia0
2aaaabc48000-2aaaabc88000 rw-s cf65c000 00:0d 10392 /dev/nvidia0
2aaaabc88000-2aaaabc89000 rw-s 00000000 00:08 4194306 /SYSV00000000 (deleted)
2aaaabc89000-2aaaabc8a000 rw-s 00000000 00:08 4227075 /SYSV00000000 (deleted)
2aaaad0d1000-2aaaad2d1000 rw-s 1d2ee000 00:0d 10392 /dev/nvidia0
2aaaad300000-2aaaad309000 r-xp 00000000 08:13 50094 /usr/lib64/libXcursor.so.1.0.2
2aaaad309000-2aaaad508000 ---p 00009000 08:13 50094 /usr/lib64/libXcursor.so.1.0.2
2aaaad508000-2aaaad509000 r--p 00008000 08:13 50094 /usr/lib64/libXcursor.so.1.0.2
2aaaad509000-2aaaad50a000 rw-p 00009000 08:13 50094 /usr/lib64/libXcursor.so.1.0.2
2aaaad50a000-2aaaad50f000 r-xp 00000000 08:13 49671 /usr/lib64/libXfixes.so.3.1.0
2aaaad50f000-2aaaad60e000 ---p 00005000 08:13 49671 /usr/lib64/libXfixes.so.3.1.0
2aaaad60e000-2aaaad60f000 rw-p 00004000 08:13 49671 /usr/lib64/libXfixes.so.3.1.0
2aaab0000000-2aaab0021000 rw-p 2aaab0000000 00:00 0
2aaab0021000-2aaab4000000 ---p 2aaab0021000 00:00 0
2b7886bbe000-2b7886bd9000 r-xp 00000000 08:13 1076728 /lib64/ld-2.6.1.so
2b7886bd9000-2b7886bdb000 rw-p 2b7886bd9000 00:00 0
2b7886dd8000-2b7886dd9000 r--p 0001a000 08:13 1076728 /lib64/ld-2.6.1.so
2b7886dd9000-2b7886dda000 rw-p 0001b000 08:13 1076728 /lib64/ld-2.6.1.so
2b7886dda000-2b7886de8000 r-xp 00000000 08:13 49872 /usr/lib64/libglfw.so.2.6
2b7886de8000-2b7886fe7000 ---p 0000e000 08:13 49872 /usr/lib64/libglfw.so.2.6
2b7886fe7000-2b7886fe8000 r--p 0000d000 08:13 49872 /usr/lib64/libglfw.so.2.6
2b7886fe8000-2b7886fe9000 rw-p 0000e000 08:13 49872 /usr/lib64/libglfw.so.2.6
2b7886fe9000-2b7886ff0000 r-xp 00000000 08:13 51920 /usr/lib64/libXrandr.so.2.1.0
2b7886ff0000-2b78871ef000 ---p 00007000 08:13 51920 /usr/lib64/libXrandr.so.2.1.0
2b78871ef000-2b78871f0000 r--p 00006000 08:13 51920 /usr/lib64/libXrandr.so.2.1.0
2b78871f0000-2b78871f1000 rw-p 00007000 08:13 51920 /usr/lib64/libXrandr.so.2.1.0
2b78871f1000-2b78871f2000 rw-p 2b78871f1000 00:00 0
2b78871f2000-2b7887207000 r-xp 00000000 08:13 1078002 /lib64/libpthread-2.6.1.so
2b7887207000-2b7887407000 ---p 00015000 08:13 1078002 /lib64/libpthread-2.6.1.so
2b7887407000-2b7887408000 r--p 00015000 08:13 1078002 /lib64/libpthread-2.6.1.so
2b7887408000-2b7887409000 rw-p 00016000 08:13 1078002 /lib64/libpthread-2.6.1.so
2b7887409000-2b788740d000 rw-p 2b7887409000 00:00 0
2b788740d000-2b7887541000 r-xp 00000000 08:17 1081634 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so
2b7887541000-2b7887741000 ---p 00134000 08:17 1081634 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so
2b7887741000-2b7887743000 r--p 00134000 08:17 1081634 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so
2b7887743000-2b788774a000 rw-p 00136000 08:17 1081634 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so
2b788774a000-2b7887750000 rw-p 2b788774a000 00:00 0
2b7887750000-2b788775e000 r-xp 00000000 08:17 8814758 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DUtils.so
2b788775e000-2b788795e000 ---p 0000e000 08:17 8814758 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DUtils.so
2b788795e000-2b788795f000 r--p 0000e000 08:17 8814758 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DUtils.so
2b788795f000-2b7887960000 rw-p 0000f000 08:17 8814758 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DUtils.so
2b7887960000-2b7887961000 rw-p 2b7887960000 00:00 0
2b7887961000-2b788797d000 r-xp 00000000 08:17 15597669 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so
2b788797d000-2b7887b7c000 ---p 0001c000 08:17 15597669 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so
2b7887b7c000-2b7887b7d000 r--p 0001b000 08:17 15597669 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so
2b7887b7d000-2b7887b7e000 rw-p 0001c000 08:17 15597669 /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so
2b7887b7e000-2b7887c67000 r-xp 00000000 08:13 73854 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8
2b7887c67000-2b7887e66000 ---p 000e9000 08:13 73854 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8
2b7887e66000-2b7887e6d000 r--p 000e8000 08:13 73854 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8
2b7887e6d000-2b7887e6f000 rw-p 000ef000 08:13 73854 /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8
2b7887e6f000-2b7887e81000 rw-p 2b7887e6f000 00:00 0
2b7887e81000-2b7887f01000 r-xp 00000000 08:13 1077999 /lib64/libm-2.6.1.so
2b7887f01000-2b7888100000 ---p 00080000 08:13 1077999 /lib64/libm-2.6.1.so
2b7888100000-2b7888101000 r--p 0007f000 08:13 1077999 /lib64/libm-2.6.1.so
2b7888101000-2b7888102000 rw-p 00080000 08:13 1077999 /lib64/libm-2.6.1.so
2b7888102000-2b788810f000 r-xp 00000000 08:13 1077781 /lib64/libgcc_s.so.1
2b788810f000-2b788830e000 ---p 0000d000 08:13 1077781 /lib64/libgcc_s.so.1
2b788830e000-2b788830f000 r--p 0000c000 08:13 1077781 /lib64/libgcc_s.so.1
2b788830f000-2b7888310000 rw-p 0000d000 08:13 1077781 /lib64/libgcc_s.so.1
2b7888310000-2b7888311000 rw-p 2b7888310000 00:00 0
2b7888311000-2b7888447000 r-xp 00000000 08:13 1076620 /lib64/libc-2.6.1.so
2b7888447000-2b7888646000 ---p 00136000 08:13 1076620 /lib64/libc-2.6.1.so
2b7888646000-2b788864a000 r--p 00135000 08:13 1076620 /lib64/libc-2.6.1.so
2b788864a000-2b788864b000 rw-p 00139000 08:13 1076620 /lib64/libc-2.6.1.so
2b788864b000-2b7888650000 rw-p 2b788864b000 00:00 0
2b7888650000-2b78886e9000 r-xp 00000000 08:13 81493 /usr/lib64/opengl/nvidia/lib/libGL.so.169.09
2b78886e9000-2b78887e8000 ---p 00099000 08:13 81493 /usr/lib64/opengl/nvidia/lib/libGL.so.169.09
2b78887e8000-2b788881c000 rwxp 00098000 08:13 81493 /usr/lib64/opengl/nvidia/lib/libGL.so.169.09
2b788881c000-2b788881e000 rwxp 2b788881c000 00:00 0
2b788881e000-2b7888920000 r-xp 00000000 08:13 50189 /usr/lib64/libX11.so.6.2.0
2b7888920000-2b7888b1f000 ---p 00102000 08:13 50189 /usr/lib64/libX11.so.6.2.0
2b7888b1f000-2b7888b21000 r--p 00101000 08:13 50189 /usr/lib64/libX11.so.6.2.0
2b7888b21000-2b7888b26000 rw-p 00103000 08:13 50189 /usr/lib64/libX11.so.6.2.0
2b7888b26000-2b7888b27000 rw-p 2b7888b26000 00:00 0
2b7888b27000-2b7888b37000 r-xp 00000000 08:13 60852 /usr/lib64/libXext.so.6.4.0
2b7888b37000-2b7888c37000 ---p 00010000 08:13 60852 /usr/lib64/libXext.so.6.4.0
2b7888c37000-2b7888c38000 rw-p 00010000 08:13 60852 /usr/lib64/libXext.so.6.4.0
2b7888c38000-2b7888c41000 r-xp 00000000 08:13 50482 /usr/lib64/libXrender.so.1.3.0
2b7888c41000-2b7888d40000 ---p 00009000 08:13 50482 /usr/lib64/libXrender.so.1.3.0
2b7888d40000-2b7888d41000 rw-p 00008000 08:13 50482 /usr/lib64/libXrender.so.1.3.0
2b7888d41000-2b7888d42000 rw-p 2b7888d41000 00:00 0
2b7888d42000-2b7889681000 r-xp 00000000 08:13 821925 /usr/lib64/opengl/nvidia/lib/libGLcore.so.169.09
2b7889681000-2b7889780000 ---p 0093f000 08:13 821925 /usr/lib64/opengl/nvidia/lib/libGLcore.so.169.09
2b7889780000-2b78898f3000 rwxp 0093e000 08:13 821925 /usr/lib64/opengl/nvidia/lib/libGLcore.so.169.09
2b78898f3000-2b78898fa000 rwxp 2b78898f3000 00:00 0
2b78898fa000-2b78898fb000 r-xp 00000000 08:13 1010061 /usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.169.09
2b78898fb000-2b78899fa000 ---p 00001000 08:13 1010061 /usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.169.09
2b78899fa000-2b78899fb000 rw-p 00000000 08:13 1010061 /usr/lib64/opengl/nvidia/tls/libnvidia-tls.so.169.09
2b78899fb000-2b78899fd000 r-xp 00000000 08:13 1078000 /lib64/libdl-2.6.1.so
2b78899fd000-2b7889bfd000 ---p 00002000 08:13 1078000 /lib64/libdl-2.6.1.so
2b7889bfd000-2b7889bfe000 r--p 00002000 08:13 1078000 /lib64/libdl-2.6.1.so
2b7889bfe000-2b7889bff000 rw-p 00003000 08:13 1078000 /lib64/libdl-2.6.1.so
2b7889bff000-2b7889c00000 rw-p 2b7889bff000 00:00 0
2b7889c00000-2b7889c02000 r-xp 00000000 08:13 49390 /usr/lib64/libXau.so.6.0.0
2b7889c02000-2b7889d02000 ---p 00002000 08:13 49390 /usr/lib64/libXau.so.6.0.0
2b7889d02000-2b7889d03000 rw-p 00002000 08:13 49390 /usr/lib64/libXau.so.6.0.0
2b7889d03000-2b7889d08000 r-xp 00000000 08:13 52244 /usr/lib64/libXdmcp.so.6.0.0
2b7889d08000-2b7889e07000 ---p 00005000 08:13 52244 /usr/lib64/libXdmcp.so.6.0.0
2b7889e07000-2b7889e08000 rw-p 00004000 08:13 52244 /usr/lib64/libXdmcp.so.6.0.0
2b7889e08000-2b7889e0a000 rw-p 2b7889e08000 00:00 0
7fff23eca000-7fff23eeb000 rwxp 7ffffffdd000 00:00 0 [stack]
7fff23eeb000-7fff23eec000 rw-p 7fffffffe000 00:00 0
7fff23ffe000-7fff24000000 r-xp 7fff23ffe000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
Aborted
Valgrind output:
Code:
==12572== Memcheck, a memory error detector.
==12572== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al.
==12572== Using LibVEX rev 1804, a library for dynamic binary translation.
==12572== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP.
==12572== Using valgrind-3.3.0, a dynamic binary instrumentation framework.
==12572== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al.
==12572== For more details, rerun with: -v
==12572==
[...]
==12572==
==12572== Invalid read of size 8
==12572== at 0x55287DE: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_S_right(std::_Rb_tree_node_base*) (stl_tree.h:501)
==12572== by 0x552B616: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1264)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x59BA0F1: __tcf_0 (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x59B7B62: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x59C2D10: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x638C9E8: exit (in /lib64/libc-2.6.1.so)
==12572== by 0x6377B7A: (below main) (in /lib64/libc-2.6.1.so)
==12572== Address 0x98c7258 is 24 bytes inside a block of size 48 free'd
==12572== at 0x4C2084C: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==12572== by 0x552B560: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, int> > >::deallocate(std::_Rb_tree_node<std::pair<std::string const, int> >*, unsigned long) (new_allocator.h:96)
==12572== by 0x552B588: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:362)
==12572== by 0x552B5D3: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:392)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x5558355: __tcf_0 (terrain.cpp:32)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x54D7D92: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572== by 0x555E240: _fini (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572==
==12572== Invalid read of size 8
==12572== at 0x55287F0: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_S_left(std::_Rb_tree_node_base*) (stl_tree.h:493)
==12572== by 0x552B62B: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1265)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x59BA0F1: __tcf_0 (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x59B7B62: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x59C2D10: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x638C9E8: exit (in /lib64/libc-2.6.1.so)
==12572== by 0x6377B7A: (below main) (in /lib64/libc-2.6.1.so)
==12572== Address 0x98c7250 is 16 bytes inside a block of size 48 free'd
==12572== at 0x4C2084C: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==12572== by 0x552B560: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, int> > >::deallocate(std::_Rb_tree_node<std::pair<std::string const, int> >*, unsigned long) (new_allocator.h:96)
==12572== by 0x552B588: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:362)
==12572== by 0x552B5D3: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:392)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x5558355: __tcf_0 (terrain.cpp:32)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x54D7D92: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572== by 0x555E240: _fini (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572==
==12572== Invalid read of size 8
==12572== at 0x5C69715: std::string::~string() (in /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8)
==12572== by 0x55281A4: std::pair<std::string const, int>::~pair() (stl_pair.h:69)
==12572== by 0x5529676: __gnu_cxx::new_allocator<std::pair<std::string const, int> >::destroy(std::pair<std::string const, int>*) (new_allocator.h:109)
==12572== by 0x552B5BD: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:391)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x59BA0F1: __tcf_0 (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x59B7B62: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x59C2D10: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== Address 0x98c7260 is 32 bytes inside a block of size 48 free'd
==12572== at 0x4C2084C: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==12572== by 0x552B560: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, int> > >::deallocate(std::_Rb_tree_node<std::pair<std::string const, int> >*, unsigned long) (new_allocator.h:96)
==12572== by 0x552B588: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:362)
==12572== by 0x552B5D3: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:392)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x5558355: __tcf_0 (terrain.cpp:32)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x54D7D92: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572== by 0x555E240: _fini (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572==
==12572== Invalid read of size 4
==12572== at 0x5C82F12: __gnu_cxx::__exchange_and_add(int volatile*, int) (in /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8)
==12572== by 0x5C69738: std::string::~string() (in /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8)
==12572== by 0x55281A4: std::pair<std::string const, int>::~pair() (stl_pair.h:69)
==12572== by 0x5529676: __gnu_cxx::new_allocator<std::pair<std::string const, int> >::destroy(std::pair<std::string const, int>*) (new_allocator.h:109)
==12572== by 0x552B5BD: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:391)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x59BA0F1: __tcf_0 (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x59B7B62: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== Address 0x98c71f8 is 16 bytes inside a block of size 39 free'd
==12572== at 0x4C2084C: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==12572== by 0x5C69749: std::string::~string() (in /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8)
==12572== by 0x55281A4: std::pair<std::string const, int>::~pair() (stl_pair.h:69)
==12572== by 0x5529676: __gnu_cxx::new_allocator<std::pair<std::string const, int> >::destroy(std::pair<std::string const, int>*) (new_allocator.h:109)
==12572== by 0x552B5BD: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:391)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x5558355: __tcf_0 (terrain.cpp:32)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x54D7D92: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572==
==12572== Invalid free() / delete / delete[]
==12572== at 0x4C2084C: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==12572== by 0x5C69749: std::string::~string() (in /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8)
==12572== by 0x55281A4: std::pair<std::string const, int>::~pair() (stl_pair.h:69)
==12572== by 0x5529676: __gnu_cxx::new_allocator<std::pair<std::string const, int> >::destroy(std::pair<std::string const, int>*) (new_allocator.h:109)
==12572== by 0x552B5BD: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:391)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x59BA0F1: __tcf_0 (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x59B7B62: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== Address 0x98c71e8 is 0 bytes inside a block of size 39 free'd
==12572== at 0x4C2084C: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==12572== by 0x5C69749: std::string::~string() (in /usr/lib64/gcc/x86_64-pc-linux-gnu/4.1.2/libstdc++.so.6.0.8)
==12572== by 0x55281A4: std::pair<std::string const, int>::~pair() (stl_pair.h:69)
==12572== by 0x5529676: __gnu_cxx::new_allocator<std::pair<std::string const, int> >::destroy(std::pair<std::string const, int>*) (new_allocator.h:109)
==12572== by 0x552B5BD: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:391)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x5558355: __tcf_0 (terrain.cpp:32)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x54D7D92: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572==
==12572== Invalid free() / delete / delete[]
==12572== at 0x4C2084C: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==12572== by 0x552B560: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, int> > >::deallocate(std::_Rb_tree_node<std::pair<std::string const, int> >*, unsigned long) (new_allocator.h:96)
==12572== by 0x552B588: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:362)
==12572== by 0x552B5D3: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:392)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x59BA0F1: __tcf_0 (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x59B7B62: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== by 0x59C2D10: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3DTerrain.so)
==12572== Address 0x98c7240 is 0 bytes inside a block of size 48 free'd
==12572== at 0x4C2084C: operator delete(void*) (in /usr/lib64/valgrind/amd64-linux/vgpreload_memcheck.so)
==12572== by 0x552B560: __gnu_cxx::new_allocator<std::_Rb_tree_node<std::pair<std::string const, int> > >::deallocate(std::_Rb_tree_node<std::pair<std::string const, int> >*, unsigned long) (new_allocator.h:96)
==12572== by 0x552B588: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_put_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:362)
==12572== by 0x552B5D3: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::destroy_node(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:392)
==12572== by 0x552B63C: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::_M_erase(std::_Rb_tree_node<std::pair<std::string const, int> >*) (stl_tree.h:1266)
==12572== by 0x552B66F: std::_Rb_tree<std::string, std::pair<std::string const, int>, std::_Select1st<std::pair<std::string const, int> >, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~_Rb_tree() (stl_tree.h:578)
==12572== by 0x552B6C4: std::map<std::string, int, std::less<std::string>, std::allocator<std::pair<std::string const, int> > >::~map() (stl_map.h:93)
==12572== by 0x552B6E4: ShaderContext::~ShaderContext() (egShader.h:85)
==12572== by 0x5558355: __tcf_0 (terrain.cpp:32)
==12572== by 0x638CD53: __cxa_finalize (in /lib64/libc-2.6.1.so)
==12572== by 0x54D7D92: (within /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572== by 0x555E240: _fini (in /home/fnoeding/programming/interestingsources/horde3d/trunk/Horde3D/Binaries/Linux_x86/libHorde3D.so)
==12572==
==12572== ERROR SUMMARY: 30058 errors from 25 contexts (suppressed: 7 from 2)
==12572== malloc/free: in use at exit: 27,971 bytes in 289 blocks.
==12572== malloc/free: 16,291 allocs, 16,004 frees, 93,303,667 bytes allocated.
==12572== For counts of detected errors, rerun with: -v
==12572== searching for pointers to 289 not-freed blocks.
==12572== checked 2,115,784 bytes.
==12572==
==12572== LEAK SUMMARY:
==12572== definitely lost: 192 bytes in 5 blocks.
==12572== possibly lost: 0 bytes in 0 blocks.
==12572== still reachable: 27,779 bytes in 284 blocks.
==12572== suppressed: 0 bytes in 0 blocks.
==12572== Rerun with --leak-check=full to see details of leaked memory.
System:
Gentoo with kernel: Linux flolarge 2.6.24-gentoo #2 SMP PREEMPT Mon Jan 28 19:06:44 CET 2008 x86_64 AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ AuthenticAMD GNU/Linux
nvidia 7600GT
Hope that helps.