Unexpected `n` behavior within `open(f, ...)`
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Riproduci l’esempio del wrapper ed esegui il passo-passo con si, so e n attraverso l’entry point open(f, args) mostrato in io.jl:296. Confronta i salti osservati con il significato documentato di n, quindi determina se sia necessario correggere il comportamento del passo-passo o la relativa documentazione e verifica il risultato con un test mirato del debugger.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
When debugging code such as the following:
function wrapper()
mktempdir() do dir
open(joinpath(dir, "test.txt"), "w") do io
println(io, "data")
end
end
end
Using n to enter a do block does not work; I think this might be expected, but I wonder if the docs (which state that n means "step to the next line" should instead say something like "step to the next expression" if that is indeed what it is doing.)
The truly unexpected piece is when trying to navigate within open to get into the println(): after si'ing and so'ing my way until I'm in open(), I am greeted by the following:
1|debug> si
In open(f, args) at io.jl:296
295 function open(f::Function, args...; kwargs...)
>296 io = open(args...; kwargs...)
297 try
298 f(io)
299 finally
300 close(io)
About to run: (NamedTuple)()
I then hit n to attempt to jump down to the f(io), but when I hit n I get:
1|debug> n
In open(f, args) at io.jl:296
295 function open(f::Function, args...; kwargs...)
>296 io = open(args...; kwargs...)
297 try
298 f(io)
299 finally
300 close(io)
About to run: return
I have somehow just skipped to the end of the open() function, and continuing to step causes me to exit out.
- Lingua principale
- Julia
- Stelle
- 515
- Fork
- 50
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di JuliaDebug/Debugger.jl
-
tagbot-manual
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
JuliaDebug/Debugger.jl#410 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
JuliaDebug/Debugger.jl#423 · 1 commento ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
JuliaDebug/Debugger.jl#422 ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
JuliaDebug/Debugger.jl#418 · 1 commento ·
-
Syntax highlighting warningAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
JuliaDebug/Debugger.jl#417 · 1 commento ·
Tutte le issue di JuliaDebug/Debugger.jl
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
JuliaDebug/Cthulhu.jl#716 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Review dependenciesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
rafaqz/DimensionalData.jl#1253 ·
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
osrep/Runes2P.jl#283 ·
I maintainer di solito rispondono entro 1 giorno