Hallo!
I encountered this problem in the destructor of flext/readanysf~ (latest from cvs - simply wanted to delete readanysf~):
------8<--------- *** glibc detected *** free(): invalid pointer: 0x08114e2c *** [Thread -1236866128 (LWP 24354) exited]
Program received signal SIGABRT, Aborted. [Switching to Thread -1209653568 (LWP 24314)] 0xb7e8c9e7 in raise () from /lib/tls/libc.so.6 (gdb) bt #0 0xb7e8c9e7 in raise () from /lib/tls/libc.so.6 #1 0xb7e8e31b in abort () from /lib/tls/libc.so.6 #2 0xb7ec3365 in __fsetlocking () from /lib/tls/libc.so.6 #3 0xb7ec9a07 in malloc_usable_size () from /lib/tls/libc.so.6 #4 0xb7ec9ea2 in free () from /lib/tls/libc.so.6 #5 0xb7e2c269 in flext_root_shared::operator delete () from /usr/local/lib/libflext-pd.so.0.5 #6 0xb7e272dd in flext_base_shared::~flext_base_shared () from /usr/local/lib/libflext-pd.so.0.5 #7 0xb7e27f88 in flext_dsp_shared::~flext_dsp_shared () from /usr/local/lib/libflext-pd.so.0.5 #8 0xb7e5b054 in readanysf::~readanysf () from /usr/lib/pd/externs/readanysf~.pd_linux #9 0xb7e5c408 in readanysf::__free__ () from /usr/lib/pd/externs/readanysf~.pd_linux #10 0xb7e28e95 in flext_obj_shared::obj_free () from /usr/local/lib/libflext-pd.so.0.5 #11 0x0809f687 in pd_free (x=0x8118490) at m_pd.c:33 #12 0x080577c9 in glist_delete (x=0x8118358, y=0x8118490) at g_graph.c:120 #13 0x0805c65c in graph_delete (z=0x8118358, glist=0x0) at g_graph.c:986 #14 0x08081bee in gobj_delete (x=0x5efa, glist=0x0) at g_editor.c:61 #15 0x0805777d in glist_delete (x=0x8115038, y=0x8118358) at g_graph.c:108 #16 0x08080d15 in canvas_doclear (x=0x8115038) at g_editor.c:2051 ---Type <return> to continue, or q <return> to quit--- #17 0x08085607 in canvas_cut (x=0x8115038) at g_editor.c:2073 #18 0x080a07ed in pd_typedmess (x=0x8115038, s=0x5efa, argc=135352376, argv=0x437a0000) at m_class.c:728 #19 0x080a06b6 in pd_typedmess (x=0x811aaf0, s=0x5efa, argc=0, argv=0x80f92a8) at m_class.c:749 #20 0x080a3b94 in binbuf_eval (x=0x0, target=0x811aaf0, argc=0, argv=0x0) at m_binbuf.c:574 #21 0x080abfc0 in socketreceiver_read (x=0x8114560, fd=0) at s_inter.c:539 #22 0x080adc8f in sys_domicrosleep (microsec=0, pollem=1) at s_inter.c:180 #23 0x080ad8ce in sys_pollgui () at s_inter.c:822 #24 0x080a8878 in m_scheduler () at m_sched.c:466 #25 0x080b32cb in main (argc=0, argv=0x0) at s_entry.c:27 (gdb) -------8<------------
I have no idea where the problem should be ... if it's a flext or readanysf~ issue ...
LG Georg
On Sun, 28 Aug 2005 13:27:35 +0200 Georg Holzmann grhPD@gmx.at wrote:
Hallo!
I encountered this problem in the destructor of flext/readanysf~ (latest from cvs - simply wanted to delete readanysf~):
please define FLEXT_NOGLOBALNEW when compiling readanysf~
t
please define FLEXT_NOGLOBALNEW when compiling readanysf~
it is defined !
can you compile readanysf~ with debugging symbols and link with the flext debugging library (libflext-pd_d)?
t
Hallo tim!
can you compile readanysf~ with debugging symbols and link with the flext debugging library (libflext-pd_d)?
okay:
now, with debugging symbols, the same patch results in a SEGFAULT: ---------8<------------ Starting program: /usr/bin/pd -path /usr/lib/pd/externs -path abs -lib Gem -lib PDContainer -lib zexy -lib iemlib1 -lib iemlib2 main.pd [Thread debugging using libthread_db enabled] [New Thread -1209653568 (LWP 29931)] OSS: requested audio buffer size 8820 limited to 2048 [New Thread -1228325968 (LWP 29962)] [New Thread -1237460048 (LWP 29963)] [New Thread -1245848656 (LWP 29964)] [New Thread -1254237264 (LWP 29965)] [Thread -1237460048 (LWP 29963) exited]
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1209653568 (LWP 29931)] pd_free (x=0xb7f98218) at m_pd.c:29 29 if (c->c_freemethod) (*(t_gotfn)(c->c_freemethod))(x); (gdb) bt #0 pd_free (x=0xb7f98218) at m_pd.c:29 #1 0xb6d0a2d9 in ~flext_base_shared (this=0x81a8e8c) at source/flext.cpp:85 #2 0xb6d0b8a7 in ~flext_dsp_shared (this=0x81a8e8c) at source/fldsp.cpp:74 #3 0xb6d45040 in readanysf::~readanysf () from /usr/lib/pd/externs/readanysf~.pd_linux #4 0xb6d463f4 in readanysf::__free__ () from /usr/lib/pd/externs/readanysf~.pd_linux #5 0xb6d0cf27 in flext_obj_shared::obj_free (h=0x81604e8) at source/fllib.cpp:499 #6 0x0809f687 in pd_free (x=0x81604e8) at m_pd.c:33 #7 0x080577c9 in glist_delete (x=0x8160398, y=0x81604e8) at g_graph.c:120 #8 0x0805c65c in graph_delete (z=0x8160398, glist=0xb7f98218) at g_graph.c:986 #9 0x08081bee in gobj_delete (x=0x81a8e8c, glist=0xb7f98218) at g_editor.c:61 #10 0x0805777d in glist_delete (x=0x8186820, y=0x8160398) at g_graph.c:108 #11 0x08080d15 in canvas_doclear (x=0x8186820) at g_editor.c:2051 #12 0x08085607 in canvas_cut (x=0x8186820) at g_editor.c:2073 #13 0x080a07ed in pd_typedmess (x=0x8186820, s=0x81a8e8c, argc=135817248, argv=0x433f0000) at m_class.c:728 #14 0x080a06b6 in pd_typedmess (x=0x8162268, s=0x81a8e8c, argc=0, argv=0x80f92a8) at m_class.c:749 #15 0x080a3b94 in binbuf_eval (x=0xb7f98218, target=0x8162268, argc=0, argv=0x0) at m_binbuf.c:574 #16 0x080abfc0 in socketreceiver_read (x=0x8114e98, fd=0) at s_inter.c:539 #17 0x080adc8f in sys_domicrosleep (microsec=-1208385000, pollem=1) at s_inter.c:180 #18 0x080ad8ce in sys_pollgui () at s_inter.c:822 #19 0x080a8878 in m_scheduler () at m_sched.c:466 #20 0x080b32cb in main (argc=-1208385000, argv=0xb7f98218) at s_entry.c:27 (gdb) --------->8---------
anyway, if I only make 3 readanysf~ in an empty patch, and then delete them, I get the following messages:
-----8<---------- (gdb) run -stderr -path /usr/lib/pd/externs Starting program: /usr/bin/pd -stderr -path /usr/lib/pd/externs [Thread debugging using libthread_db enabled] [New Thread -1209653568 (LWP 30378)] OSS: requested audio buffer size 8820 limited to 2048 [New Thread -1211216976 (LWP 30416)] flext - minimum thread priority reached [New Thread -1219871824 (LWP 30417)] flext - minimum thread priority reached [New Thread -1228260432 (LWP 30418)] [New Thread -1236915280 (LWP 30421)] flext - minimum thread priority reached [New Thread -1245570128 (LWP 30423)] flext - minimum thread priority reached flext - INTERNAL ERROR: Thread not found! [Thread -1219871824 (LWP 30417) exited] flext - INTERNAL ERROR: Thread not found! [Thread -1236915280 (LWP 30421) exited]
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1245570128 (LWP 30423)] 0xb7fa7093 in __pthread_mutex_cond_lock () from /lib/tls/libpthread.so.0 (gdb) bt #0 0xb7fa7093 in __pthread_mutex_cond_lock () from /lib/tls/libpthread.so.0 #1 0xb7fa2beb in pthread_cond_wait@@GLIBC_2.3.2 () from /lib/tls/libpthread.so.0 #2 0xb7e2945a in flext_shared::ThrCond::Wait (this=0x8152fd4) at source/flthr.cpp:608 #3 0xb7e5bc83 in readanysf::m_child () from /usr/lib/pd/externs/readanysf~.pd_linux #4 0xb7e5c5bf in readanysf::flext_t_m_child () from /usr/lib/pd/externs/readanysf~.pd_linux #5 0xb7e2875b in LaunchHelper (e=0x811708c) at source/flthr.cpp:110 #6 0xb7fa0ccd in start_thread () from /lib/tls/libpthread.so.0 #7 0xb7f34b0e in clone () from /lib/tls/libc.so.6 (gdb) ------->8---------
what is maybe important: I use pd0.39-0test6, but had to compile against the header files of pd-0.38-4 (because of the "template" stuff ...)
LG Georg
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1209653568 (LWP 29931)] pd_free (x=0xb7f98218) at m_pd.c:29 29 if (c->c_freemethod) (*(t_gotfn)(c->c_freemethod))(x); (gdb) bt #0 pd_free (x=0xb7f98218) at m_pd.c:29 #1 0xb6d0a2d9 in ~flext_base_shared (this=0x81a8e8c) at source/flext.cpp:85 #2 0xb6d0b8a7 in ~flext_dsp_shared (this=0x81a8e8c) at source/fldsp.cpp:74 #3 0xb6d45040 in readanysf::~readanysf () from /usr/lib/pd/externs/readanysf~.pd_linux
this is while freeing the proxy objects for the inlets ..
anyway, if I only make 3 readanysf~ in an empty patch, and then delete them, I get the following messages:
hm ... something, thomas should have a look at ...
what is maybe important: I use pd0.39-0test6, but had to compile against the header files of pd-0.38-4 (because of the "template" stuff ...)
flext is using private headers that changed from 0.38 to 0.39.
you cannot expect flext / flext externals to work if compiled against the wrong headers... i'm about 99% sure, that it's related to that ...
anyway, if I only make 3 readanysf~ in an empty patch, and then delete them, I get the following messages:
hm ... something, thomas should have a look at ...
what is maybe important: I use pd0.39-0test6, but had to compile against the header files of pd-0.38-4 (because of the "template" stuff ...)
flext is using private headers that changed from 0.38 to 0.39.
you cannot expect flext / flext externals to work if compiled against the wrong headers... i'm about 99% sure, that it's related to that ...
me too. Thomas
Hallo!
I use pd0.39-0test6, but had to compile against the header files of pd-0.38-4 (because of the "template" stuff ...)
forgot to comment on this: this issue is easily fixable... just replace "template" by "waldheim" or anything else.
it's gone in test7 ... (so I don't have to use waldheim ;)
LG Georg
Hallo!
unfortunately still the same behaviour (compiled now pd0.39-test7 and recompiled flext and readanysf)
LG Georg
Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1209653568 (LWP 29931)] pd_free (x=0xb7f98218) at m_pd.c:29 29 if (c->c_freemethod) (*(t_gotfn)(c->c_freemethod))(x); (gdb) bt #0 pd_free (x=0xb7f98218) at m_pd.c:29 #1 0xb6d0a2d9 in ~flext_base_shared (this=0x81a8e8c) at source/flext.cpp:85 #2 0xb6d0b8a7 in ~flext_dsp_shared (this=0x81a8e8c) at source/fldsp.cpp:74 #3 0xb6d45040 in readanysf::~readanysf () from /usr/lib/pd/externs/readanysf~.pd_linux
this is while freeing the proxy objects for the inlets ..
anyway, if I only make 3 readanysf~ in an empty patch, and then delete them, I get the following messages:
hm ... something, thomas should have a look at ...
what is maybe important: I use pd0.39-0test6, but had to compile against the header files of pd-0.38-4 (because of the "template" stuff ...)
flext is using private headers that changed from 0.38 to 0.39.
you cannot expect flext / flext externals to work if compiled against the wrong headers... i'm about 99% sure, that it's related to that ...