Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Debugger crash while stepping over Zygote code #264

Closed
mbauman opened this issue Jun 30, 2020 · 1 comment · Fixed by JuliaDebug/JuliaInterpreter.jl#414
Closed

Debugger crash while stepping over Zygote code #264

mbauman opened this issue Jun 30, 2020 · 1 comment · Fixed by JuliaDebug/JuliaInterpreter.jl#414

Comments

@mbauman
Copy link

mbauman commented Jun 30, 2020

Hard to get a MWE, but this happened while se'ing over some Flux/Zygote code:

1|debug> se
In Pullback(Δ) at /home/mbauman/.julia/packages/Zygote/1GXzF/src/compiler/interface2.jl:38
 1  1 ─       $(Expr(:meta, :inline))
 2  │   %2  = (getfield)(#self#, :t)
 3  │   %3  = (getindex)(%2, 3)
 4  │   %4  = (getindex)(%2, 2)
>5  │   %5  = (getindex)(%2, 1)
 6  │   %6  = (%3)(Δ)
 7  │   %7  = (Zygote.gradindex)(%6, 3)
 8  │   %8  = (Zygote.gradindex)(%6, 4)
 9  │   %9  = (%4)(%8)

About to run: <(getindex)((Zygote.var"#358#back#184"{Zygote.var"#back#183"{:loss,Zygote.Context,Flux.Optimise.var"#1...>
1|debug> se
ERROR: TypeError: in typeassert, expected Array{Any,1}, got Array{Core.LineInfoNode,1}
Stacktrace:
 [1] linetable at /home/mbauman/.julia/packages/JuliaInterpreter/27fDA/src/utils.jl:270 [inlined]
 [2] linetable at /home/mbauman/.julia/packages/JuliaInterpreter/27fDA/src/utils.jl:272 [inlined]
 [3] whereis(::JuliaInterpreter.FrameCode, ::Int64) at /home/mbauman/.julia/packages/JuliaInterpreter/27fDA/src/utils.jl:307
 [4] whereis at /home/mbauman/.julia/packages/JuliaInterpreter/27fDA/src/utils.jl:311 [inlined] (repeats 2 times)
 [5] locinfo(::JuliaInterpreter.Frame) at /home/mbauman/.julia/packages/Debugger/Xr8bu/src/locationinfo.jl:7
 [6] print_status(::Base.TTY, ::JuliaInterpreter.Frame; force_lowered::Bool) at /home/mbauman/.julia/packages/Debugger/Xr8bu/src/printing.jl:123
 [7] (::Debugger.var"#10#19"{Debugger.DebuggerState,REPL.LineEdit.Prompt})(::REPL.LineEdit.MIState, ::Base.GenericIOBuffer{Array{UInt8,1}}, ::Bool) at /home/mbauman/.julia/packages/Debugger/Xr8bu/src/repl.jl:81
 [8] #invokelatest#1 at ./essentials.jl:712 [inlined]
 [9] invokelatest at ./essentials.jl:711 [inlined]
 [10] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface, ::REPL.LineEdit.MIState) at /home/mbauman/julia/release-1.4/usr/share/julia/stdlib/v1.4/REPL/src/LineEdit.jl:2354
 [11] run_interface(::REPL.Terminals.TextTerminal, ::REPL.LineEdit.ModalInterface) at /home/mbauman/julia/release-1.4/usr/share/julia/stdlib/v1.4/REPL/src/LineEdit.jl:2348
 [12] RunDebugger(::JuliaInterpreter.Frame, ::Nothing, ::Nothing; initial_continue::Bool) at /home/mbauman/.julia/packages/Debugger/Xr8bu/src/repl.jl:158
 [13] RunDebugger at /home/mbauman/.julia/packages/Debugger/Xr8bu/src/repl.jl:4 [inlined] (repeats 2 times)
 [14] top-level scope at /home/mbauman/.julia/packages/Debugger/Xr8bu/src/Debugger.jl:126

Versions:

julia> versioninfo()
Julia Version 1.4.3-pre.0
Commit b5f13c3a1a (2020-05-25 19:42 UTC)
Platform Info:
  OS: Linux (x86_64-linux-gnu)
  CPU: Intel(R) Xeon(R) Silver 4114 CPU @ 2.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-8.0.1 (ORCJIT, skylake)

(proj) pkg> st
Status `~/iri/IRI/Project.toml`
  [f68482b8] Cthulhu v1.2.0
  [31a5f54b] Debugger v0.6.5
  [5789e2e9] FileIO v1.3.0
  [587475ba] Flux v0.10.4
  [033835bb] JLD2 v0.1.13
  [92933f4c] ProgressMeter v1.3.1
  [e88e6eb3] Zygote v0.4.22

I'm guessing Zygote happens to populate its lineinfo table with a more tightly typed array than Julia itself does... and I'm guessing this may be as easy as adding a <: to that assert.

@mbauman mbauman changed the title Debugger crash while stepping Debugger crash while stepping over Zygote code Jun 30, 2020
timholy added a commit to JuliaDebug/JuliaInterpreter.jl that referenced this issue Jun 30, 2020
@timholy
Copy link
Member

timholy commented Jun 30, 2020

Any clue whether it would also allow a Vector{LIneNumberNode}?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants