Skip to content

Instantly share code, notes, and snippets.

@pfitzseb
Created November 28, 2019 10:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save pfitzseb/cd09671e4b0d1f2557f8e4649064df44 to your computer and use it in GitHub Desktop.
Save pfitzseb/cd09671e4b0d1f2557f8e4649064df44 to your computer and use it in GitHub Desktop.
nested debug
julia> @enter wrapper()
In wrapper() at /home/pfitzseb/.julia/dev/Atom/test.jl:2
1 function wrapper()
>2 mktempdir() do dir
3 open(joinpath(dir, "test.txt"), "w") do io
4 println(io, "data")
5 end
6 end
7 end
About to run: (mktempdir)(getfield(Main, Symbol("##13#15"))())
1|debug> s
In #mktempdir#15(prefix, , fn, parent) at file.jl:582
581 function mktempdir(fn::Function, parent=tempdir(); prefix=temp_prefix)
>582 tmpdir = mktempdir(parent; prefix=prefix)
583 try
584 fn(tmpdir)
585 finally
586 # TODO: should we call GC.gc() first on error, to make it much more likely that `rm` succeeds?
About to run: (<suppressed 53 bytes of output>)((prefix = "jl_",), mktempdir, "/tmp")
1|debug> se
In #mktempdir#15(prefix, , fn, parent) at file.jl:582
581 function mktempdir(fn::Function, parent=tempdir(); prefix=temp_prefix)
582 tmpdir = mktempdir(parent; prefix=prefix)
>583 try
584 fn(tmpdir)
585 finally
586 # TODO: should we call GC.gc() first on error, to make it much more likely that `rm` succeeds?
587 try
About to run: $(Expr(:enter, 13))
1|debug> se
In #mktempdir#15(prefix, , fn, parent) at file.jl:582
581 function mktempdir(fn::Function, parent=tempdir(); prefix=temp_prefix)
582 tmpdir = mktempdir(parent; prefix=prefix)
>583 try
584 fn(tmpdir)
585 finally
586 # TODO: should we call GC.gc() first on error, to make it much more likely that `rm` succeeds?
587 try
About to run: -1
1|debug> se
In #mktempdir#15(prefix, , fn, parent) at file.jl:582
581 function mktempdir(fn::Function, parent=tempdir(); prefix=temp_prefix)
582 tmpdir = mktempdir(parent; prefix=prefix)
583 try
>584 fn(tmpdir)
585 finally
586 # TODO: should we call GC.gc() first on error, to make it much more likely that `rm` succeeds?
587 try
588 rm(tmpdir, recursive=true)
About to run: (getfield(Main, Symbol("##13#15"))())("/tmp/jl_w573A4")
1|debug> s
In #13(dir) at /home/pfitzseb/.julia/dev/Atom/test.jl:3
1 function wrapper()
2 mktempdir() do dir
>3 open(joinpath(dir, "test.txt"), "w") do io
4 println(io, "data")
5 end
6 end
7 end
About to run: %new($(QuoteNode(getfield(Main, Symbol("##14#16")))))
1|debug> se
In #13(dir) at /home/pfitzseb/.julia/dev/Atom/test.jl:3
1 function wrapper()
2 mktempdir() do dir
>3 open(joinpath(dir, "test.txt"), "w") do io
4 println(io, "data")
5 end
6 end
7 end
About to run: JuliaInterpreter.SlotNumber(3)
1|debug> se
In #13(dir) at /home/pfitzseb/.julia/dev/Atom/test.jl:3
1 function wrapper()
2 mktempdir() do dir
>3 open(joinpath(dir, "test.txt"), "w") do io
4 println(io, "data")
5 end
6 end
7 end
About to run: (joinpath)("/tmp/jl_w573A4", "test.txt")
1|debug> se
In #13(dir) at /home/pfitzseb/.julia/dev/Atom/test.jl:3
1 function wrapper()
2 mktempdir() do dir
>3 open(joinpath(dir, "test.txt"), "w") do io
4 println(io, "data")
5 end
6 end
7 end
About to run: (open)(getfield(Main, Symbol("##14#16"))(), "/tmp/jl_w573A4/test.txt", "w")
1|debug> s
In open(f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: (tuple)(<suppressed 68 bytes of output>, open, getfield(Main, Symbol("##14#16"))())
1|debug> se
In open(f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: (Base.#open#312)(<suppressed 68 bytes of output>, open, getfield(Main, Symbol("##14#16"))(), "/tmp/jl_w573A4/test.txt", "w")
1|debug> s
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: Core.NewvarNode(:(_6))
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: (NamedTuple)()
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: (merge)(NamedTuple(), <suppressed 68 bytes of output>)
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: (isempty)(NamedTuple())
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: unless JuliaInterpreter.SSAValue(4) goto %8
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: (open)("/tmp/jl_w573A4/test.txt", "w")
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: goto %11
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
>373 io = open(args...; kwargs...)
374 try
375 f(io)
376 finally
377 close(io)
About to run: JuliaInterpreter.SlotNumber(7)
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
373 io = open(args...; kwargs...)
>374 try
375 f(io)
376 finally
377 close(io)
378 end
379 end
About to run: $(Expr(:enter, 18))
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
373 io = open(args...; kwargs...)
>374 try
375 f(io)
376 finally
377 close(io)
378 end
379 end
About to run: -1
1|debug> se
In #open#312(kwargs, , f, args) at iostream.jl:373
372 function open(f::Function, args...; kwargs...)
373 io = open(args...; kwargs...)
374 try
>375 f(io)
376 finally
377 close(io)
378 end
379 end
About to run: (getfield(Main, Symbol("##14#16"))())(IOStream(<file /tmp/jl_w573A4/test.txt>))
1|debug> s
In #14(io) at /home/pfitzseb/.julia/dev/Atom/test.jl:4
1 function wrapper()
2 mktempdir() do dir
3 open(joinpath(dir, "test.txt"), "w") do io
>4 println(io, "data")
5 end
6 end
7 end
About to run: (println)(IOStream(<file /tmp/jl_w573A4/test.txt>), "data")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment