remote debugger failing on first hit with puma
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 reproducing the first-hit failure with Ruby 3.3.5, rdbg 1.9.2, Puma in a local Docker container, and the Sinatra request flow described. Inspect the remote debugger behavior around the initial SIGURG and step transition, including the reported Puma and Rack paths. Done means the first breakpoint can be stepped through normally without losing context.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Your environment
ruby -v: 3.3.5rdbg -v: 1.9.2
Describe the bug
When hitting breakpoint via placing "debugger" into source code, and connecting with remote debugger, with sinatra controller and puma web server in local docker container, first time when "debugger" is hit will fail, as described below
For example,
Puma started freshly serving sinatra app in local docker container
33| def some_method_called_via_puma_via_sinatra_controller
=> 34| debugger
35| some logic...
37| end
38|
(rdbg:remote) n
# No sourcefile available for /usr/local/bundle/gems/puma-6.4.2/lib/puma/single.rb
Stop by SIGURG
(rdbg:remote) n
# it looks like it tries to step in code, but in reality context is lost
(rdbg:remote) n
[1, 7] in $(Gem)/rack-2.2.9/lib/rack/file.rb
1| # frozen_string_literal: true
2|
3| require_relative 'files'
4|
=> 5| module Rack
6| File = Files
7| end
(rdbg:remote) c
Thus only way to end to proceed is to hit "continue", since control flow has jumped into some odd place, and now, after this failure when doing same request again, debugger works as espected (i.e. does not hit this "SIGURG" which seems to break thing).
Makes usage rather irritating since after every modify of code (and restart of web server thus), have to first hit debugger "cold", and failing, and hitting continue, and now it seems to be "hot", and can actually succeed.
To Reproduce
- Local docker container
- running sinatra app with puma on it
- setting up remote debugger
- adding breakpoint via placing "debugger" into code
- launching app on container
- performing some request hitting "debugger" put in code
- connect remote debugger to process
=> fails on first time, if hitting continue, and retrying request it works as expected
Expected behavior
It would not fail on first time, since it makes debugging few cases difficult.
Additional context
Issue has been there for a while, i.e. it has had this failure always for me with this debug gem
- 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