[PD] Crasher bug

Dan Wilcox danomatika at gmail.com
Mon Oct 2 17:51:58 CEST 2017


More useful is to print the frame within the pd code where the crash occurred.

In this case, try the following in lldb:

f 6
f

That should print the section of code with the crashing function and/or variable underlined. The stuff below in the kernel is no so useful to see.

> On Oct 2, 2017, at 5:49 PM, Roman Haefeli <reduzent at gmail.com> wrote:
> 
> On Mon, 2017-10-02 at 13:14 +0200, Dan Wilcox wrote:
>> If you want more info, you can compile pd with debugging symbols
>> added via:
>> 
>> ./configure --enable-debug CFLAGS="-g"
>> 
>> I'm going to add the "-g" back to the default debug settings as it's
>> needed for useful stack frame info, etc.
>> 
>> If you have the Xcode command line tools installed (not the Xcode
>> app!), you can use lldb for similar info: http://lldb.llvm.org/lldb-
>> gdb.html. It can give you the exact location in the code where the
>> crash occurred.
> 
> Thanks, Dan. 
> 
> Just in case this is useful to anyone, here is the backtrace on macOS:
> 
> $ lldb -- pd -stderr -rt -jack -jackname tpf-client-1 -nojackconnect -inchannels 8 -outchannels 64 -open /Users/itz/pd-src/tpf/pd-tools/tpf-client.pd 
> (lldb) target create "pd"
> Current executable set to 'pd' (x86_64).
> (lldb) settings set -- target.run-args  "-stderr" "-rt" "-jack" "-jackname" "tpf-client-1" "-nojackconnect" "-inchannels" "8" "-outchannels" "64" "-open" "/Users/itz/pd-src/tpf/pd-tools/tpf-client.pd"
> (lldb) run
> Process 28469 launched: '/usr/local/bin/pd' (x86_64)
> Pt_Start() called
> slipenc: maximum packet length is 16384
> iemnet - networking with Pd: [tcpclient]
>         compiled on Dec 14 2015 at 14:29:01
>         copyright © 2010-2015 IOhannes m zmoelnig, IEM
>         based on mrpeach/net, based on maxlib
> slipdec: maximum packet length is 16384
> iemnet - networking with Pd: [udpclient]
>         compiled on Dec 14 2015 at 14:29:01
>         copyright © 2010-2015 IOhannes m zmoelnig, IEM
>         based on mrpeach/net, based on maxlib
> pd(28469,0x7fff79118000) malloc: *** error for object 0x1020f0c08: incorrect checksum for freed object - object was probably modified after being freed.
> *** set a breakpoint in malloc_error_break to debug
> Process 28469 stopped
> * thread #1: tid = 0x1c38a, 0x00007fff97b02f06 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
>     frame #0: 0x00007fff97b02f06 libsystem_kernel.dylib`__pthread_kill + 10
> libsystem_kernel.dylib`__pthread_kill:
> ->  0x7fff97b02f06 <+10>: jae    0x7fff97b02f10            ; <+20>
>     0x7fff97b02f08 <+12>: movq   %rax, %rdi
>     0x7fff97b02f0b <+15>: jmp    0x7fff97afd7cd            ; cerror_nocancel
>     0x7fff97b02f10 <+20>: retq   
> (lldb) bt
> * thread #1: tid = 0x1c38a, 0x00007fff97b02f06 libsystem_kernel.dylib`__pthread_kill + 10, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
>   * frame #0: 0x00007fff97b02f06 libsystem_kernel.dylib`__pthread_kill + 10
>     frame #1: 0x00007fff8eb604ec libsystem_pthread.dylib`pthread_kill + 90
>     frame #2: 0x00007fff99dee6df libsystem_c.dylib`abort + 129
>     frame #3: 0x00007fff8909b396 libsystem_malloc.dylib`szone_error + 626
>     frame #4: 0x00007fff89091373 libsystem_malloc.dylib`small_free_list_remove_ptr + 152
>     frame #5: 0x00007fff8908fa7c libsystem_malloc.dylib`szone_free_definite_size + 1790
>     frame #6: 0x000000010007f28c pd`freebytes(fatso=0x00000001020cae00, nbytes=2048) + 44 at m_memory.c:79
>     frame #7: 0x000000010001f069 pd`signal_cleanup + 105 at d_ugen.c:398
>     frame #8: 0x000000010001f669 pd`ugen_stop + 89 at d_ugen.c:597
>     frame #9: 0x000000010002d62e pd`canvas_stop_dsp + 30 at g_canvas.c:1165
>     frame #10: 0x000000010002cad8 pd`canvas_suspend_dsp + 40 at g_canvas.c:1181
>     frame #11: 0x000000010001eaf0 pd`block_set(x=0x000000010041bd40, fcalcsize=384, foverlap=1, fupsample=1) + 48 at d_ugen.c:175
>     frame #12: 0x000000010007d671 pd`pd_typedmess(x=0x000000010041bd40, s=0x000000010030bc60, argc=0, argv=0x00007fff5fbedcf0) + 1425 at m_class.c:960
>     frame #13: 0x00000001000805bf pd`outlet_anything(x=0x000000010041c470, s=0x000000010030bc60, argc=3, argv=0x00007fff5fbedcc0) + 111 at m_obj.c:422
>     frame #14: 0x00000001000620bf pd`messresponder_anything(x=0x000000010041c7d0, s=0x000000010030bc60, argc=3, argv=0x00007fff5fbedcc0) + 47 at g_text.c:339
>     frame #15: 0x000000010007d832 pd`pd_typedmess(x=0x000000010041c7d0, s=0x000000010030bc60, argc=3, argv=0x00007fff5fbedcc0) + 1874 at m_class.c:981
>     frame #16: 0x000000010007696f pd`binbuf_eval(x=0x000000010041c680, target=0x000000010041c7d0, argc=1, argv=0x00007fff5fbee820) + 2079 at m_binbuf.c:773
>     frame #17: 0x0000000100061c4e pd`message_list(x=0x000000010041c7a0, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 62 at g_text.c:363
>     frame #18: 0x000000010008221d pd`pd_list(x=0x000000010041c7a0, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 77 at m_pd.c:288
>     frame #19: 0x000000010008051f pd`outlet_list(x=0x000000010041c740, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 111 at m_obj.c:411
>     frame #20: 0x00000001000a143d pd`trigger_list(x=0x000000010041c6d0, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 413 at x_connective.c:1033
>     frame #21: 0x000000010008221d pd`pd_list(x=0x000000010041c6d0, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 77 at m_pd.c:288
>     frame #22: 0x000000010008051f pd`outlet_list(x=0x000000010041c600, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 111 at m_obj.c:411
>     frame #23: 0x000000010004862f pd`vinlet_list(x=0x000000010041c510, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 47 at g_io.c:76
>     frame #24: 0x000000010008221d pd`pd_list(x=0x000000010041c510, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 77 at m_pd.c:288
>     frame #25: 0x000000010007fee3 pd`inlet_list(x=0x000000010041c5d0, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 179 at m_obj.c:142
>     frame #26: 0x000000010008221d pd`pd_list(x=0x000000010041c5d0, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 77 at m_pd.c:288
>     frame #27: 0x000000010008051f pd`outlet_list(x=0x000000010041d8f0, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 111 at m_obj.c:411
>     frame #28: 0x00000001000a143d pd`trigger_list(x=0x000000010041d870, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 413 at x_connective.c:1033
>     frame #29: 0x000000010008221d pd`pd_list(x=0x000000010041d870, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 77 at m_pd.c:288
>     frame #30: 0x000000010008051f pd`outlet_list(x=0x000000010041d600, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 111 at m_obj.c:411
>     frame #31: 0x000000010004862f pd`vinlet_list(x=0x000000010041d510, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 47 at g_io.c:76
>     frame #32: 0x000000010008221d pd`pd_list(x=0x000000010041d510, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 77 at m_pd.c:288
>     frame #33: 0x000000010007fee3 pd`inlet_list(x=0x000000010041d5d0, s=0x00000001001221b0, argc=1, argv=0x00007fff5fbee820) + 179 at m_obj.c:142
>     frame #34: 0x000000010008221d pd`pd_list(x=0x000000010041d5d0, s=0x0000000000000000, argc=1, argv=0x00007fff5fbee820) + 77 at m_pd.c:288
>     frame #35: 0x000000010008051f pd`outlet_list(x=0x000000010041e380, s=0x0000000000000000, argc=1, argv=0x00007fff5fbee820) + 111 at m_obj.c:411
>     frame #36: 0x000000010009f11f pd`route_anything(x=0x000000010041e2f0, sel=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 191 at x_connective.c:529
>     frame #37: 0x000000010007d832 pd`pd_typedmess(x=0x000000010041e2f0, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 1874 at m_class.c:981
>     frame #38: 0x00000001000805bf pd`outlet_anything(x=0x000000010041a220, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 111 at m_obj.c:422
>     frame #39: 0x000000010004866f pd`vinlet_anything(x=0x000000010041a130, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 47 at g_io.c:81
>     frame #40: 0x000000010007d832 pd`pd_typedmess(x=0x000000010041a130, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 1874 at m_class.c:981
>     frame #41: 0x0000000100080011 pd`inlet_anything(x=0x000000010041a1f0, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 113 at m_obj.c:157
>     frame #42: 0x000000010007d832 pd`pd_typedmess(x=0x000000010041a1f0, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 1874 at m_class.c:981
>     frame #43: 0x00000001000805bf pd`outlet_anything(x=0x0000000100427850, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 111 at m_obj.c:422
>     frame #44: 0x00000001000620bf pd`messresponder_anything(x=0x00000001004278e0, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 47 at g_text.c:339
>     frame #45: 0x000000010007d832 pd`pd_typedmess(x=0x00000001004278e0, s=0x000000010032fc50, argc=1, argv=0x00007fff5fbee820) + 1874 at m_class.c:981
>     frame #46: 0x000000010007696f pd`binbuf_eval(x=0x0000000100427840, target=0x00000001004278e0, argc=1, argv=0x00007fff5fbee880) + 2079 at m_binbuf.c:773
>     frame #47: 0x0000000100061bb3 pd`message_float(x=0x00000001004278b0, f=384) + 67 at g_text.c:351
>     frame #48: 0x0000000100082142 pd`pd_float(x=0x00000001004278b0, f=384) + 50 at m_pd.c:273
>     frame #49: 0x00000001000803f2 pd`outlet_float(x=0x0000000100427df0, f=384) + 98 at m_obj.c:389
>     frame #50: 0x0000000100048a33 pd`voutlet_float(x=0x0000000100427d30, f=384) + 35 at g_io.c:334
>     frame #51: 0x0000000100082142 pd`pd_float(x=0x0000000100427d30, f=384) + 50 at m_pd.c:273
>     frame #52: 0x000000010007fcd7 pd`inlet_float(x=0x0000000100427e10, f=384) + 151 at m_obj.c:112
>     frame #53: 0x0000000100082142 pd`pd_float(x=0x0000000100427e10, f=384) + 50 at m_pd.c:273
>     frame #54: 0x00000001000803f2 pd`outlet_float(x=0x0000000100427cc0, f=384) + 98 at m_obj.c:389
>     frame #55: 0x000000010009919b pd`binop1_times_bang(x=0x0000000100427c80) + 43 at x_arithmetic.c:81
>     frame #56: 0x0000000100082108 pd`pd_bang(x=0x0000000100427c80) + 40 at m_pd.c:268
>     frame #57: 0x0000000100080278 pd`outlet_bang(x=0x0000000100427c30) + 88 at m_obj.c:363
>     frame #58: 0x00000001000a136b pd`trigger_list(x=0x0000000100427bd0, s=0x0000000000000000, argc=1, argv=0x00007fff5fbeeab0) + 203 at x_connective.c:1023
>     frame #59: 0x00000001000a1518 pd`trigger_float(x=0x0000000100427bd0, f=3) + 56 at x_connective.c:1067
>     frame #60: 0x0000000100082142 pd`pd_float(x=0x0000000100427bd0, f=3) + 50 at m_pd.c:273
>     frame #61: 0x00000001000803f2 pd`outlet_float(x=0x0000000100427ec0, f=3) + 98 at m_obj.c:389
>     frame #62: 0x00000001000a0223 pd`receive_float(x=0x0000000100427e80, f=3) + 35 at x_connective.c:305
>     frame #63: 0x0000000100082142 pd`pd_float(x=0x0000000100427e80, f=3) + 50 at m_pd.c:273
>     frame #64: 0x00000001000819a9 pd`bindlist_float(x=0x00000001004229d0, f=3) + 57 at m_pd.c:80
>     frame #65: 0x0000000100082142 pd`pd_float(x=0x00000001004229d0, f=3) + 50 at m_pd.c:273
>     frame #66: 0x00000001000a002a pd`send_float(x=0x00000001004114e0, f=3) + 58 at x_connective.c:244
>     frame #67: 0x0000000100082142 pd`pd_float(x=0x00000001004114e0, f=3) + 50 at m_pd.c:273
>     frame #68: 0x00000001000803f2 pd`outlet_float(x=0x0000000100411490, f=3) + 98 at m_obj.c:389
>     frame #69: 0x000000010009f4a3 pd`change_float(x=0x0000000100411450, f=3) + 83 at x_connective.c:1415
>     frame #70: 0x0000000100082142 pd`pd_float(x=0x0000000100411450, f=3) + 50 at m_pd.c:273
>     frame #71: 0x00000001000803f2 pd`outlet_float(x=0x000000010035a620, f=3) + 98 at m_obj.c:389
>     frame #72: 0x0000000100048a33 pd`voutlet_float(x=0x000000010035a560, f=3) + 35 at g_io.c:334
>     frame #73: 0x0000000100082142 pd`pd_float(x=0x000000010035a560, f=3) + 50 at m_pd.c:273
>     frame #74: 0x000000010007fcd7 pd`inlet_float(x=0x000000010035a640, f=3) + 151 at m_obj.c:112
>     frame #75: 0x0000000100082142 pd`pd_float(x=0x000000010035a640, f=3) + 50 at m_pd.c:273
>     frame #76: 0x00000001000803f2 pd`outlet_float(x=0x000000010035a430, f=3) + 98 at m_obj.c:389
>     frame #77: 0x00000001000a195a pd`moses_float(x=0x000000010035a3c0, f=3) + 58 at x_connective.c:1177
>     frame #78: 0x0000000100082142 pd`pd_float(x=0x000000010035a3c0, f=3) + 50 at m_pd.c:273
>     frame #79: 0x00000001000803f2 pd`outlet_float(x=0x000000010035a010, f=3) + 98 at m_obj.c:389
>     frame #80: 0x0000000100062013 pd`messresponder_float(x=0x000000010035a170, f=3) + 35 at g_text.c:322
>     frame #81: 0x0000000100082142 pd`pd_float(x=0x000000010035a170, f=3) + 50 at m_pd.c:273
>     frame #82: 0x0000000100076996 pd`binbuf_eval(x=0x000000010035a190, target=0x000000010035a170, argc=16, argv=0x0000000101811400) + 2118 at m_binbuf.c:776
>     frame #83: 0x0000000100061c4e pd`message_list(x=0x000000010035a140, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 62 at g_text.c:363
>     frame #84: 0x000000010008221d pd`pd_list(x=0x000000010035a140, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #85: 0x000000010008051f pd`outlet_list(x=0x0000000100359f30, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 111 at m_obj.c:411
>     frame #86: 0x000000010004862f pd`vinlet_list(x=0x0000000100359e40, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 47 at g_io.c:76
>     frame #87: 0x000000010008221d pd`pd_list(x=0x0000000100359e40, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #88: 0x000000010007fee3 pd`inlet_list(x=0x0000000100359f00, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 179 at m_obj.c:142
>     frame #89: 0x000000010008221d pd`pd_list(x=0x0000000100359f00, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #90: 0x000000010008051f pd`outlet_list(x=0x0000000100411380, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 111 at m_obj.c:411
>     frame #91: 0x00000001000a143d pd`trigger_list(x=0x0000000100411290, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 413 at x_connective.c:1033
>     frame #92: 0x000000010008221d pd`pd_list(x=0x0000000100411290, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #93: 0x000000010008051f pd`outlet_list(x=0x0000000100356dc0, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 111 at m_obj.c:411
>     frame #94: 0x000000010004862f pd`vinlet_list(x=0x0000000100356cd0, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 47 at g_io.c:76
>     frame #95: 0x000000010008221d pd`pd_list(x=0x0000000100356cd0, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #96: 0x000000010007fee3 pd`inlet_list(x=0x0000000100356d90, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 179 at m_obj.c:142
>     frame #97: 0x000000010008221d pd`pd_list(x=0x0000000100356d90, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #98: 0x000000010008051f pd`outlet_list(x=0x0000000100504940, s=0x00000001001221b0, argc=16, argv=0x0000000101811400) + 111 at m_obj.c:411
>     frame #99: 0x00000001000a54a9 pd`list_split_list(x=0x00000001005048f0, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 137 at x_list.c:577
>     frame #100: 0x000000010008221d pd`pd_list(x=0x00000001005048f0, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #101: 0x000000010008051f pd`outlet_list(x=0x0000000100504890, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 111 at m_obj.c:411
>     frame #102: 0x00000001000a143d pd`trigger_list(x=0x0000000100504810, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 413 at x_connective.c:1033
>     frame #103: 0x000000010008221d pd`pd_list(x=0x0000000100504810, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #104: 0x000000010008051f pd`outlet_list(x=0x00000001003556c0, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 111 at m_obj.c:411
>     frame #105: 0x00000001000a182f pd`spigot_list(x=0x0000000100355650, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 79 at x_connective.c:1135
>     frame #106: 0x000000010008221d pd`pd_list(x=0x0000000100355650, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #107: 0x000000010008051f pd`outlet_list(x=0x0000000100352dc0, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 111 at m_obj.c:411
>     frame #108: 0x00000001000a02bf pd`receive_list(x=0x0000000100352d80, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 47 at x_connective.c:320
>     frame #109: 0x000000010008221d pd`pd_list(x=0x0000000100352d80, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #110: 0x00000001000a00f6 pd`send_list(x=0x0000000103006f10, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 70 at x_connective.c:259
>     frame #111: 0x000000010008221d pd`pd_list(x=0x0000000103006f10, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 77 at m_pd.c:288
>     frame #112: 0x000000010008051f pd`outlet_list(x=0x0000000103006bf0, s=0x00000001001221b0, argc=784, argv=0x0000000101811400) + 111 at m_obj.c:411
>     frame #113: 0x0000000109cc2e3b libiemnet.dylib`pollfun + 139
>     frame #114: 0x00000001000892a3 pd`sys_domicrosleep(microsec=0, pollem=1) + 579 at s_inter.c:230
>     frame #115: 0x000000010008a934 pd`sys_pollgui + 20 at s_inter.c:902
>     frame #116: 0x000000010008358e pd`m_pollingscheduler + 462 at m_sched.c:523
>     frame #117: 0x00000001000832e2 pd`m_mainloop + 50 at m_sched.c:596
>     frame #118: 0x000000010008dcc6 pd`sys_main(argc=13, argv=0x00007fff5fbffa98) + 678 at s_main.c:385
>     frame #119: 0x0000000100086a02 pd`main(argc=13, argv=0x00007fff5fbffa98) + 34 at s_entry.c:32
>     frame #120: 0x00007fff9c4e85ad libdyld.dylib`start + 1
>     frame #121: 0x00007fff9c4e85ad libdyld.dylib`start + 1
> 
> 
> 
> Roman

--------
Dan Wilcox
@danomatika <http://twitter.com/danomatika>
danomatika.com <http://danomatika.com/>
robotcowboy.com <http://robotcowboy.com/>



-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20171002/6772bbf0/attachment-0001.html>


More information about the Pd-list mailing list