Debugger additions for Rider 2019.2: Pin to Top, Floating Actions, and Redesigned Stack Frames

When  analyzing and fixing bugs, debugging is essential. Rider already ships with a lot of helpful debugging features, like smart-step-into, tooltip evaluation or thread-specific breakpoints. In version 2019.2, we improved performance for stack calculation and stepping a lot. Also, we’ve fixed reported issues for ref/out value evaluation and cast evaluation. However, besides those internal changes, we’re excited to show you some of the new UI related additions that can help to debug our codebases more efficiently:

  • Pin to top to show info we’re interested in first
  • Floating actions to easily jump to a specific statement
  • Redesigned threads and stack frames

Let’s start with how we look at our data.

Pin to top

Some might already be familiar with how the presentation of an object can be controlled by overwriting the ToString method or adding a DebuggerDisplayAttribute. However, sometimes this can become a bit cumbersome, especially when we’re only looking at those objects once in a while. So why design your code to be debug-friendly when you have a debug-friendly IDE? The Pin to top action comes in handy, most of all with collections of objects:

Pin to Top

We can think of it as an on-the-fly adaptation of the presentation, which is also persisted over multiple debug sessions signalled by a little flag icon. The flagged information is pinned to top. It’s also worth mentioning that after expanding large lists for types that have pinned data, we can just start typing to find an object with the search term we’re looking for.

Floating actions

Rider really makes it easy to work keyboard-centric. That’s why all the debug actions have a default shortcut assigned. However, debugging is one of those techniques that can force even the hard-boiled developers to actually use the mouse. For instance, to inspect object structures, change the thread view or navigate around parallel stacks.

Two of the more common actions – Jump to statement and Set next statement – are now available as floating actions right from inside the editor region, right beside statements:

Floating Actions

In conjunction with the smart-step-into action, this makes it really convenient to narrow down what our code is actually doing.

Redesigned threads and stack frames

Another improvement is the redesigned view for threads and stack frames (disabled by default). If you are a developer working with multi-threaded applications, you might be interested to opt-in to this by enabling the debugger.new.frames.view option in the registry. This will allow us to choose a thread on the left, then select frames from the middle, and browse related variables on the right:

Redesigned Stack Frames

We’re looking forward to your feedback about our recent debugger improvements. Download Rider 2019.2 now, and give it a try!

About Matthias Koch

Matthias is a passionate C# developer and likes to talk about clean code, testing and tooling in general. Much of his spare time in the last years was devoted to his very own open source projects, including NUKE. He is working at JetBrains as developer advocate for the .NET department. Follow him on Twitter.
This entry was posted in How-To's and tagged , , , . Bookmark the permalink.

3 Responses to Debugger additions for Rider 2019.2: Pin to Top, Floating Actions, and Redesigned Stack Frames

  1. Commentor says:

    Does/will Rider have a Xamarin (Android, iOS) .NET profiler? Crazy as it might sound looks like only Visual Studio Enterprise has this from Microsoft, which is of course about 100000 times more expensive than Rider.

    • Alex says:

      This!
      We use Xamarin for mobile dev, using VS Pro. When we did have access to Xamarin profiler (before MS bought them out): it was extremely unstable and slow product, so paying VS Enterprise tax is absurd for Xamarin profiler.
      Going from Resharper subscription to Jetbrains toolbox subscription would be acceptable, just to get mobile profiler.

    • Matthias Koch says:

      Hi, currently there are no plans to implement this in the near future.

Leave a Reply to Matthias Koch Cancel reply

Your email address will not be published. Required fields are marked *