crashes on exiting octave

View: New views
1 Messages — Rating Filter:   Alert me  

crashes on exiting octave

by Soeren Sonnenburg-18 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Dear Xavier and list,

I am having weir crashed just when loading swig wrapped octave modules
(using swig 1.3.39 / 40 on both octave3.0 and 3.2).

You can reproduce this by compiling a recent version of shogun (see
http://www.shogun-toolbox.org
./configure --interfaces=libshogun,libshogunui,octave_modular
make
sudo make install

octave

octave:1> init_shogun
-> crash

or slightly closer valgrind+swig1.3.40+octave 3.2.3:

octave:1> Classifier;
octave:2> Regression
octave:3>
==14131== Invalid read of size 4
==14131==    at 0xBC3EA96: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/lib/libstdc++.so.6.0.13)
==14131==    by 0xC37743C: exit (exit.c:75)
==14131==    by 0x532CD5C: octave_main (in /usr/lib/octave-3.2.3/liboctinterp.so.3.2.3)
==14131==    by 0xC35F5C5: (below main) (libc-start.c:222)
==14131==  Address 0x15857080 is 16 bytes inside a block of size 36 free'd
==14131==    at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346)
==14131==    by 0xBC3EAA8: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/lib/libstdc++.so.6.0.13)
==14131==    by 0xC37743C: exit (exit.c:75)
==14131==    by 0x532CD5C: octave_main (in /usr/lib/octave-3.2.3/liboctinterp.so.3.2.3)
==14131==    by 0xC35F5C5: (below main) (libc-start.c:222)
==14131==
==14131== Invalid free() / delete / delete[]
==14131==    at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346)
==14131==    by 0xBC3EAA8: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/lib/libstdc++.so.6.0.13)
==14131==    by 0xC37743C: exit (exit.c:75)
==14131==    by 0x532CD5C: octave_main (in /usr/lib/octave-3.2.3/liboctinterp.so.3.2.3)
==14131==    by 0xC35F5C5: (below main) (libc-start.c:222)
==14131==  Address 0x15857070 is 0 bytes inside a block of size 36 free'd
==14131==    at 0x4C21ACE: operator delete(void*) (vg_replace_malloc.c:346)
==14131==    by 0xBC3EAA8: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::~basic_string() (in /usr/lib/libstdc++.so.6.0.13)
==14131==    by 0xC37743C: exit (exit.c:75)
==14131==    by 0x532CD5C: octave_main (in /usr/lib/octave-3.2.3/liboctinterp.so.3.2.3)
==14131==    by 0xC35F5C5: (below main) (libc-start.c:222)
==14131==
==14131==


I was only able to trigger that problem by loading *two* modules at the
same time. If I just load one then the problem does not occur. Could it
be that there is some kind of overloaded class overlap?

I am quite sure that I don't touch std::basic_string (or even std::
functions) though I am overloading new/delete. However not overloading
new/delete doesn't do anything. Still the same crash.

Any ideas?

Thanks
Soeren
--
For the one fact about the future of which we can be certain is that it
will be utterly fantastic. -- Arthur C. Clarke, 1962


------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Swig-user mailing list
Swig-user@...
https://lists.sourceforge.net/lists/listinfo/swig-user

signature.asc (853 bytes) Download Attachment