diff --git a/src/repl.jl b/src/repl.jl index 6dbfa02..2a698d9 100644 --- a/src/repl.jl +++ b/src/repl.jl @@ -199,7 +199,8 @@ function eval_code(frame::Frame, command::AbstractString) vars = filter(v -> v.name != Symbol(""), JuliaInterpreter.locals(frame)) res = gensym() eval_expr = Expr(:let, - Expr(:block, map(x->Expr(:(=), x...), [(v.name, maybe_quote(v.value)) for v in vars])...), + Expr(:block, map(x->Expr(:(=), x...), [(v.name, maybe_quote(v.value)) for v in vars])..., + Expr(:(=), :__FRAME__ , frame)), Expr(:block, Expr(:(=), res, expr), Expr(:tuple, res, Expr(:tuple, [v.name for v in vars]...)) diff --git a/src/watch.jl b/src/watch.jl index cbca588..dd6b5e0 100644 --- a/src/watch.jl +++ b/src/watch.jl @@ -16,7 +16,8 @@ function show_watch_list(io, state::DebuggerState) for (i, expr) in enumerate(state.watch_list) vars = filter(v -> v.name != Symbol(""), JuliaInterpreter.locals(frame)) eval_expr = Expr(:let, - Expr(:block, map(x->Expr(:(=), x...), [(v.name, maybe_quote(v.value)) for v in vars])...), + Expr(:block, map(x->Expr(:(=), x...), [(v.name, maybe_quote(v.value)) for v in vars])..., + Expr(:(=), :__FRAME__ , frame)), expr) errored = false res = try