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