Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Debugger Canvas Brings Code Bubbles To Visual Studio

Debugger Canvas Brings Code Bubbles To Visual Studio

This item in japanese


Developers can finally get their hands on the Debugger Canvas, a new Power Tool for Visual Studio that gives Code Bubbles like experience for navigating contextual code snippets. It displays the code of each of the methods you step into on a canvas with call lines between them, helping to keep track of the bigger picture as well as the details. The tool has seen a lot of excitement from the development community ever since the project was announced in late May as well as some disappointment that it is available only for the Ultimate edition.

The below image should give an idea how the screen can look while debugging with this feature turned on -

When a breakpoint gets hit while debugging, the canvas first loads with one bubble (a snippet of code) with the method containing the line with the breakpoint. On stepping into any line in that method, it shows the code of the method stepped into. The snippets are also full text editors. This allows you to see and edit the entire debug stack side by side – although it can be more than just the debug stack, since once you step out of the code, and step into some other next line, the previous bubbles remain.

It is possible to select calls from IntelliTrace to the Debugger Canvas, which can enable scenarios like “show me what code ran when I clicked here”.

There is also a way to add notes in your canvas – to highlight sections that might need attention, for instance.

You can also load other methods in the same class in the canvas

And Finally, the entire Canvas can be saved as an XPS file, to be shared with other developers, to discuss code flows and notes.

Debugger Canvas is currently available for C# and VB in this release, though support for more languages is expected in the future. It does seem that once available, the feature will be even more useful for Functional languages like F#, since there isn’t much dependency on object properties (as in Object Oriented Languages).

The biggest disappointment shown by VS users is that Debugger Canvas requires Visual Studio Ultimate edition, and does not work with lower SKUs. That puts it out of reach for developers who use Professional or Premium editions.

Kael Rowan offers an explanation -

We would love to make Debugger Canvas available to a wider audience, but as Soma says on his blog, Debugger Canvas is built on top of Visual Studio Ultimate so that we could re-use the underlying technology for the Dependency Diagrams to identify and display the right fragments on the canvas. This re-use is what made it possible for us to release an out-of-band power tool in an efficient manner on top of Visual Studio 2010. It's unlikely that we'll be able to make this version of the power tool available in Pro, but please let us know if you'd like to see this kind of user experience built directly "in the box" as part of Visual Studio.

In the mean time, if you don’t have Visual Studio Ultimate then you still have two options to try Debugger Canvas for free:

1) Install the free Visual Studio Ultimate Trial, or
2) Install the free Virtual Machine containing Visual Studio Ultimate.

Debugger Canvas is a result of a collaboration between Microsoft Research and Brown University, combining Code Canvas and Code Bubbles from the respective teams. 

Rate this Article