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 <[email protected]> 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
> <[email protected]> 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 <[email protected]>
>> wrote:
>> > Yeah, that should work.
>> >
>> > On Tue, Jan 5, 2016 at 3:28 PM, 'Jamie Brandon' via julia-users
>> > <[email protected]> wrote:
>> >>
>> >> Ooops, MARCH=native
>> >>
>> >> On 5 January 2016 at 14:26, Jamie Brandon <[email protected]>
>> >> 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
>> >> > <[email protected]>
>> >> > 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
>> >> >> <[email protected]>
>> >> >> wrote:
>> >> >>>
>> >> >>> sorry, autocorrect messed that up:
>> >> >>> `make -C deps distclean-llvm`
>> >> >>>
>> >> >>> On Tue, Jan 5, 2016 at 9:08 AM, Isaiah Norton
>> >> >>> <[email protected]>
>> >> >>> wrote:
>> >> >>>>
>> >> >>>> Probably need 'make -C steps distclean-llvm' before rebuild.
>> >> >>>>
>> >> >>>>
>> >> >>>> On Tuesday, January 5, 2016, Jamie Brandon
>> >> >>>> <[email protected]>
>> >> >>>> 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
>> >> >>>>>> <[email protected]>
>> >> >>>>>> 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
>> >> >>>>>>>
>> >> >>>>>>
>> >> >>>
>> >> >>
>> >
>> >
>
>