<br><br><div class="gmail_quote">2011/11/11 Mathieu Bouchard <span dir="ltr"><<a href="mailto:matju@artengine.ca">matju@artengine.ca</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Le 2011-11-11 à 17:56:00, tim vets a écrit :<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I don't really remember the steps exactly, do you? <br>
</blockquote>
<br></div>
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 :<br>
<br>
diff -u fux_kinect_orig/Makefile fux_kinect_tim/Makefile<br>
<br>
if the newer lines appear as «-» instead of «+», you have to change the order of filenames (I get it wrong 50 % of the time)<div class="im"><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
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.<br>
</blockquote>
<br></div>
You can use gdb like this :<br>
<br>
gdb --args pdextended fux_kinect-help.pd<br>
<br>
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.<div class="im"><br>
<br></div></blockquote><div>ok, only difference here is that doing ctrl+c didn't kill pd (just '^CQuit' in the gdb prompt. doing 'where' anyway now gives:</div><div><br></div><div>#0 0xb7fe1424 in __kernel_vsyscall ()</div>
<div>#1 0xb7d55e71 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64</div><div>#2 0xb7d5934e in abort () at abort.c:92</div><div>#3 0xb7d8c577 in __libc_message (do_abort=2, </div><div> fmt=0xb7e658ac "*** glibc detected *** %s: %s: 0x%s ***\n")</div>
<div> at ../sysdeps/unix/sysv/linux/libc_fatal.c:189</div><div>#4 0xb7d96961 in malloc_printerr (action=<value optimized out>, </div><div> str=<value optimized out>, ptr=0x8612798) at malloc.c:6283</div>
<div>#5 0xb7d9915d in _int_malloc (av=0xb7e893c0, bytes=24) at malloc.c:4396</div><div>#6 0xb7d9af53 in __libc_malloc (bytes=24) at malloc.c:3660</div><div>#7 0xb42514da in freenect_init () from /usr/local/lib/libfreenect.so.0.0</div>
<div>#8 0xb43824cf in fux_kinect::fux_kinect (this=0x8612638, argc=0, </div><div> argv=0xbfffec4c) at fux_kinect.cpp:84</div><div>#9 0xb438272b in create_fux_kinect (s=0x8610598, argc=0, argv=0xbfffec4c)</div><div> at fux_kinect.cpp:24</div>
<div>#10 0x080b40b9 in pd_typedmess (x=0x851384c, s=0x8610598, argc=0, </div><div> argv=0xbfffec4c) at m_class.c:715</div><div>#11 0x080b8e8a in binbuf_eval (x=0x8611b80, target=<value optimized out>, </div><div>
argc=0, argv=0x8611468) at m_binbuf.c:726</div><div>#12 0x08076265 in canvas_objtext (gl=0x8611390, xpix=191, </div><div> ypix=<value optimized out>, selected=0, b=0x8611b80) at g_text.c:94</div><div>#13 0x08076540 in text_setto (x=0x8611370, glist=0x8611390, </div>
<div> buf=0x8611b70 "fux_kinect", bufsize=10) at g_text.c:1397</div><div>---Type <return> to continue, or q <return> to quit---</div><div>#14 0x08097e09 in glist_deselect (x=0x8611390, y=0x8611370) at g_editor.c:253</div>
<div>#15 0x08096f16 in glist_noselect (x=0x8611390) at g_editor.c:268</div><div>#16 0x0809a21d in canvas_doclick (x=0x8611390, xpos=220, ypos=97, which=1, </div><div> mod=<value optimized out>, doit=1) at g_editor.c:1422</div>
<div>#17 0x0809a5c7 in canvas_mousedown (x=0x8611390, xpos=220, ypos=97, which=1, </div><div> mod=0) at g_editor.c:1434</div><div>#18 0x080b3f86 in pd_typedmess (x=0x8611390, s=0x851de48, argc=4, </div><div> argv=0xbffff05c) at m_class.c:792</div>
<div>#19 0x080b3b6c in pd_typedmess (x=0x855b148, s=0x851de48, argc=4, </div><div> argv=0xbffff05c) at m_class.c:813</div><div>#20 0x080b8e8a in binbuf_eval (x=0x8559e68, target=<value optimized out>, </div><div>
argc=0, argv=0x0) at m_binbuf.c:726</div><div>#21 0x080c4e07 in socketreceiver_read (x=0x853d650, fd=10) at s_inter.c:558</div><div>#22 0x080c5ed4 in sys_domicrosleep (microsec=<value optimized out>, </div><div>
pollem=<value optimized out>) at s_inter.c:196</div><div>#23 0x080c1120 in m_pollingscheduler () at m_sched.c:513</div><div>#24 m_mainloop () at m_sched.c:563</div><div>#25 0x080c3ec9 in sys_main (argc=1, argv=0xbffff464) at s_main.c:304</div>
<div>#26 0x080cbbab in main (argc=1, argv=0xbffff464) at s_entry.c:32</div><div>gr,</div><div>Tim</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div class="im">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I could probably look up the Valgrind output, if it's relevant. gr, Tim<br>
</blockquote>
<br></div>
For a hang, it's better to use GDB.<br>
<br>
GDB and Valgrind are largely complementary.<br>
<br>
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.<div><div></div><div class="h5"><br>
<br>
______________________________<u></u>______________________________<u></u>__________<br>
| Mathieu BOUCHARD ----- téléphone : <a href="tel:%2B1.514.383.3801" value="+15143833801" target="_blank">+1.514.383.3801</a> ----- Montréal, QC</div></div></blockquote></div><br>