~/talk

debug.gem: Ruby's new debug functionality

Talkat RubyConf 2021 · 2021-11-08..11-10· [ruby, developer-experience]
slides:none on file

A new debugger gem is built from scratch and already released as a gem and slated to ship with Ruby 3.1; it targets Ruby 2.6+ and uses TracePoint internals to avoid the usual slowdowns, claiming negligible runtime penalty where older debuggers slowed workloads up to 300× in a benchmark. Features include remote and VSCode (DAP) integration via TCP or Unix sockets, postmortem entry, thread/Ractor awareness, and a record-and-replay step‑back recorder; demos show breakpoints, stepping, variable inspection, and successful IDE and Chrome frontends.

AI-written summary · about

  1. 0:00Intro
  2. 1:26About Koichi Sasada
  3. 1:57What is a debugger?
  4. 3:26Ruby's existing debuggers
  5. 4:03Why create yet another debugger?
  6. 6:53debug.gem
  7. 8:50Demo: Basic usage
  8. 11:10Basic features • Control the program execution
  9. 12:48Control debugger from the program by binding.break do: expr
  10. 13:41Step execution Step-in, Step-over, Step-out
  11. 14:38Access to the local variables in the specific frame See the backtrace with backtrace Select the frame
  12. 15:25Advanced features
  13. 15:43Demo: Remote debugging Connect over network • Easy to open remote debug port and attach • Run program with opening debug port
  14. 17:20Demo: Seamless integration with VSCode/Chrome browser
  15. 18:41Demo: Start VSCode for debugger frontend
  16. 19:05Demo: Postmortem debugging Debug dead Ruby process
  17. 19:44Demo: Record and replay debugging Backward stepping execution
  18. 21:01Performance
  19. 21:50Acknowledgements
  20. 22:30Conclusion
  21. 23:05Thank you for your listening!
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.