Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
This talk introduces ruby/debug: Debugging functionality for Ruby, a completely rewritten debugger for Ruby and it will be shipped with Ruby 3.1 at next Christmas. The new debugger has several advantages: Fastest debugger: Using recent introduced TracePoint features and (almost) no penalty on normal execution. Remote debugger Native VSCode (DAP) integration Easy integration with applications Thread/Ractor support And more useful features! In this talk, I'll introduce useful features of this new debugger and tips for Ruby development.
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
### Introduction The talk presented by Koichi Sasada at RubyConf 2021 introduces the new debugging tool called `debug.gem`, which has been developed specifically for Ruby and is set to be included with Ruby 3.1, releasing in December. The `debug.gem` offers numerous enhancements over existing debuggers, addressing performance issues, integration with IDEs, remote debugging capabilities, and more. ### Key Points Discussed - **Purpose of the Debugger:** The primary roles of a debugger are to help identify bugs within applications and to aid in understanding the program internals through interactive exploration. - **Existing Debuggers:** Sasada compares `debug.gem` to previous Ruby debuggers, highlighting that while tools like `byebug` and `debug.rb` exist, they often suffer from performance issues and lack modern features. - **New Features in `debug.gem`:** This debugger is designed with: - **Improved Performance**: Utilizing Ruby's TracePoint to minimize performance overhead, allowing developers to utilize breakpoints without significant slowdowns. - **IDE Integration**: Seamless integration with Visual Studio Code and other IDEs, making it easier for developers to set breakpoints and explore variables via a graphical interface. - **Remote Debugging**: The ability to run a debugging session and connect to it remotely, beneficial for processes that do not run in a normal terminal. - **Support for Threads/Ractors**: Enhancements allowing for debugging in a concurrent environment, a critical feature as Ruby continues to evolve. - **Advanced Features**: Including post-mortem debugging and a record-and-replay functionality that allows developers to go backwards in their debugging process. ### Demonstrations Sasada provides demonstrations on: - Using the `rdbg` command to control the Ruby interpreter with debug functionality, showcasing local variables and step commands. - Integrating debugging within Visual Studio Code, illustrating how to set breakpoints using keyboard shortcuts and the graphical interface. - Remote debugging capabilities, showcasing the ability to connect to a running process and inspect its state. ### Conclusion The talk concludes with Sasada emphasizing that `debug.gem` represents a major milestone in the Ruby debugging landscape, providing developers with a more efficient and user-friendly debugging tool. He encourages the community to provide feedback as the gem progresses towards maturity, aiming to enhance its features and functionality. The overall message is that effective debugging is essential for improving Ruby application development, and this new tool is a significant step forward in achieving that goal.
Suggest modifications
Cancel