~/talk

Ruby Debugger Internals

Talkat RailsConf 2015 · 2015-04-21..04-23· [ruby, developer-experience]
slides:none on file

Explains how RubyMine debugger supports Ruby 2.0 by actually using and comparing APIs: set_trace_func (eager binding, slows a simple 5s loop to ~2 minutes), the C-level rb_add_event_hook (10.5s when empty), TracePoint (about 30s unless binding is requested), and debug_inspector for lazy frame capture. Shows benchmarks, counts many VM events per call, and contrasts with Rubinius’ compile-time breakpoint placement that makes breakpoints fast and predictable.

AI-written summary · about

  1. 0:00Intro
  2. 1:12Two questions
  3. 2:48Speed
  4. 3:05Measurement
  5. 3:43Sample Program
  6. 4:56Event Types
  7. 6:30Binding
  8. 6:54Sample Output
  9. 8:42Ruby 1.8.3: rb_add_event_hook
  10. 9:42event_hook gem
  11. 10:43Ruby 2.0: TracePoint
  12. 12:04Ruby 2.0: debug_inspector
  13. 12:55debug_inspector gem
  14. 14:02Performance summary
  15. 16:21Under the hood
  16. 16:53Being lazy, pt 2
  17. 18:50Rubinius: performance
~/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.