Introducing Debugger Canvas


Over the past several months I’ve been working on a new Power Tool for Visual Studio with Andrew Bragdon and Brown University.  The purpose of the power tool is to get feedback from users (that means you!) about using a Code Bubbles like experience for debugging through code inside Visual Studio.  The Power Tool will be called Debugger Canvas and will be available for download on Microsoft DevLabs early next month.  It will require Visual Studio 2010 Ultimate SP1 (or the trial version), and there will be a DevLabs forum for public feedback, discussion, questions and answers, etc.  In the mean time you can find out more information on http://research.microsoft.com/debuggercanvas and also watch the demo video below.

Comments (47)

  1. Omer says:

    Very cool stuff! As for your example of looking for a parameter value's origin – this feature also exists in Resharper, the "Value Origins" feature. I think it would be wonderful if the code bubbles UI were to do a similar dataflow analysis, so that if my caret is over a name of a parameter in one bubble, the origins of that parameter should be highlighted in bold on the bubbles that connect to it.

    Also, if the caret is currently on a variable or expression that is later passed as a parameter to a method that appears in another bubble, those parameters should be highlighted as well.

  2. OskarK says:

    This look like a very interesting tool for delving into unknown code bases. Does it honor the DebuggerStepThroughAttribute and its sibling attributes in System.Diagnostics?

  3. Kael Rowan says:

    @Omer: That is great feedback, thanks!

    @OskarK: Yes, we are tied directly to the Visual Studio debugger so if the debugger skips some code (like it does with DebuggerStepThrough or DebuggerNonUserCode) then we don't show the code for it.

  4. niels says:

    Why does it only run with the ultimate version, would be nice to run it also with the Premium

  5. Omer Raviv says:

    @Kael Another point I wanted to make was that Value Origins/Destination should also be a tool to navigate from one bubble to another – ie, to answer "what does this value come from?" or "where is this value going to?" I should be able to just hit some shortcut (say Alt+Ctrl+< or >), and then I will move either to next place in the current bubble where that variable is read, or to a new bubble, of the method calls that take this value as a parameter, and my caret will automatically be placed on that variable.

    I strongly feel that the full advantages of a code-bubbles type experience will only truly come to fruition when these sort of dataflow analysis features are intergrated and easy to use.

    Good luck!

  6. Julien says:

    Ultimate only? That seems like a perfect way to limit feedback…

  7. Robert says:

    This tool looks quite wonderful, I have to say! What bums is that it will only be available for Ultimate edition, so all websitespark subscribers will be left out, and many others as well. 🙁

  8. Pierre-Alain Vigeant says:

    Very interesting tool. Just very sad that it run exclusively on Ultimate.

  9. naraga says:

    i need it now guys! please release asap

  10. naraga says:

    i need it now guys! please release asap

  11. Rob says:

    Agree with Ultimate restriction – I regarded Ultimate as mainly a repository for ALM parts, but now it seems MS want to dump everything in there – maybe the ALM isn't selling very well – probably because most people only want the source control, and its a bit steep for that.

  12. Mr. L says:

    Why just for Visual Studio 2010 Ultimate SP1? 🙁 That thing costs 10k. Most companies, including mine, can't afford to buy dozens of licenses of Ultimate and buy instead the Professional/Premium. It's just sad to have this limitation and it's a sure way to limit feedback to only really-big companies who can afford the Ultimate.

    Please make it available for the other versions too.

  13. Dan Neely says:

    "Ultimate only? That seems like a perfect way to limit feedback…"

    Completely agree.  It might be an incredible tool; but if 99% of the community can't use it what's the point in trying it since it can only result in grief when we can't use it for anything else.

  14. Robert says:

    Ultimate only???

    well I won't be giving feedback then. Nothing for the Pro version?

  15. Jerry says:

    +1 for Why is this only available in Ultimate?  Looks really cool.

  16. Jerry says:

    The ultimate question is answered on the research site:

    Why does Debugger Canvas require Visual Studio Ultimate?

    The Debugger Canvas is built on technologies that only ship with Visual Studio Ultimate, such as IntelliTrace and the code analysis features in the Architecture tools.

  17. chrisd says:

    According to the debuggercanvas page, this depends on IntelliTrace. I assume this means it will not be usable in unmanaged code, e.g., C++?

  18. Richard says:

    I have to agree – making this Ultimate-edition only sucks!

  19. Patrick Morrison says:

    I would argue that the 'ultimate question' is 'Why does Microsoft think only Ultimate customers should benefit from code analysis technologies?'  

    As a 'Premium' user,  I would very much like a less steep drop-off, and the ability to do the kinds of things Eclipse users can do without a $10,000 invesment decision made by someone else.

  20. 80's Rocker says:

    I thought intellitrace was in professional version as well. If not, they really need to come out with version of thes not reliant on intelli-trace.  Otherwise, like others hsve stated 90% of .Net developers cannot use it.

  21. JonT says:

    Looks great. A shame I'll never get to try it. Cheers to Brown, but raspberries to Microsoft for making this "Ultimate" feature carry an $8,000 price premium.

  22. Wow.. Ultimate only? I think a large number of developers are using the Professional edition. I've been using Pro ever since VB3.0. I've got VS2010 Pro now. At all of my prior jobs, they had Pro installed for developers.

    I can understand that it relies on functionality only in Ultimate, but another version should be made for the Professional edition. We'd love to have it!

  23. Rikelme says:

    Wow… I would love to see some similar tool for GNU GDB for Linux… 🙁

  24. Brian D says:

    Ultimate Only..Why…I run a small dev business and Ultimate is just out of the price range. Ultimate gives you all the high end corporate features I don't need, but Intelli-trace and Code  Bubbles are features for every body, especially for smaller business that can't afford the high license fees and have a smaller dev and testing budgets. Don't price yourselves out of the market.

  25. Wael says:

    Very nice!  

    Adds a great visual to help in understanding the program structure.

  26. Brian says:

    This looks awesome! Great Job!!

  27. FJD says:

    Realy sucks that only the vs ultimate users will get this, I can already see where this would have made my life alot easier.But there is no way I'm getting vs ultimate  ðŸ™

  28. Hemme says:

    +1000 for Why is this only available in Ultimate?

  29. James Murphy says:

    No point in even looking – no matter how cool – because I use pro via MSDN and I struggle to find much justification (cost/benefit) for even a single step up in version (allowing that I get office and some other tools via Action Pack).

    Pity.

  30. Dave says:

    Superb. Thanks for the efforts.

  31. Jim Lamb says:

    It would be great if I could attach an XPS of the canvas to the bug when I check in the fix. That would be a nice opportunity for integration with TFS.

  32. Kael Rowan says:

    @Jim: Indeed, that's one of the main reasons we added the Debug -> Debugger Canvas -> Save as XPS command.  It's pretty cool!

  33. Super cool!!! Can't wait to use Debugger Canvas

  34. FrankLin says:

    I do really want this to be applied to C++ development  !!!

  35. jlafay says:

    I'm a little disappointed that the blog author/developer hasn't responded to any of the statements about Ultimate and because it's going to be mid June soon and there are no more updates. You really didn't aid the developer community in any way by restricting this to Visual Studio Ultimate.

  36. Kael Rowan says:

    @jlafay: Thanks for the honest feedback.  I would also love to have Debugger Canvas on Pro and other SKUs but the components that we use to do source code analysis are only available in Ultimate as part of the Architecture Explorer feature.  The best I can suggest is to either:

    1) Download the VS Ultimate trial via the link in the blog post and install Debugger Canvas on it, or

    2) Download the VS Ultimate Virtual Machine from Brian Keller and install Debugger Canvas on it.  Here is the link:

    blogs.msdn.com/…/now-available-visual-studio-2010-rtm-virtual-machine-with-sample-data-and-hands-on-labs.aspx

    Stay tuned next week for another update.

  37. Merennulli says:

    The Ultimate restriction will ultimately kill your feedback and adoption on what could have set Visual Studio apart. If this project dies because there aren't enough Ultimate users to support it, someone else will take over the idea, create a copyright-avoiding variation of it, and siphon developers away from you in droves. This is the first interface that actually fits around OOP rather than around text files, and it shouldn't be relegated to a version of the VS product that almost no one purchased.

  38. Mesan says:

    Boo on only making this available for ultimate!

  39. Tommi says:

    OMG : this is something that I've been missing sooo long…

  40. Pierre Bourgault says:

    We definitely want this in Premium and Pro.

  41. EOplmv says:

    I can almost see this meaning more to first year CS courses than professional dev environments. Really incredible stuff.

  42. seanb says:

    Looks really cool, but… Another down vote for ultimate only.

    Not all of us have that much money

    I am disappoint.

  43. Dennis C says:

    Gosh dang it– too cool to only be in ultimate version

  44. Juan Sebastian Muñoz Arango says:

    Impressive!

    Even if I'm not a VS user (Emacs one here) I really liked this idea!, I guess is the 1rst thing I like about VS 😀

  45. wooow .. it is so cool

  46. Limited_Atonement says:

    That's beautiful.  I regularly  oh…ultimate?  nm.

  47. Ben says:

    Ultimate only excludes me too… /sigh

    Well, it sounded exciting.