@@ -710,7 +710,7 @@ function next_line!(stack, frame, dbstack = nothing)
710
710
# If this is a goto node, step it and reevaluate
711
711
if isgotonode (expr)
712
712
pc = _step_expr! (stack, frame, pc)
713
- pc == nothing && return nothing
713
+ ( pc == nothing || isa (pc, Breakpoint)) && return pc
714
714
elseif dbstack != = nothing && iswrappercall (expr)
715
715
# With splatting it can happen that we do something like ssa = tuple(#self#), _apply(ssa), which
716
716
# confuses the logic here, just step into the first call that's not a builtin
@@ -727,15 +727,15 @@ function next_line!(stack, frame, dbstack = nothing)
727
727
break
728
728
else
729
729
pc = _step_expr! (stack, frame, pc)
730
- pc == nothing && return nothing
730
+ ( pc == nothing || isa (pc, Breakpoint)) && return pc
731
731
end
732
732
end
733
733
else
734
734
pc = _step_expr! (stack, frame, pc)
735
- pc == nothing && return nothing
735
+ ( pc == nothing || isa (pc, Breakpoint)) && return pc
736
736
end
737
737
frame. pc[] = pc
738
- shouldbreak (frame, pc) && break
738
+ shouldbreak (frame, pc) && return Breakpoint (frame . code, pc)
739
739
end
740
740
maybe_next_call! (stack, frame, pc)
741
741
end
0 commit comments