LOADING

Beyond println!: Mastering Rust Debugging

This talk explains how Rust debugging actually works: how compiler-generated debuginfo (DWARF/PDB) maps binaries back to source, and how LLDB/GDB interpret that data in practice.

Vitaly Bragilevsky
Developer Advocate at JetBrains
About This Talk

Debugging Rust can feel opaque when traditional C/C++ debuggers misread enums, traits, and other Rust features. This talk explains how Rust debugging actually works: how compiler-generated debuginfo (DWARF/PDB) maps binaries back to source, and how LLDB/GDB interpret that data in practice. We’ll compare vanilla setups with Rust-specific extensions like pretty-printers, showing why they’re essential for inspecting Option, Result, and collections accurately. You’ll learn the real limits of expression evaluation (including why Debug/Display impls aren’t usable in-session yet) and what emerging techniques, such as compiling expressions to MIR (mid-level intermediate representation), promise for the future. We’ll finish with a practical troubleshooting checklist for breakpoints that don’t hit, variables that “disappear,” mysterious garbage values, and sluggish sessions. Whether you mostly rely on println! or regularly step through threads and stack frames, you’ll leave with a clearer mental model and concrete tactics to make interactive debugging a daily tool, not a last resort.

more great talks

Might Be Interesting

Day 1
  —  
11:50 am
arrow pointing right icon

Are mutexes slow?

In this talk, we'll dive deep into what makes concurrency coordination costly, and explore some pathways to mitigate that cost.

Day 1
  —  
9:35 am
arrow pointing right icon

From Pain to Solution: Private Rust Crates with CrabHub

As Rust projects grow, managing private crates becomes a real headache. Teams struggle with inconsistent versioning, fragile dependencies, and cumbersome workflows that slow down development. In this talk, I’ll walk through how these challenges can be solved with Rust and CrabHub.

Day 1
  —  
9:00 am
arrow pointing right icon

An Option? Have a slice!

In 2024, I added the `Option::as_slice` and `Option::as_mut_slice` methods to libcore. This talk is about what motivated the addition, and looks into the no less than 4 different implementations that made up the methods. It also shows that even without a deep understanding of all compiler internals, it is possible to add changes both to the compiler and standard library.

Day 2
  —  
4:50 pm
arrow pointing right icon

Channels in Rust: The Art of Concurrency

We’ll take a deep dive into Rust channels — from synchronous channels to asynchronous channels — to explore how message passing enables reliable concurrent programming.

See All Events
Join us!

We're looking for amazing speakers.
CFP is open till 10.01.2023

Fill in Call for Papers
location icon

Location

Centrum Konferencyjne POLIN, Poland
stay in touch icon

Follow Us

Contact Us