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
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
* frame #0: 0x00007fff97b02f06 libsystem_kernel.dylib__pthread_kill + 10 frame #1: 0x00007fff8eb604ec libsystem_pthread.dylib
pthread_kill + 90
frame #2: 0x00007fff99dee6df libsystem_c.dylibabort + 129 frame #3: 0x00007fff8909b396 libsystem_malloc.dylib
szone_error + 626
frame #4: 0x00007fff89091373 libsystem_malloc.dylibsmall_free_list_remove_ptr + 152 frame #5: 0x00007fff8908fa7c libsystem_malloc.dylib
szone_free_definite_size + 1790
frame #6: 0x000000010007f28c pdfreebytes(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 pdugen_stop + 89 at d_ugen.c:597 frame #9: 0x000000010002d62e pd
canvas_stop_dsp + 30 at g_canvas.c:1165
frame #10: 0x000000010002cad8 pdcanvas_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 pdpd_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 pdmessresponder_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 pdbinbuf_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 pdpd_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 pdtrigger_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 pdoutlet_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 pdpd_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 pdpd_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 pdtrigger_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 pdoutlet_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 pdpd_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 pdpd_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 pdroute_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 pdoutlet_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 pdpd_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 pdpd_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 pdmessresponder_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 pdbinbuf_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 pdpd_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 pdvoutlet_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 pdinlet_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 pdoutlet_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 pdpd_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 pdtrigger_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 pdpd_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 pdreceive_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 pdbindlist_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 pdsend_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 pdoutlet_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 pdpd_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 pdvoutlet_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 pdinlet_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 pdoutlet_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 pdpd_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 pdmessresponder_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 pdbinbuf_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 pdpd_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 pdvinlet_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 pdinlet_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 pdoutlet_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 pdpd_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 pdvinlet_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 pdinlet_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 pdoutlet_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 pdpd_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 pdtrigger_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 pdoutlet_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 pdpd_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 pdreceive_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 pdsend_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 pdoutlet_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 pdsys_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 pdm_pollingscheduler + 462 at m_sched.c:523 frame #117: 0x00000001000832e2 pd
m_mainloop + 50 at m_sched.c:596
frame #118: 0x000000010008dcc6 pdsys_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.dylibstart + 1 frame #121: 0x00007fff9c4e85ad libdyld.dylib
start + 1
Roman