Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
Debugging bugs that don't happen every time is painful. It needs both technique and luck. When dealing with these, a mistyped continue command is irreversible and will take us a whole afternoon just to reproduce the issue again. mruby-rr comes to rescue! It's a Time Traveling Debugger for mruby that based on Mozilla's rr. mruby-rr supports record and replay of mruby program execution. We can record the tough bug using mruby-rr for just once. Afterwards we can playback the execution as many times as we want. mruby-rr can also do time traveling operations like reverse-next and evaluating expressions.
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this RubyKaigi talk, Lin Yu Hsiang introduces mruby-rr, an innovative time-traveling debugger specifically designed for mruby, utilizing the Mozilla rr backend. The session addresses the common challenges developers face when dealing with elusive bugs that are difficult to reproduce, such as race conditions and time-related errors. Unlike traditional debuggers, mruby-rr allows developers to not only set breakpoints but also to 'rewind' and inspect earlier states of execution, making debugging more efficient and consistent. ### Key Points Discussed: - **Use Case: Difficult Bugs** - Common issues include race conditions, UI-related bugs, and time-related discrepancies. - Reproducing errors that rely on specific timing or randomness poses a significant challenge. - **Traditional Debugging Limitations** - Standard debuggers like mrdbt.rb do not allow navigating backward in execution, making it tough to trace variable states. - **Introduction of mruby-rr** - Mruby-rr utilizes rr's recording and replay capabilities to allow time travel through program execution. - It supports varying operations like reverse-next, reverse continue, and expression evaluation. - **Functionality** - The recording process captures program behavior, while replay lets developers evaluate variables at any previous execution point. - Exceptional features include restarting from recorded data, making consistent reproduction of bugs achievable. - **Installation and Configuration** - Developers must include mruby-rr in their build configuration and ensure that debugging support is enabled before building from the source. - Essential commands include 'record' and 'replay' to manage the debugging process effectively. - **Technical Considerations** - Supported only on Intel CPUs running Linux due to the reliance on ptrace. - Performance may vary, especially in multi-core environments. - **Future Prospects** - Upcoming improvements aim for more complete feature sets in mruby-rr to match those of rr and better replay performance while maintaining breakpoints. Mruby-rr signifies a significant advancement in debugging within the mruby ecosystem, facilitating easier identification and resolution of complex bugs. The speaker encourages the audience to explore mruby-rr available on GitHub and to reach out via Twitter for further queries. The overarching takeaway is that time-traveling debugging is now possible with mruby, greatly enhancing developers' capabilities in managing software errors.
Suggest modifications
Cancel