Hmm, I found `set debug jit 1` but that has no effect. http://llvm.org/docs/DebuggingJITedCode.html seems to think that it should work with my version of gdb (7.10).
It does work in lldb though: (lldb) bt * thread #1: tid = 15931, 0x00007ffff671e4ca libjulia-debug.so`jl_breakpoint(v=0x00007ffdf0928018) + 27 at builtins.c:1661, name = 'julia', stop reason = breakpoint 2.1 * frame #0: 0x00007ffff671e4ca libjulia-debug.so`jl_breakpoint(v=0x00007ffdf0928018) + 27 at builtins.c:1661 frame #1: 0x00007ffff7eb401b JIT(0x153b1a0)`julia_push!_23438 + 395 at Hamt.jl:49 frame #2: 0x00007ffff7eb7001 JIT(0x153b1a0)`julia_f_23429 + 1441 at Hamt.jl:105 On 5 January 2016 at 16:18, Keno Fischer <kfisc...@college.harvard.edu> wrote: > Hmm, I don't know. I know the DWARF information is there, but I'm not sure > why GDB isn't picking it up. I'll add it to my list of things to check, but > for now I don't know what the issue is. > There's some logging in gdb (I don't quite remember the option, but apropos > jit will probably tell you) that might tell you whether it detects the jit > code and just doesn't use it for some reason or whether it doesn't pick up > on the breakpoint. On the julia side, the registration with GDB should > happen here > (https://github.com/JuliaLang/julia/blob/ce1e856975af4dc8fc12dac8f5526c92feda60cb/src/jitlayers.cpp#L178), > in latest master at least. > > On Tue, Jan 5, 2016 at 4:23 PM, 'Jamie Brandon' via julia-users > <julia-users@googlegroups.com> wrote: >> >> Ok, so I built successfully and versioninfo shows LLVM 3.7.1. I do get >> debug info for Julia itself, but I'm still seeing nothing for my own >> code. I can live without I guess - wait for Julia 0.5? >> >> (gdb) bt >> #0 jl_breakpoint (v=0x7ffdf0928018) at >> /home/jamie/julia/src/builtins.c:1659 >> #1 0x00007ffff7eb401b in ?? () >> #2 0x00007fffffffbe40 in ?? () >> #3 0x00007ffdf3f53f20 in ?? () >> #4 0x69f839e0ba7ea7c4 in ?? () >> #5 0x00007fffffffc7a8 in ?? () >> #6 0x0000000000000002 in ?? () >> #7 0x000000000000000a in ?? () >> #8 0x00007fffffffc6f8 in ?? () >> #9 0x00007ffdf40c0e90 in ?? () >> #10 0x0000000000000000 in ?? () >> >> jamie@wanderer:~/julia$ ./julia >> _ >> _ _ _(_)_ | A fresh approach to technical computing >> (_) | (_) (_) | Documentation: http://docs.julialang.org >> _ _ _| |_ __ _ | Type "?help" for help. >> | | | | | | |/ _` | | >> | | |_| | | | (_| | | Version 0.5.0-dev+1985 (2016-01-04 00:07 UTC) >> _/ |\__'_|_|_|\__'_| | Commit 1d46ca4* (1 day old master) >> |__/ | x86_64-linux-gnu >> >> julia> versioninfo(true) >> Julia Version 0.5.0-dev+1985 >> Commit 1d46ca4* (2016-01-04 00:07 UTC) >> DEBUG build >> Platform Info: >> System: Linux (x86_64-linux-gnu) >> CPU: Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz >> WORD_SIZE: 64 >> Ubuntu 15.10 >> uname: Linux 4.2.0-22-generic #27-Ubuntu SMP Thu Dec 17 22:57:08 UTC >> 2015 x86_64 x86_64 >> Memory: 7.709388732910156 GB (192.3671875 MB free) >> Uptime: 143526.0 sec >> Load Avg: 0.61181640625 1.06640625 4.41552734375 >> Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz: >> speed user nice sys idle >> irq >> #1 3000 MHz 891057 s 6792 s 81300 s 4590884 s >> 0 s >> #2 2798 MHz 891458 s 6264 s 70433 s 747529 s >> 0 s >> #3 2700 MHz 921910 s 6962 s 73433 s 743126 s >> 0 s >> #4 2700 MHz 894255 s 7091 s 68062 s 743781 s >> 0 s >> >> BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Haswell) >> LAPACK: libopenblas64_ >> LIBM: libopenlibm >> LLVM: libLLVM-3.7.1 >> Environment: >> TERM = xterm-256color >> XDG_SESSION_PATH = /org/freedesktop/DisplayManager/Session1 >> XDG_SEAT_PATH = /org/freedesktop/DisplayManager/Seat0 >> DEFAULTS_PATH = /usr/share/gconf/i3.default.path >> PATH = >> /home/jamie/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games >> MANDATORY_PATH = /usr/share/gconf/i3.mandatory.path >> HOME = /home/jamie >> >> Package Directory: /home/jamie/.julia/v0.5 >> No packages installed >> >> On 5 January 2016 at 14:30, Keno Fischer <kfisc...@college.harvard.edu> >> wrote: >> > Yeah, that should work. >> > >> > On Tue, Jan 5, 2016 at 3:28 PM, 'Jamie Brandon' via julia-users >> > <julia-users@googlegroups.com> wrote: >> >> >> >> Ooops, MARCH=native >> >> >> >> On 5 January 2016 at 14:26, Jamie Brandon <jamii...@googlemail.com> >> >> wrote: >> >> > Ok, so I currently have Make.user with: >> >> > >> >> > LLVM_VER=3.7.1 >> >> > ARCH=native >> >> > >> >> > and I'm building with `make debug`. Does that seem right? >> >> > >> >> > On 5 January 2016 at 14:18, Keno Fischer >> >> > <kfisc...@college.harvard.edu> >> >> > wrote: >> >> >> However, taking another look at your backtrace, that's missing debug >> >> >> info in >> >> >> the runtime (rather than any generated code), so you'd have to check >> >> >> whether >> >> >> your version of libjulia is built with debug info. >> >> >> >> >> >> On Tue, Jan 5, 2016 at 3:14 PM, Isaiah Norton >> >> >> <isaiah.nor...@gmail.com> >> >> >> wrote: >> >> >>> >> >> >>> sorry, autocorrect messed that up: >> >> >>> `make -C deps distclean-llvm` >> >> >>> >> >> >>> On Tue, Jan 5, 2016 at 9:08 AM, Isaiah Norton >> >> >>> <isaiah.nor...@gmail.com> >> >> >>> wrote: >> >> >>>> >> >> >>>> Probably need 'make -C steps distclean-llvm' before rebuild. >> >> >>>> >> >> >>>> >> >> >>>> On Tuesday, January 5, 2016, Jamie Brandon >> >> >>>> <jamii...@googlemail.com> >> >> >>>> wrote: >> >> >>>>> >> >> >>>>> I'll give that a go. Thanks :) >> >> >>>>> >> >> >>>>> On Tuesday, 5 January 2016 14:00:49 UTC, Keno Fischer wrote: >> >> >>>>>> >> >> >>>>>> This only works with new versions of LLVM. We're in the middle >> >> >>>>>> of >> >> >>>>>> transitioning to the new LLVM on master, so I think at this >> >> >>>>>> point, >> >> >>>>>> just >> >> >>>>>> putting LLVM_VER=3.7.1 in your Make.user should be sufficient. >> >> >>>>>> >> >> >>>>>> On Tue, Jan 5, 2016 at 2:50 PM, Jamie Brandon >> >> >>>>>> <jami...@googlemail.com> >> >> >>>>>> wrote: >> >> >>>>>>> >> >> >>>>>>> I've seen it mentioned (eg in >> >> >>>>>>> >> >> >>>>>>> >> >> >>>>>>> https://groups.google.com/forum/#!msg/julia-dev/eBwqLqiZSPc/N0QlPMC015EJ) >> >> >>>>>>> that Julia can emit DWARF info for Julia functions. This does >> >> >>>>>>> not >> >> >>>>>>> seem to be >> >> >>>>>>> working for me (see gdb below and cachegrind attached). Is >> >> >>>>>>> there >> >> >>>>>>> something I >> >> >>>>>>> need to enable, or some dependency I need to update? >> >> >>>>>>> >> >> >>>>>>> Breakpoint 1, 0x00007ffff6edbff4 in jl_array_grow_end () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> (gdb) bt >> >> >>>>>>> #0 0x00007ffff6edbff4 in jl_array_grow_end () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #1 0x00007ffff6edc687 in jl_cell_1d_push () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #2 0x00007ffff6ede8a0 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #3 0x00007ffff6ede7e8 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #4 0x00007ffff6ede7e8 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #5 0x00007ffff6edd1c7 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #6 0x00007ffff6edea88 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #7 0x00007ffff6ede15b in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #8 0x00007ffff6eddcfa in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #9 0x00007ffff6ede7ce in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #10 0x00007ffff6edd1c7 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #11 0x00007ffff6edea88 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #12 0x00007ffff6eddcfa in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #13 0x00007ffff6eddcfa in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #14 0x00007ffff6eddab8 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #15 0x00007ffff6ede15b in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #16 0x00007ffff6ede15b in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #17 0x00007ffff6ee0534 in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #18 0x00007ffff6ee0b58 in jl_restore_system_image_data () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #19 0x00007ffff6ee0cdb in jl_restore_system_image () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #20 0x00007ffff6ed83cb in ?? () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #21 0x00007ffff6ed8d0c in julia_init () from >> >> >>>>>>> /usr/bin/../lib/x86_64-linux-gnu/julia/libjulia.so >> >> >>>>>>> #22 0x0000000000401743 in main (argc=1, argv=0x7fffffffe280) at >> >> >>>>>>> repl.c:594 >> >> >>>>>>> >> >> >>>>>>> julia> versioninfo(true) >> >> >>>>>>> Julia Version 0.4.2 >> >> >>>>>>> Commit bb73f34 (2015-12-06 21:47 UTC) >> >> >>>>>>> Platform Info: >> >> >>>>>>> System: Linux (x86_64-linux-gnu) >> >> >>>>>>> CPU: Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz >> >> >>>>>>> WORD_SIZE: 64 >> >> >>>>>>> Ubuntu 15.10 >> >> >>>>>>> uname: Linux 4.2.0-22-generic #27-Ubuntu SMP Thu Dec 17 >> >> >>>>>>> 22:57:08 >> >> >>>>>>> UTC >> >> >>>>>>> 2015 x86_64 x86_64 >> >> >>>>>>> Memory: 7.709388732910156 GB (74.875 MB free) >> >> >>>>>>> Uptime: 138002.0 sec >> >> >>>>>>> Load Avg: 0.8466796875 0.62451171875 0.53955078125 >> >> >>>>>>> Intel(R) Core(TM) i7-4500U CPU @ 1.80GHz: >> >> >>>>>>> speed user nice sys >> >> >>>>>>> idle >> >> >>>>>>> irq >> >> >>>>>>> #1 2984 MHz 596284 s 6481 s 60313 s 4356735 >> >> >>>>>>> s >> >> >>>>>>> 0 s >> >> >>>>>>> #2 2982 MHz 605240 s 5964 s 50700 s 502866 >> >> >>>>>>> s >> >> >>>>>>> 0 s >> >> >>>>>>> #3 2700 MHz 642616 s 6513 s 53248 s 492041 >> >> >>>>>>> s >> >> >>>>>>> 0 s >> >> >>>>>>> #4 2700 MHz 605240 s 6628 s 48010 s 502254 >> >> >>>>>>> s >> >> >>>>>>> 0 s >> >> >>>>>>> >> >> >>>>>>> BLAS: libopenblas (NO_LAPACKE DYNAMIC_ARCH NO_AFFINITY >> >> >>>>>>> Haswell) >> >> >>>>>>> LAPACK: liblapack.so.3 >> >> >>>>>>> LIBM: libopenlibm >> >> >>>>>>> LLVM: libLLVM-3.3 >> >> >>>>>>> Environment: >> >> >>>>>>> TERM = xterm-256color >> >> >>>>>>> XDG_SESSION_PATH = /org/freedesktop/DisplayManager/Session1 >> >> >>>>>>> XDG_SEAT_PATH = /org/freedesktop/DisplayManager/Seat0 >> >> >>>>>>> DEFAULTS_PATH = /usr/share/gconf/i3.default.path >> >> >>>>>>> PATH = >> >> >>>>>>> >> >> >>>>>>> >> >> >>>>>>> /home/jamie/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games >> >> >>>>>>> MANDATORY_PATH = /usr/share/gconf/i3.mandatory.path >> >> >>>>>>> HOME = /home/jamie >> >> >>>>>>> >> >> >>>>>> >> >> >>> >> >> >> >> > >> > > >