The debugger command doesn't seem to work when using multiple threads at the same time.
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
Direzione di ricerca
Start by running the reproduced Ruby program with require "debug", two threads, and debugger statements. Trace how the debugger handles simultaneous thread breakpoints and local-variable evaluation; the fix is complete when each breakpoint reports the matching local variable and continue resumes execution without hanging.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Your environment
ruby -v: 3.2.2rdbg -v: 1.8.0
Describe the bug
Doesn't seem to work well with multithreaded debugger statements. The program does not print out expected local variables and seems to hang forever after last continue statement.
To Reproduce
Given the following ruby code:
require "debug"
thr1 = Thread.new {
hello = "world"
debugger
puts hello
}
thr2 = Thread.new {
hello = "hello"
debugger
puts hello
}
thr1.join
thr2.join
The first time I reach a breakpoint it shows me in the hello = "hello" block. When I type out hello though it than jumps me to hello = "world" block. After typing out hello a second time, it prints out the string "hello" instead of "world". If I type continue it hangs forever after that. If I run the program without the debugger statements it doesn't hang.
Expected behavior
I would expect debugger to be somewhat threadsafe. Obviously debugger cannot necessarily control the order of these two debuggers. The second debug statement may execute first but I'd expect that the breakpoint would match the local variable and I'd expect typing continue would than make the program keep running and go to the next debugger statement or terminate the program if no more debugger statements.
- Lingua principale
- Ruby
- Stelle
- 1.3k
- Fork
- 146
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Guida per i contributori
Apri la guida per i contributori
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 ruby/debug
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
-
Support exceptionOptions in setExceptionBreakpoints to catch arbitrary exception classes via DAP Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 52/100
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
Issue simili
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 88/100
-
バグ
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
-
Version bump for OpenVox 9 Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
voxpupuli/puppet-epel#186 · 1 commento ·