Talks
Speakers
Events
Topics
Sign in
Home
Talks
Speakers
Events
Topics
Leaderboard
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
We all write bugs. How quickly we can identify & understand them depends on the quality of our tools. In this talk you'll be introduced to TruffleRuby's modern debugger, based on the Chrome browser's DevTools Protocol. TruffleRuby's uniquely powerful set of tools let you debug, profile, and inspect the memory usage of Ruby code, native extensions, and other embedded languages all at the same time. Support for those tools is zero-overhead so you can have them always enabled. I'll show you how it all works and how it lets you step through Ruby code, inspect local variables, evaluate expressions, and more. RubyKaigi 2019 https://rubykaigi.org/2019/presentations/nirvdrum.html#apr19
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 the presentation titled "Beyond `puts`: TruffleRuby’s Modern Debugger Using Chrome," Kevin Menard discusses how to improve debugging techniques for Ruby applications using TruffleRuby and the Chrome DevTools Protocol. He emphasizes that while print statement debugging is a common practice, it often becomes impractical as code complexity increases. Menard introduces TruffleRuby’s debugger, a tool that integrates with Chrome’s DevTools, offering a comprehensive debugging experience that includes profiling, inspecting memory usage, and debugging both Ruby code and native extensions without additional overhead. ### Key Points Discussed: - **Introduction to Debugging:** Menard begins by describing the limitations of traditional print statement debugging, which can lead to confusion when tracking variable states and code behavior. - **Print Statement Debugging:** He uses a relatable example of debugging a Ruby method with print statements, illustrating how unclear outputs can hinder effective debugging. - **Limitations of Print Debugging:** Menard notes that while print debugging is straightforward, it often results in an overwhelming number of print statements, making it difficult to locate issues accurately. - **Advancements with Debuggers:** He advocates for the adoption of modern debuggers, which allow developers to inspect program states and evaluate expressions without altering source code. This capability enhances debugging efficiency and clarity. - **Chrome DevTools Protocol:** Menard explains that the Chrome DevTools Protocol provides a communication layer between programming languages and browsers. This flexibility allows TruffleRuby to utilize already established debugging infrastructure without constructing a new UI. - **Demonstration of TruffleRuby Debugger:** He presents a demo of TruffleRuby debugging within Chrome, showcasing how function calls can be traced and variables inspected dynamically. This tool enables deeper insights into Ruby applications, including stepping into core methods that traditional Ruby interpreters do not allow. - **Polyglot Capabilities of TruffleRuby:** Menard emphasizes that TruffleRuby supports multiple languages, allowing seamless debugging across different programming languages. This is facilitated by GraalVM, which enables easy interaction between languages while debugging. - **Future of Ruby Debugging:** He closes by asserting the importance of standardizing debugging tools across Ruby implementations, suggesting that integration with the Chrome DevTools Protocol could lead to a significant improvement in the developer experience for Ruby programming. ### Conclusions and Takeaways: - Emphasizing a shift from simple print debugging to more sophisticated tools, the talk highlights how such advancements can streamline identifying and resolving bugs in complex applications. - Menard encourages developers to explore and adopt the TruffleRuby debugger for a richer debugging experience, particularly for those writing polyglot applications or using native extensions. Overall, the presentation provides valuable insights into modern debugging approaches, specifically emphasizing the benefits of integrating established protocols to enhance the debugging process for Ruby developers.
Suggest modifications
Cancel