JuliaDebug / Gallium.jl

The Julia debugger
Other
174 stars 23 forks source link

cannot import Gallium after importing PyPlot #174

Open CCWRoy opened 7 years ago

CCWRoy commented 7 years ago

Hey guys, I'm not sure if this should be filed with PyPlot or Gallium. I typed the following in the Julia REPL:

import PyPlot import Gallium

ERROR: InitError: MethodError: Cannot convert an object of type Void to an object of type UInt64 This may have arisen from a call to the constructor UInt64(...), since type constructors fall back to convert methods. in read(::ELF.SectionRef{ELF.ELFHandle{Base.AbstractIOBuffer{Array{UInt8,1}}},ELF.ELF64.SectionHeader}, ::Type{DWARF.CallFrameInfo.eh_frame_hdr}) at /home/roy/.julia/v0.5/DWARF/src/cfi.jl:103 in DWARF.CallFrameInfo.EhFrameRef{SR<:ObjFileBase.SectionRef}(::ELF.SectionRef{ELF.ELFHandle{Base.AbstractIOBuffer{Array{UInt8,1}}},ELF.ELF64.SectionHeader}, ::ELF.SectionRef{ELF.ELFHandle{Base.AbstractIOBuffer{Array{UInt8,1}}},ELF.ELF64.SectionHeader}) at /home/roy/.julia/v0.5/DWARF/src/cfi.jl:112 in mod_for_h(::ELF.ELFHandle{Base.AbstractIOBuffer{Array{UInt8,1}}}, ::Gallium.RemotePtr{Void,UInt64}, ::String) at /home/roy/.julia/v0.5/Gallium/src/modules.jl:496 in update_module!(::Gallium.LocalSession, ::Gallium.LazyJITModules{Dict{Gallium.RemotePtr{Void,intptrT},Any}}, ::Ptr{Void}, ::String) at /home/roy/.julia/v0.5/Gallium/src/modules.jl:282 in update_shlibs!(::Gallium.LocalSession, ::Gallium.LazyJITModules{Dict{Gallium.RemotePtr{Void,intptrT},Any}}) at /home/roy/.julia/v0.5/Gallium/src/modules.jl:297 in init() at /home/roy/.julia/v0.5/Gallium/src/Gallium.jl:908 in _include_from_serialized(::String) at ./loading.jl:150 in _require_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:187 in _require_search_from_serialized(::Int64, ::Symbol, ::String, ::Bool) at ./loading.jl:217 in require(::Symbol) at ./loading.jl:371 during initialization of module Gallium

If I imported Gallium before PyPlot, I wouldn't get such error. However, any calls to Gallium.breakpoints(g) followed by a call to g (any function) would still yield the same error.

I'm on Ubuntu 16.04, running Julia 0.5 with Gallium 0.0.4 and PyPlot 2.2.4. My versioninfo() is:

Julia Version 0.5.0 Commit 3c9d753 (2016-09-19 18:14 UTC) Platform Info: System: Linux (x86_64-linux-gnu) CPU: AMD A10-7870K Radeon R7, 12 Compute Cores 4C+8G WORD_SIZE: 64 BLAS: libopenblas (NO_LAPACKE DYNAMIC_ARCH NO_AFFINITY Prescott) LAPACK: liblapack.so.3 LIBM: libopenlibm LLVM: libLLVM-3.7.1 (ORCJIT, bdver3)

Keno commented 7 years ago

Does look like a Gallium issue. Possibly having trouble with one of the shared libraries PyPlot loaded.

Keno commented 7 years ago

Will take a look.