Error when trying to showerror: TypeError: in specializations, expected DataType, got Type{Union{}}
还没有人认领这个 Issue。
评估
调研方向
首先重现报告的嵌套 @run 场景,并检查 JuliaInterpreter/src/utils.jl 和 src/construct.jl 中的堆栈跟踪。然后跟踪 Debugger/src/repl.jl 和 src/commands.jl 中的调试器路径。完成的标准是:显示原始错误并清除解释器缓存后,不再产生次级 TypeErrors 或 _deleteend! 失败。
由索引模型根据 Issue 内容生成。
描述
I got the following error. It looks like it's an error with the debugger itself, that happened when it was trying to show an error with my program.
ERROR: TypeError: in specializations, expected DataType, got Type{Union{}}
Stacktrace:
[1] #specialize_method#317
@ ./compiler/utilities.jl:224 [inlined]
[2] specialize_method
@ ./compiler/utilities.jl:212 [inlined]
[3] Base.StackTraces.StackFrame(frame::JuliaInterpreter.Frame)
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/utils.jl:773
[4] show_backtrace(io::IOContext{IOBuffer}, frame::JuliaInterpreter.Frame)
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/utils.jl:792
[5] showerror(io::IOContext{IOBuffer}, ex::TypeError, bt::JuliaInterpreter.Frame; backtrace::Bool)
@ Base ./errorshow.jl:99
[6] showerror
@ ./errorshow.jl:95 [inlined]
[7] display_error(io::IOContext{IOBuffer}, er::TypeError, frame::JuliaInterpreter.Frame)
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/utils.jl:808
[8] (::Debugger.var"#10#19"{REPL.LineEdit.Prompt, Debugger.DebuggerState})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
@ Debugger ~/.julia/packages/Debugger/wueAn/src/repl.jl:72
[9] #invokelatest#2
@ ./essentials.jl:1055 [inlined]
[10] invokelatest
@ ./essentials.jl:1052 [inlined]
[11] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit ~/.julia/juliaup/julia-1.11.5+0.aarch64.apple.darwin14/share/julia/stdlib/v1.11/REPL/src/LineEdit.jl:2755
[12] run_interface
@ ~/.julia/juliaup/julia-1.11.5+0.aarch64.apple.darwin14/share/julia/stdlib/v1.11/REPL/src/LineEdit.jl:2749 [inlined]
[13] RunDebugger(frame::JuliaInterpreter.Frame, repl::Nothing, terminal::Nothing; initial_continue::Bool)
@ Debugger ~/.julia/packages/Debugger/wueAn/src/repl.jl:167
[14] RunDebugger
@ ~/.julia/packages/Debugger/wueAn/src/repl.jl:12 [inlined]
[15] RunDebugger(frame::JuliaInterpreter.Frame)
@ Debugger ~/.julia/packages/Debugger/wueAn/src/repl.jl:12
[16] macro expansion
@ ~/.julia/packages/Debugger/wueAn/src/Debugger.jl:127 [inlined]
[17] top-level scope
@ REPL[3]:1
caused by: TypeError: in specializations, expected DataType, got Type{Union{}}
Stacktrace:
[1] #specialize_method#317
@ ./compiler/utilities.jl:224 [inlined]
[2] specialize_method
@ ./compiler/utilities.jl:212 [inlined]
[3] Base.StackTraces.StackFrame(frame::JuliaInterpreter.Frame)
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/utils.jl:773
[4] show_backtrace(io::IOContext{IOBuffer}, frame::JuliaInterpreter.Frame)
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/utils.jl:792
[5] showerror(io::IOContext{IOBuffer}, ex::BoundsError, bt::JuliaInterpreter.Frame; backtrace::Bool)
@ Base ./errorshow.jl:99
[6] showerror
@ ./errorshow.jl:95 [inlined]
[7] display_error(io::IOContext{IOBuffer}, er::BoundsError, frame::JuliaInterpreter.Frame)
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/utils.jl:808
[8] show_breakpoint(io::Base.TTY, bp::JuliaInterpreter.BreakpointRef, state::Debugger.DebuggerState)
@ Debugger ~/.julia/packages/Debugger/wueAn/src/commands.jl:22
[9] execute_command(state::Debugger.DebuggerState, v::Val{:c}, cmd::SubString{String})
@ Debugger ~/.julia/packages/Debugger/wueAn/src/commands.jl:56
[10] (::Debugger.var"#10#19"{REPL.LineEdit.Prompt, Debugger.DebuggerState})(s::REPL.LineEdit.MIState, buf::IOBuffer, ok::Bool)
@ Debugger ~/.julia/packages/Debugger/wueAn/src/repl.jl:64
[11] #invokelatest#2
@ ./essentials.jl:1055 [inlined]
[12] invokelatest
@ ./essentials.jl:1052 [inlined]
[13] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
@ REPL.LineEdit ~/.julia/juliaup/julia-1.11.5+0.aarch64.apple.darwin14/share/julia/stdlib/v1.11/REPL/src/LineEdit.jl:2755
[14] run_interface
@ ~/.julia/juliaup/julia-1.11.5+0.aarch64.apple.darwin14/share/julia/stdlib/v1.11/REPL/src/LineEdit.jl:2749 [inlined]
[15] RunDebugger(frame::JuliaInterpreter.Frame, repl::Nothing, terminal::Nothing; initial_continue::Bool)
@ Debugger ~/.julia/packages/Debugger/wueAn/src/repl.jl:167
[16] RunDebugger
@ ~/.julia/packages/Debugger/wueAn/src/repl.jl:12 [inlined]
[17] RunDebugger(frame::JuliaInterpreter.Frame)
@ Debugger ~/.julia/packages/Debugger/wueAn/src/repl.jl:12
[18] macro expansion
@ ~/.julia/packages/Debugger/wueAn/src/Debugger.jl:127 [inlined]
[19] top-level scope
@ REPL[3]:1
I tried to debug the debugger with @run @run ... but it just gave me a different error:
Breaking for error:
ERROR: ArgumentError: _deleteend! requires delta in 0:length(a)
Stacktrace:
[1] _deleteend!(a::Vector{JuliaInterpreter.FrameData}, delta::Int64)
@ Base array.jl:1204
[2] empty!(a::Vector{JuliaInterpreter.FrameData})
@ Base array.jl:2029
[3] clear_caches()
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/construct.jl:59
[4] enter_call_expr(expr::Expr; enter_generated::Bool)
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/construct.jl:630
[5] enter_call_expr(expr::Expr)
@ JuliaInterpreter ~/.julia/packages/JuliaInterpreter/ZNccU/src/construct.jl:629
[6] var"##thunk#270"()
@ Main ~/.julia/packages/Debugger/wueAn/src/Debugger.jl:91
In _deleteend!(a, delta) at array.jl:1201
1201 function _deleteend!(a::Vector, delta::Integer)
1202 delta = Int(delta)
1203 len = length(a)
>1204 0 <= delta <= len || throw(ArgumentError("_deleteend! requires delta in 0:length(a)"))
1205 newlen = len - delta
1206 for i in newlen+1:len
1207 @inbounds _unsetindex!(a, i)
1208 end
About to run: throw(ArgumentError("_deleteend! requires delta in 0:length(a)"))
1|debug> bt
[1] _deleteend!(a, delta) at array.jl:1204
| a::Vector{JuliaInterpreter.FrameData} = <JuliaInterpreter.FrameData[JuliaInterpreter.FrameData(Union{Nothing, Some{Any}}[Some(Core.toInt64), S...>
| delta::Int64 = 29
| len::Int64 = 28
| ::Bool = false
[2] empty!(a) at array.jl:2029
| a::Vector{JuliaInterpreter.FrameData} = <JuliaInterpreter.FrameData[JuliaInterpreter.FrameData(Union{Nothing, Some{Any}}[Some(Core.toInt64), S...>
[3] clear_caches() at /Users/akriegma/.julia/packages/JuliaInterpreter/ZNccU/src/construct.jl:59
[4] #enter_call_expr#46(enter_generated, , expr) at /Users/akriegma/.julia/packages/JuliaInterpreter/ZNccU/src/construct.jl:630
| enter_generated::Bool = false
| ::typeof(JuliaInterpreter.enter_call_expr) = JuliaInterpreter.enter_call_expr
| expr::Expr = <:((VM(Float32[-0.06815089 0.027055124 0.046305846 -0.02320608 0.0076302057 -0.035288677 0.073490456 -...>
[5] enter_call_expr(expr) at /Users/akriegma/.julia/packages/JuliaInterpreter/ZNccU/src/construct.jl:629
| expr::Expr = <:((VM(Float32[-0.06815089 0.027055124 0.046305846 -0.02320608 0.0076302057 -0.035288677 0.073490456 -...>
[6] ##thunk#270() at REPL[4]:91
| theargs::Tuple{VM, Matrix{Float64}} = <(VM(Float32[-0.06815089 0.027055124 0.046305846 -0.02320608 0.0076302057 -0.035288677 0.073490456 -0....>
So with that being the state of things I'm not sure how to gather more information about this error.
- 主要语言
- Julia
- 星标
- 515
- 派生
- 50
- PR 合并指标
- 30 天内没有已合并 PR
环境准备
这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。
从这里开始
- 先读完整个 Issue,再读项目的贡献指南。
- 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
- Fork 仓库,在一个分支上完成修改。
- 提交 Pull Request,并在描述里引用这个 Issue 编号。
JuliaDebug/Debugger.jl 的其他 Issue
-
tagbot-manual
难度 2/5 1-3 小时 新手友好度 72/100
JuliaDebug/Debugger.jl#410 ·
-
难度 4/5 3-5 天 新手友好度 48/100
JuliaDebug/Debugger.jl#423 · 1 条评论 ·
-
难度 3/5 1-2 天 新手友好度 45/100
JuliaDebug/Debugger.jl#422 ·
-
难度 3/5 1-2 天 新手友好度 55/100
JuliaDebug/Debugger.jl#418 · 1 条评论 ·
-
难度 2/5 1-3 小时 新手友好度 55/100
JuliaDebug/Debugger.jl#417 · 1 条评论 ·
查看 JuliaDebug/Debugger.jl 的全部 Issue
相似的 Issue
-
难度 2/5 1-3 小时 新手友好度 65/100
JuliaDebug/Cthulhu.jl#716 ·
-
难度 2/5 1-3 小时 新手友好度 70/100
-
难度 2/5 1-3 小时 新手友好度 66/100
-
难度 2/5 1-3 小时 新手友好度 68/100
rafaqz/DimensionalData.jl#1253 ·
-
难度 1/5 1 小时以内 新手友好度 88/100
osrep/Runes2P.jl#283 ·
维护者通常 1 天内回复