killing pd with xkill gave this in gdb:
XIO:  fatal IO error 11 (Resource temporarily unavailable) on X server ":0.0"
      after 2824 requests (2823 known processed) with 0 events remaining.

the 'where' output remains the same afaict...

#0  0xb7fe1424 in __kernel_vsyscall ()
#1  0xb7d55e71 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0xb7d5934e in abort () at abort.c:92
#3  0xb7d8c577 in __libc_message (do_abort=2, 
    fmt=0xb7e658ac "*** glibc detected *** %s: %s: 0x%s ***\n")
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#4  0xb7d96961 in malloc_printerr (action=<value optimized out>, 
    str=<value optimized out>, ptr=0x8612798) at malloc.c:6283
#5  0xb7d9915d in _int_malloc (av=0xb7e893c0, bytes=24) at malloc.c:4396
#6  0xb7d9af53 in __libc_malloc (bytes=24) at malloc.c:3660
#7  0xb42514da in freenect_init () from /usr/local/lib/libfreenect.so.0.0
#8  0xb43824cf in fux_kinect::fux_kinect (this=0x8612638, argc=0, 
    argv=0xbfffec4c) at fux_kinect.cpp:84
#9  0xb438272b in create_fux_kinect (s=0x8610598, argc=0, argv=0xbfffec4c)
    at fux_kinect.cpp:24
#10 0x080b40b9 in pd_typedmess (x=0x851384c, s=0x8610598, argc=0, 
    argv=0xbfffec4c) at m_class.c:715
#11 0x080b8e8a in binbuf_eval (x=0x8611b80, target=<value optimized out>, 
    argc=0, argv=0x8611468) at m_binbuf.c:726
#12 0x08076265 in canvas_objtext (gl=0x8611390, xpix=191, 
    ypix=<value optimized out>, selected=0, b=0x8611b80) at g_text.c:94
#13 0x08076540 in text_setto (x=0x8611370, glist=0x8611390, 
    buf=0x8611b70 "fux_kinect", bufsize=10) at g_text.c:1397
---Type <return> to continue, or q <return> to quit---
#14 0x08097e09 in glist_deselect (x=0x8611390, y=0x8611370) at g_editor.c:253
#15 0x08096f16 in glist_noselect (x=0x8611390) at g_editor.c:268
#16 0x0809a21d in canvas_doclick (x=0x8611390, xpos=220, ypos=97, which=1, 
    mod=<value optimized out>, doit=1) at g_editor.c:1422
#17 0x0809a5c7 in canvas_mousedown (x=0x8611390, xpos=220, ypos=97, which=1, 
    mod=0) at g_editor.c:1434
#18 0x080b3f86 in pd_typedmess (x=0x8611390, s=0x851de48, argc=4, 
    argv=0xbffff05c) at m_class.c:792
#19 0x080b3b6c in pd_typedmess (x=0x855b148, s=0x851de48, argc=4, 
    argv=0xbffff05c) at m_class.c:813
#20 0x080b8e8a in binbuf_eval (x=0x8559e68, target=<value optimized out>, 
    argc=0, argv=0x0) at m_binbuf.c:726
#21 0x080c4e07 in socketreceiver_read (x=0x853d650, fd=10) at s_inter.c:558
#22 0x080c5ed4 in sys_domicrosleep (microsec=<value optimized out>, 
    pollem=<value optimized out>) at s_inter.c:196
#23 0x080c1120 in m_pollingscheduler () at m_sched.c:513
#24 m_mainloop () at m_sched.c:563
#25 0x080c3ec9 in sys_main (argc=1, argv=0xbffff464) at s_main.c:304
#26 0x080cbbab in main (argc=1, argv=0xbffff464) at s_entry.c:32


2011/11/11 tim vets <timvets@gmail.com>


2011/11/11 Mathieu Bouchard <matju@artengine.ca>
Le 2011-11-11 à 17:56:00, tim vets a écrit :


I don't really remember the steps exactly, do you? 

You could use the « svn diff » command, or if it's not from SVN, then unpack another copy (make sure you don't overwrite) and then do a diff of the two Makefiles with a command similar to :

 diff -u fux_kinect_orig/Makefile fux_kinect_tim/Makefile

if the newer lines appear as «-» instead of «+», you have to change the order of filenames (I get it wrong 50 % of the time)


That 'undefined symbol' thing probably happened now only because I was trying with a new build of latest Gem, which doesn't seem to work itself here. I now replaced it back with my previous Gem.pd_linux, and it behaves like before: I try to create [fux_kinect], and pd hangs, without ever finishing creating the object, and without messages.

You can use gdb like this :

 gdb --args pdextended fux_kinect-help.pd

and then use the «run» command to start pd, and press Ctrl+c to force it to quit when it's hung, then use the «where» command to see a backtrace. Then post the backtrace here.


ok, only difference here is that doing ctrl+c didn't kill pd (just '^CQuit' in the gdb prompt. doing 'where' anyway now gives:

#0  0xb7fe1424 in __kernel_vsyscall ()
#1  0xb7d55e71 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2  0xb7d5934e in abort () at abort.c:92
#3  0xb7d8c577 in __libc_message (do_abort=2, 
    fmt=0xb7e658ac "*** glibc detected *** %s: %s: 0x%s ***\n")
    at ../sysdeps/unix/sysv/linux/libc_fatal.c:189
#4  0xb7d96961 in malloc_printerr (action=<value optimized out>, 
    str=<value optimized out>, ptr=0x8612798) at malloc.c:6283
#5  0xb7d9915d in _int_malloc (av=0xb7e893c0, bytes=24) at malloc.c:4396
#6  0xb7d9af53 in __libc_malloc (bytes=24) at malloc.c:3660
#7  0xb42514da in freenect_init () from /usr/local/lib/libfreenect.so.0.0
#8  0xb43824cf in fux_kinect::fux_kinect (this=0x8612638, argc=0, 
    argv=0xbfffec4c) at fux_kinect.cpp:84
#9  0xb438272b in create_fux_kinect (s=0x8610598, argc=0, argv=0xbfffec4c)
    at fux_kinect.cpp:24
#10 0x080b40b9 in pd_typedmess (x=0x851384c, s=0x8610598, argc=0, 
    argv=0xbfffec4c) at m_class.c:715
#11 0x080b8e8a in binbuf_eval (x=0x8611b80, target=<value optimized out>, 
    argc=0, argv=0x8611468) at m_binbuf.c:726
#12 0x08076265 in canvas_objtext (gl=0x8611390, xpix=191, 
    ypix=<value optimized out>, selected=0, b=0x8611b80) at g_text.c:94
#13 0x08076540 in text_setto (x=0x8611370, glist=0x8611390, 
    buf=0x8611b70 "fux_kinect", bufsize=10) at g_text.c:1397
---Type <return> to continue, or q <return> to quit---
#14 0x08097e09 in glist_deselect (x=0x8611390, y=0x8611370) at g_editor.c:253
#15 0x08096f16 in glist_noselect (x=0x8611390) at g_editor.c:268
#16 0x0809a21d in canvas_doclick (x=0x8611390, xpos=220, ypos=97, which=1, 
    mod=<value optimized out>, doit=1) at g_editor.c:1422
#17 0x0809a5c7 in canvas_mousedown (x=0x8611390, xpos=220, ypos=97, which=1, 
    mod=0) at g_editor.c:1434
#18 0x080b3f86 in pd_typedmess (x=0x8611390, s=0x851de48, argc=4, 
    argv=0xbffff05c) at m_class.c:792
#19 0x080b3b6c in pd_typedmess (x=0x855b148, s=0x851de48, argc=4, 
    argv=0xbffff05c) at m_class.c:813
#20 0x080b8e8a in binbuf_eval (x=0x8559e68, target=<value optimized out>, 
    argc=0, argv=0x0) at m_binbuf.c:726
#21 0x080c4e07 in socketreceiver_read (x=0x853d650, fd=10) at s_inter.c:558
#22 0x080c5ed4 in sys_domicrosleep (microsec=<value optimized out>, 
    pollem=<value optimized out>) at s_inter.c:196
#23 0x080c1120 in m_pollingscheduler () at m_sched.c:513
#24 m_mainloop () at m_sched.c:563
#25 0x080c3ec9 in sys_main (argc=1, argv=0xbffff464) at s_main.c:304
#26 0x080cbbab in main (argc=1, argv=0xbffff464) at s_entry.c:32
gr,
Tim

 
I could probably look up the Valgrind output, if it's relevant. gr, Tim

For a hang, it's better to use GDB.

GDB and Valgrind are largely complementary.

There's also a GUI for Valgrind if it helps you. I don't know about GUIs for GDB (except the quite old DDD), but there might be one or several.


 ______________________________________________________________________
| Mathieu BOUCHARD ----- téléphone : +1.514.383.3801 ----- Montréal, QC