[L2Ork-dev] How to debug Windows and OSX

Ivica Ico Bukvic ico at vt.edu
Tue Apr 7 03:42:43 EDT 2020


So gdb appears to be useless here on both Linux and Windows. Valgrind, 
on the other hand, detected the access outside the allocated memory. It 
is as if the last binbuf atom that reads from a file is a null one and 
should not be read as it will result in a segfault on Windows and Linux 
(although on Linux only if it runs under Valgrind, go figure). The 
improved version is now on the pd-l2ork 1.x branch (see x_preset.c).

On 4/7/2020 1:27 AM, Ivica Bukvic wrote:
> Another, perhaps more informative error output with Windows version 
> compiled without any optimizations. Looks like strcmp somehow has 
> access violation while trying to return the pointer to symbol inside 
> an atom (atom_getsymbol). No idea as to why... BTW, I wish gdb 
> debugger on Windows was a bit more verbose (e.g. outputting a line 
> number). Am I missing something?
>
> #0  0x758a9bac in strcmp () from C:\WINDOWS\System32\msvcrt.dll
> #1  0x67623719 in preset_hub_read ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #2  0x67621523 in preset_node_request_hub_read ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #3  0x675a9774 in pd_typedmess ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #4  0x675aae20 in pd!outlet_anything ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #5  0x6754d6f6 in pd!canvas_objfor ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #6  0x675a9983 in pd_typedmess ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #7  0x675ae368 in pd!binbuf_eval ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #8  0x6754d828 in pd!messresponder_getglist ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #9  0x675a7d0b in pd_list () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #10 0x675aad9f in pd!outlet_list ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #11 0x675de368 in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #12 0x675de482 in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #13 0x675a7cb7 in pd_symbol ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #14 0x675aa804 in pd!obj_list ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #15 0x675de4d9 in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #16 0x675a7d0b in pd_list () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #17 0x675aad9f in pd!outlet_list ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #18 0x67577285 in vinlet_dspprolog ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #19 0x675a7d0b in pd_list () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #20 0x675aa27e in signalinlet_new ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #21 0x675a7d0b in pd_list () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #22 0x675aad9f in pd!outlet_list ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #23 0x675e1aec in pd!info_out ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #24 0x675e202e in pd!canvasinfo_dir ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #25 0x675a9436 in pd_typedmess ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #26 0x675aae20 in pd!outlet_anything ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #27 0x6754d6f6 in pd!canvas_objfor ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #28 0x675a9983 in pd_typedmess ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #29 0x675ae368 in pd!binbuf_eval ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #30 0x6754d730 in pd!messresponder_getglist ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #31 0x675a7c51 in pd_bang () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #32 0x675aab42 in pd!outlet_bang ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #33 0x675def79 in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #34 0x675df498 in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #35 0x675a7c51 in pd_bang () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #36 0x675aab42 in pd!outlet_bang ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #37 0x6757691e in pd!g_template_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #38 0x675a7c51 in pd_bang () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #39 0x675a9ec1 in signalinlet_new ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #40 0x675a7c51 in pd_bang () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #41 0x675aab42 in pd!outlet_bang ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #42 0x675def79 in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #43 0x675df510 in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #44 0x675a7c73 in pd_float () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #45 0x675aac3c in pd!outlet_float ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #46 0x675dcf24 in pd!bang_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #47 0x675a7c73 in pd_float () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #48 0x675ae394 in pd!binbuf_eval ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #49 0x6754d828 in pd!messresponder_getglist ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #50 0x675a7d0b in pd_list () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #51 0x675aad9f in pd!outlet_list ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #52 0x675de368 in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #53 0x675de43c in route_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #54 0x675a7c73 in pd_float () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #55 0x675aac3c in pd!outlet_float ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #56 0x675a7c73 in pd_float () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #57 0x675aa04b in signalinlet_new ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #58 0x675a7c73 in pd_float () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #59 0x675aac3c in pd!outlet_float ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #60 0x675dcf24 in pd!bang_setup ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #61 0x675a7c73 in pd_float () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #62 0x67599775 in pd!iemgui_out_float ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #63 0x6759ce36 in radio_draw ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #64 0x6759ce5d in radio_draw ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #65 0x6759cf7b in radio_draw ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #66 0x6759cfc1 in radio_draw ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #67 0x67581ca9 in pd!gobj_click ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #68 0x67588bd2 in pd!canvas_doclick ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #69 0x6758a4dc in pd!canvas_mousedown ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #70 0x675a9724 in pd_typedmess ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #71 0x6757e6b3 in pd!guiconnect_notarget ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #72 0x675a9983 in pd_typedmess ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #73 0x675ae368 in pd!binbuf_eval ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #74 0x675b757d in socketreceiver_read ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #75 0x675b6bf0 in sys_getrealtime ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #76 0x675b6cab in sys_microsleep ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #77 0x675b42d8 in sched_tick ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #78 0x675b4422 in pd!m_mainloop ()
>    from C:\Program Files (x86)\Purr Data\bin\pd.dll
> #79 0x675b5023 in sys_main () from C:\Program Files (x86)\Purr 
> Data\bin\pd.dll
> #80 0x00402730 in ?? ()
> #81 0x00401386 in ?? ()
> #82 0x755a6359 in KERNEL32!BaseThreadInitThunk ()
>    from C:\WINDOWS\System32\kernel32.dll
> #83 0x776e7b74 in ntdll!RtlGetAppContainerNamedObjectPath ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> #84 0x776e7b44 in ntdll!RtlGetAppContainerNamedObjectPath ()
>    from C:\WINDOWS\SYSTEM32\ntdll.dll
> #85 0x00000000 in ?? ()
> (gdb)
> -- 
> Ivica Ico Bukvic, D.M.A.
> Director, Creativity + Innovation
> Institute for Creativity, Arts, and Technology
>
> Virginia Tech
> Creative Technologies in Music
> School of Performing Arts – 0141
> Blacksburg, VA 24061
> (540) 231-6139
> ico at vt.edu  <mailto:ico at vt.edu>
>
> ci.icat.vt.edu  <http://ci.icat.vt.edu>
> www.icat.vt.edu  <http://www.icat.vt.edu>
> www.performingarts.vt.edu  <http://www.performingarts.vt.edu>
> l2ork.icat.vt.edu  <http://l2ork.icat.vt.edu>
> ico.bukvic.net  <http://ico.bukvic.net>
>
>
> On Mon, Apr 6, 2020 at 9:06 PM Ivica Ico Bukvic <ico at vt.edu 
> <mailto:ico at vt.edu>> wrote:
>
>     Another crasher output with preset_hub debug enabled. Looks like the
>     cutoff is seemingly random. I wonder if it has something to do with a
>     number of nested calls? In both cases we are pushing 40+? Nothing
>     else
>     obvious pops out and the same is not a problem on Linux at all...
>
>     <snip long list>
>
>          found preset? 0 found node? 1
>          data_count = 1 starting @ 293 out of 358
>          1st_element = 0.001000
>          atom
>          data = %node%
>          new node
>          atom
>          data = 2
>          loc length = 2
>          atom
>          data = 28
>          loc = 28
>          atom
>          data = 36
>          loc = 36
>          found matching node
>          atom
>          data = %preset%
>          new preset
>          atom
>          data = 1
>          preset 1
>          found preset? 0 found node? 1
>          data_count = 1 starting @ 300 out of 358
>          1st_element = 33.388901
>          atom
>          data = %node%
>          new node
>          atom
>          data = 2
>          loc length = 2
>          atom
>          data = 27
>          loc = 27
>          atom
>          data = 38
>          loc = 38
>          found matching node
>          atom
>          data = %preset%
>          new preset
>          atom
>          data = 1
>          preset 1
>          found preset? 0 found node? 1
>          data_count = 1 starting @ 307 out of 358
>          1st_element = 36.842098
>          atom
>          data = %node%
>          new node
>          atom
>          data = 2
>          loc length = 2
>          atom
>          data = 27
>          loc = 27
>          atom
>          data = 39
>          loc = 39
>          found matching node
>          atom
>          data = %preset%
>          new preset
>          atom
>          data = 1
>          preset 1
>          found preset? 0 found node? 1
>          data_count = 1 starting @ 314 out of 358
>          1st_element = 0.523600
>          atom
>          data = %node%
>          new node
>          atom
>          data = 2
>          loc length = 2
>          atom
>          data = 23
>          loc = 23
>          atom
>          data = 25
>          loc = 25
>          found matching node
>          atom
>          data = %preset%
>          new preset
>          atom
>          data = 1
>          preset 1
>          found preset? 0 found node? 1
>          data_count = 1 starting @ 321 out of 358
>          1st_element = 250.000000
>          atom
>          data = %node%
>          new node
>          atom
>          data = 2
>          loc length = 2
>          atom
>          data = 23
>          loc = 23
>          atom
>          data = 26
>          loc = 26
>          found matching node
>          atom
>          data = %preset%
>          new preset
>          atom
>          [Thread 3928.0x4658 exited with code 0]
>     [Thread 3928.0x1d74 exited with code 0]
>     [Thread 3928.0x43b8 exited with code 0]
>     [Thread 3928.0x8f8 exited with code 0]
>     [Thread 3928.0x1a00 exited with code 0]
>
>     Thread 1 received signal SIGSEGV, Segmentation fault.
>     0x675c01a9 in pd!atom_getsymbol ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     (gdb) back
>     #0  0x675c01a9 in pd!atom_getsymbol ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #1  0x676737f4 in preset_hub_read ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #2  0x675bda4f in pd_typedmess ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #3  0x675bf37f in pd!outlet_anything ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #4  0x675bd653 in pd_typedmess ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #5  0x675c7097 in pd!binbuf_eval ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #6  0x675bf2df in pd!outlet_list ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #7  0x67602725 in x_arithmetic_setup ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #8  0x675bf2df in pd!outlet_list ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #9  0x675be40f in zgetfn () from C:\Program Files (x86)\Purr
>     Data\bin\pd.dll
>     #10 0x675bf2df in pd!outlet_list ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #11 0x67608891 in pd!canvasinfo_dir ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #12 0x675bdb6a in pd_typedmess ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #13 0x675bf37f in pd!outlet_anything ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #14 0x675bd653 in pd_typedmess ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #15 0x675c7097 in pd!binbuf_eval ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #16 0x6754fe49 in pd!g_graph_setup ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #17 0x675bf003 in pd!outlet_bang ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #18 0x6760335b in x_arithmetic_setup ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #19 0x676037e7 in x_arithmetic_setup ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #20 0x675bf003 in pd!outlet_bang ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #21 0x675bf003 in pd!outlet_bang ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #22 0x6760335b in x_arithmetic_setup ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #23 0x67603777 in x_arithmetic_setup ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #24 0x675bf12b in pd!outlet_float ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #25 0x675c6e1e in pd!binbuf_eval ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #26 0x675bf2df in pd!outlet_list ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #27 0x67602725 in x_arithmetic_setup ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #28 0x675bf12b in pd!outlet_float ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #29 0x675be233 in zgetfn () from C:\Program Files (x86)\Purr
>     Data\bin\pd.dll
>     #30 0x675bf12b in pd!outlet_float ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #31 0x675b0012 in radio_draw_update ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #32 0x675b0b80 in radio_draw_update ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #33 0x675a37e5 in pd!canvas_doclick ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #34 0x675a4f18 in pd!canvas_mousedown ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #35 0x675bdb14 in pd_typedmess ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #36 0x675bd653 in pd_typedmess ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #37 0x675c7097 in pd!binbuf_eval ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #38 0x675cf7ce in socketreceiver_read ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #39 0x675cedb0 in sys_getblksize ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #40 0x675d140d in sys_pollgui ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #41 0x675cb20b in pd!m_mainloop ()
>         from C:\Program Files (x86)\Purr Data\bin\pd.dll
>     #42 0x675ce9e8 in sys_main () from C:\Program Files (x86)\Purr
>     Data\bin\pd.dll
>     #43 0x00402730 in ?? ()
>     #44 0x00401386 in ?? ()
>     #45 0x755a6359 in KERNEL32!BaseThreadInitThunk ()
>         from C:\WINDOWS\System32\kernel32.dll
>     #46 0x776e7b74 in ntdll!RtlGetAppContainerNamedObjectPath ()
>         from C:\WINDOWS\SYSTEM32\ntdll.dll
>     #47 0x776e7b44 in ntdll!RtlGetAppContainerNamedObjectPath ()
>         from C:\WINDOWS\SYSTEM32\ntdll.dll
>     #48 0x00000000 in ?? ()
>     (gdb)
>
>     -- 
>     Ivica Ico Bukvic, D.M.A.
>     Director, Creativity + Innovation
>     Institute for Creativity, Arts, and Technology
>
>     Virginia Tech
>     Creative Technologies in Music
>     School of Performing Arts – 0141
>     Blacksburg, VA 24061
>     (540) 231-6139
>     ico at vt.edu <mailto:ico at vt.edu>
>
>     www.icat.vt.edu <http://www.icat.vt.edu>
>     www.performingarts.vt.edu <http://www.performingarts.vt.edu>
>     l2ork.icat.vt.edu <http://l2ork.icat.vt.edu>
>     ico.bukvic.net <http://ico.bukvic.net>
>
-- 
Ivica Ico Bukvic, D.M.A.
Director, Creativity + Innovation
Institute for Creativity, Arts, and Technology

Virginia Tech
Creative Technologies in Music
School of Performing Arts – 0141
Blacksburg, VA 24061
(540) 231-6139
ico at vt.edu

www.icat.vt.edu
www.performingarts.vt.edu
l2ork.icat.vt.edu
ico.bukvic.net

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://disis.music.vt.edu/pipermail/l2ork-dev/attachments/20200407/ed320922/attachment-0001.html>


More information about the L2Ork-dev mailing list