sticky
Please give us your feedback!

    Diskusi Umum

  • Hi everyone, we've set up this forum to get your feedback and answer any questions you may have about Debugger Canvas.  Feel free to start a new thread by clicking the "Ask a Question" link above, or simply reply to this thread if that's easier for you.  Thank you!
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research

    13 Juni 2011 19:52

Semua Balasan

  • Can you please make it available for other editions (like Pro.) too?
    14 Juni 2011 0:23
  • Can you please make it available for other editions (like Pro.) too?


    Thanks for the feedback Bydia.  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.

    The second option is probably the most convenient since Visual Studio Ultimate is already pre-installed on the machine. All you need to do is copy the Debugger Canvas VSIX into the virtual machine and install it.

    Thanks!


    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research





    14 Juni 2011 0:31
  • Its nice that you can zoom out to view the whole picture but very quickly, each box becomes too small to be able to read anything useful. Would be quite nice if when you mouse over a code box (maybe with a shortcut key or something) you get a zoomed in view of that box so you can view the overall picture but view code boxes individually (without having to zoom in each time)... unless this feature exists and I have missed it!
    14 Juni 2011 8:17
  • Hello, Debugger Canvas is just awesome. I have just given it a try and i'm crazy about it. One of the things that doesn't seem to work is Recursive Methods. I've tried a simple example, a recursive fibonacci method. It doesn't create new windows for the recursive calls, and i would really like to have that in the tool, as it would be much easier to debug recursive programs (You would be able to fully visualize the execution.)

     

    Thank you in advance and keep going this fantastic job!

    14 Juni 2011 9:29
  • Debugger canvas is good.. but won't work with huge projects.. i have a huge project which uses CMS. Now if i try to bebug visual studio crashes.
    It's not whether win or loose...it's how you play the Game...!
    14 Juni 2011 10:23
  • Its nice that you can zoom out to view the whole picture but very quickly, each box becomes too small to be able to read anything useful. Would be quite nice if when you mouse over a code box (maybe with a shortcut key or something) you get a zoomed in view of that box so you can view the overall picture but view code boxes individually (without having to zoom in each time)... unless this feature exists and I have missed it!

    Thanks for the great feedback.  Would you like to see the entire code when you mouse over a code box, or would you just want to see the member name that the box represents, or something else?  Also would you imagine using this feature to mouse over a locals/variables box too?
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    14 Juni 2011 14:39
  • Hello, Debugger Canvas is just awesome. I have just given it a try and i'm crazy about it. One of the things that doesn't seem to work is Recursive Methods. I've tried a simple example, a recursive fibonacci method. It doesn't create new windows for the recursive calls, and i would really like to have that in the tool, as it would be much easier to debug recursive programs (You would be able to fully visualize the execution.)

     

    Thank you in advance and keep going this fantastic job!


    Thanks for the great feedback.  We were very close to shipping with this feature but we ran into a technical limitation with showing multiple duplicate code fragments on the canvas at the same time.  We will continue to try and see if we can support such a scenario.
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    14 Juni 2011 14:46
  • Debugger canvas is good.. but won't work with huge projects.. i have a huge project which uses CMS. Now if i try to bebug visual studio crashes.

    Could you tell us how big your project is?  How many files/lines of code?  Is it a Solution with lots of Projects, or is it just one monster Project?

    Bugs that crash VS are our top priority so if you could help us reproduce the issue (without sending us your actual source code of course!) then I'd really appreciate it.  Thanks!


    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    14 Juni 2011 14:52
  • I meant the whole code box but since then I found the bar at the top which I may well be able to use to achieve what I was talking about.

    I trick with the debugger cnvas is to make it as easy as possible for the user to navigate around the canvas and that top bar goes a long way to helping.

    I think this is great and am enjoying the different debugger experience this brings. It looks good too :)

    Another thought: with the traditional call stack you can easily navigate up the call stack. I found the shortcut (Ctrl + Left Mouse Click) for navigating down the call stack but can't find anything to go up the call stack, is this functionality there?

    David

     

     

     

     

    14 Juni 2011 15:15
  • Another thought: with the traditional call stack you can easily navigate up the call stack. I found the shortcut (Ctrl + Left Mouse Click) for navigating down the call stack but can't find anything to go up the call stack, is this functionality there?


    I don't know of any keyboard shortcuts that move up and down the stack (not even in regular VS), but that's a great idea.  I haven't heard about (Ctrl + Left Mouse Click) doing anything like that.  The only thing I've heard of that uses Ctrl + Left Mouse Click is the Productivty Power Tools extension that does Go-To-Definition when you Ctrl + Click on an identifier.  Perhaps that's what you were experiencing?
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    14 Juni 2011 15:29
  • Another thought: with the traditional call stack you can easily navigate up the call stack. I found the shortcut (Ctrl + Left Mouse Click) for navigating down the call stack but can't find anything to go up the call stack, is this functionality there?


    I don't know of any keyboard shortcuts that move up and down the stack (not even in regular VS), but that's a great idea.  I haven't heard about (Ctrl + Left Mouse Click) doing anything like that.  The only thing I've heard of that uses Ctrl + Left Mouse Click is the Productivty Power Tools extension that does Go-To-Definition when you Ctrl + Click on an identifier.  Perhaps that's what you were experiencing?
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research

     

    It looks like the side affect of the power tools extension (if that is causing it) means that you can effectively open new code boxes linking from a given code box ... its really nice even if it is a side effect ... maybe you guys could support that 'natively'?

    I am not too fussed about how it is achieved, the functionality that would be useful is that if I apply a break point (or for that matter an exception is thrown) a lot of the time I would want to traverse the call stack without need to Step In/Step Out (particularly in an exception scenario). This could simply be some kind of UI 'tag' attached to the title bar called Parent which opens the code box of the 'parent' code. This way people could easily traverse up the call stack. Obviously attaching shortcuts is a nice to have, maybe you could use Ctrl + F11 and Ctrl + Shift + F11 (as these would tie in nicely with the debug step in/step out shortcuts).

    This could go further outside of Debugging as it could show all the code boxes that call a given code box ... I could see that being quite handy too!

    Mmm ... the ideas are starting to flow ....

    David

     

     


    14 Juni 2011 15:57
  • It looks like the side affect of the power tools extension (if that is causing it) means that you can effectively open new code boxes linking from a given code box ... its really nice even if it is a side effect ... maybe you guys could support that 'natively'?
    We actually do support that natively, since the Productivity Power Tools feature simply invokes the native GoToDefinition command, and we natively handle that by opening the target code (regardless whether you invoked GoToDefinition by pressing F12, or Ctrl+Clicking, or right-clicking and selecting Go to Definition).
    I am not too fussed about how it is achieved, the functionality that would be useful is that if I apply a break point (or for that matter an exception is thrown) a lot of the time I would want to traverse the call stack without need to Step In/Step Out (particularly in an exception scenario). This could simply be some kind of UI 'tag' attached to the title bar called Parent which opens the code box of the 'parent' code. This way people could easily traverse up the call stack. Obviously attaching shortcuts is a nice to have, maybe you could use Ctrl + F11 and Ctrl + Shift + F11 (as these would tie in nicely with the debug step in/step out shortcuts).

    Great idea.  We will look into adding UI features (like the tag you suggest) and see how that works out.  In the mean time if you are keyboard savvy then you can always use:

    Go to the previous frame: CTRL+D, C, DownArrow, Enter
    Go to the next frame: CTRL+D, C, UpArrow, Enter

    This could go further outside of Debugging as it could show all the code boxes that call a given code box ... I could see that being quite handy too!

    Mmm ... the ideas are starting to flow ....

    Thanks again for great feedback.  We are definitely interested in expanding the scope of the canvas-based experience to include the development scenarios outside of debugging in the future.  Please keep the great ideas coming!

     


    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    14 Juni 2011 16:24
  • Hello! Debugger canvas is very interesting thing. However, it's almost unusable on small screens. Even on 1440x900 it's hardly to fit more than 3 code fragments even if wordwrap is on. So, some suggestions:

    1. Add an option to force wordwrap on debug canvas even if its disabled.

    2. Allow us to collapse (autocollapse) the code fragments.

    3. The title of the code fragment bubble has a triangle button that allows to add bubbles with other methods from the same class. It would be more usable if you'll make method name label part of the button.

    4. Add "Relayout" command to the context toolbar and fix auto-layout on closing the code bubble.

    5. Allow to specify max fragment size using line/charcount, not pixels.

    6. Add an horizontal scrollbar and auto-scroll to the last code fragment after the current one was closed.

    7. Add "Close all but this", "Close all callers" and "Close all called" commands

    8. Make the "Close" button of the code fragment window to be the last one.

    Thanks!



    • Diedit oleh Sinix 15 Juni 2011 2:12 more suggestions!
    15 Juni 2011 1:40
  • I only have premium version of visual studio but this works fine anyway. I did not notice the limitation until I already had installed. Looks cool and would be shame if it was only ultimate.

    After debuging around this morning what I miss most is scrollbars. I had opened few windows in rather long call stack and it took me time to find all that was open.

     

    Best Regards

    Einar

     

    15 Juni 2011 12:31
  • Confirmed that it works on Premium. I found that EXACTLY ALL of the DevLabs tools that advertise Ultimate support actually support Premium as well - I am not sure if all of the Ultimate APIs are shipped with Premium (just not exposed on the UI) but there are definitely no problems.
    15 Juni 2011 14:57
  • first impression is I LIKE IT

    i think it will be a real nice addition to the dev environment

    i do have issues with the resolution and being able to see the code and also the performance when stepping through code

    also, expanding the locals from the little icon in the top right of the code bubble is painfully slow.


    CJ
    15 Juni 2011 20:33
  • Hi, i've been looking forward to this and the first impressions are great!

    One immediate thing that I would like to see is: some sort of marker on a parent bubble showing which line is the current line. So just like how you have a yellow (default) line showing the current debugging line, the parent bubble could show the line which was stepped into with a highlight or marker.

    Great work so far though!

    15 Juni 2011 22:29
  • first impression is I LIKE IT

    i think it will be a real nice addition to the dev environment

    i do have issues with the resolution and being able to see the code and also the performance when stepping through code

    also, expanding the locals from the little icon in the top right of the code bubble is painfully slow.


    CJ


    Thanks, CJ!

    What are your issues with resolution? Are you talking about the tradeoff between zooming out to see more methods and zooming in to read the code? The mini map that you can expand from the upper left hand corner might help. Did you try that yet? 

    Also thanks for reporting on the performance of stepping and expanding locals. These are high priority items for us to understand and to address. Do you find that there is a relationship between the two performance issues you're seeing? Does it happen on the same methods, or is performance of the stepping and locals window seemingly unrelated to each other?

    Thanks! --Jens

    15 Juni 2011 23:41
  • Hi, i've been looking forward to this and the first impressions are great!

    One immediate thing that I would like to see is: some sort of marker on a parent bubble showing which line is the current line. So just like how you have a yellow (default) line showing the current debugging line, the parent bubble could show the line which was stepped into with a highlight or marker.

    Great work so far though!


    Hi James,

    Thanks for the nice feedback! I assume that you mean highlighting the current line of code in the parent and not the drawn lines between methods which are already hightlighted. I really like the idea of having a visual que like that. We'll definitely look at that for future versions.  

    Thanks! --Jens

    15 Juni 2011 23:49
  • Hello! Debugger canvas is very interesting thing. However, it's almost unusable on small screens. Even on 1440x900 it's hardly to fit more than 3 code fragments even if wordwrap is on. So, some suggestions:

    1. Add an option to force wordwrap on debug canvas even if its disabled.

    2. Allow us to collapse (autocollapse) the code fragments.

    3. The title of the code fragment bubble has a triangle button that allows to add bubbles with other methods from the same class. It would be more usable if you'll make method name label part of the button.

    4. Add "Relayout" command to the context toolbar and fix auto-layout on closing the code bubble.

    5. Allow to specify max fragment size using line/charcount, not pixels.

    6. Add an horizontal scrollbar and auto-scroll to the last code fragment after the current one was closed.

    7. Add "Close all but this", "Close all callers" and "Close all called" commands

    8. Make the "Close" button of the code fragment window to be the last one.

    Thanks!




    Hi Sinix,

    Thanks for the feedback. I really like your suggestions for making it better to work on a smaller screen! I also appreciate the usability feeback on the close button and breadcrumb bar buttons.

    Keep the ideas coming!

    Thanks! --Jens

     

     

     

    16 Juni 2011 0:03
  • Thanks for the nice feedback! I assume that you mean highlighting the current line of code in the parent and not the drawn lines between methods which are already hightlighted. I really like the idea of having a visual que like that. We'll definitely look at that for future versions.  

    Hi! You can customise highlight color for methods in callstack using Fonts & Colors - Read-Only Region (as for me, it's slightly counterintuitive).

    16 Juni 2011 0:15
  • Thanks for the nice feedback! I assume that you mean highlighting the current line of code in the parent and not the drawn lines between methods which are already hightlighted. I really like the idea of having a visual que like that. We'll definitely look at that for future versions.  

    Yes! Thats exactly what I mean.
    16 Juni 2011 1:40
  •  

     

    This a cool power tool provided in VS 2010. Superb !, looking for new versions with more advanced features..

     

    Debugger Canvas in Visual Studio 2010

    Debugger Canvas in Visual Studio 2010 – Part II




    SSN "If you want to live a happy life, tie it to a goal. Not to people or things." : Albert Einstein
    16 Juni 2011 10:47
  • Hi,

    Excellent tool, but major issue of speed expecially on large projects!!!, I am using a fast quad core system with SSD but still extremely slow, and at times can't even get to debug!!!!, VS Ultimate Hangs

    Hope it gets fixed soon as this is a brilliant idea then I really can start using it, but at the moment only small projects can handle it on VS ULTIMATE , again thanks MS / Dev Labs team ...

    • Please fix speed quickly :-)

    .. Thanks Tridex ..


    16 Juni 2011 11:06
  • Thanks for the feedback Tridex.  We will definitely be working on improving performance.  Can you give us some more details about the size of your projects, for example the number of files/lines of code, and whether you have several small projects in one solution, or if you just have one giant project?  Information like this will help us focus our efforts.  Thanks!
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    16 Juni 2011 12:29
  •  This a cool power tool provided in VS 2010. Superb !, looking for new versions with more advanced features..

     Debugger Canvas in Visual Studio 2010

    Debugger Canvas in Visual Studio 2010 – Part II


    Thanks, Suthish!

    We'd love to hear your suggestions for what new features you'd like to see.

    And great blogs! You're highlighting on some key features in the canvas in a great way. Keep them coming!

    Thanks,

    --Jens

    16 Juni 2011 23:07
  •  This a cool power tool provided in VS 2010. Superb !, looking for new versions with more advanced features..

     Debugger Canvas in Visual Studio 2010

    Debugger Canvas in Visual Studio 2010 – Part II


    Thanks, Suthish!

    We'd love to hear your suggestions for what new features you'd like to see.

    And great blogs! You're highlighting on some key features in the canvas in a great way. Keep them coming!

    Thanks,

    --Jens

    Thanks Jens,

     

    I like to have a history version of each Canvas. Looking for "Save As" option instead of exporting to .XPS file.

    Different coloring option for Lines (arrows..) etc..

     

     

     

     


    SSN "If you want to live a happy life, tie it to a goal. Not to people or things." : Albert Einstein
    17 Juni 2011 7:46
  • one of the greatest tool's i have seen & used recently. just love it!

    btw, it could be really useful if you added a new file format for saving debugging sessions (like in code bubbles) instead of just a plain xps file.

    hope it'll ship with vs.next & maybe in pattern&practices until then? :)

    17 Juni 2011 9:04
  • odedlaz:

    one of the greatest tool's i have seen & used recently. just love it!

    btw, it could be really useful if you added a new file format for saving debugging sessions (like in code bubbles) instead of just a plain xps file.

    hope it'll ship with vs.next & maybe in pattern&practices until then? :)

     

    Suthish:

    I like to have a history version of each Canvas. Looking for "Save As" option instead of exporting to .XPS file.

     


    Thanks, odedlaz and Suthish!

    It seems you both agree that you'd like to be able to save the debug sessions. This is an area that is very interesting. It would be great for us to learn more about how you'd like to use those saved sessions, basically when they would be most useful, and for what.

    For your desired purpose, would you like them to be a snap shot of the code and locals as the debug session was run? Or would you prefer a canvas that would update to the latest version of each method as you opened the canvas again?

    Others feel free to jump in, too!

    Thanks!

    --Jens

     

     

    17 Juni 2011 17:44
  • I second this!  The main reason I tried Debugger Canvas out was I was hoping it would help in debugging recursive methods. 

     

    I also had trouble with stepping into methods from metadata.  The debugger didn't show the current executing line.

     

    Pinning tooltips also doesn't work well, as they are pinned relative to the VS2010 window instead of the debugger canvas.  I love the "locals" window though, would be great to make that a normal watch window (or have a drawing palette of visualizers available in addition to the sticky note--wow that would be cool!)

     

    21 Juni 2011 18:22
  • I second this!  The main reason I tried Debugger Canvas out was I was hoping it would help in debugging recursive methods. 

    Hi Robert, thanks for letting us know you want to see this feature.  We will hopefully be able to provide it in the future.

    I also had trouble with stepping into methods from metadata.  The debugger didn't show the current executing line.

     We currently don't support showing methods from metadata in bubbles.  The generated code from metadata should open in a tab.  I'm not sure what you mean by "The debugger didn't show the current executing line"...  Normally code from metadata doesn't show the actual lines of code for the method, so I'm not sure what you mean.  Are you talking about code generated from metadata by VS2010, or are you using a plugin like Reflector Pro?

    Pinning tooltips also doesn't work well, as they are pinned relative to the VS2010 window instead of the debugger canvas.  I love the "locals" window though, would be great to make that a normal watch window (or have a drawing palette of visualizers available in addition to the sticky note--wow that would be cool!)

     


    Yes, we apologize for this limitation of the tooltips.  We probably won't be able to provide a fix for this for VS2010 since we don't actually control those tooltips.  Sorry about that.  As you mentioned, you can use the locals popup/bubble instead although they aren't quite the same.  Thanks.
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    21 Juni 2011 19:42
  •  We currently don't support showing methods from metadata in bubbles.  The generated code from metadata should open in a tab.  I'm not sure what you mean by "The debugger didn't show the current executing line"...  Normally code from metadata doesn't show the actual lines of code for the method, so I'm not sure what you mean.
    When I step into code defined in a referenced assembly that was built locally (so it has full source code), it does open the code in a bubble, but it isn't linked with an arrow like the normal bubbles, and the current line of code is not highlighted (the yellow "next statement" arrow). When I step into the same method without Debugger Canvas it works fine.
    Yes, we apologize for this limitation of the tooltips.  We probably won't be able to provide a fix for this for VS2010 since we don't actually control those tooltips.  Sorry about that.  As you mentioned, you can use the locals popup/bubble instead although they aren't quite the same.  Thanks.
    No need to apologize for free software! :) The tooltip feature could be worked around by providing a tool that is a cross between the sticky note and locals popup. You could attach it to a local variable in a code bubble. If it supported debugger visualizers, it would wind up making Debugger Canvas into a kind of graphical watch window, which would be awesome--possibly even more useful than the call graph itself.
    21 Juni 2011 20:26
  • When reusing the debugger canvas in a subsequent debugging action, I see that it has troubles scrolling to the breakpoint or blocking statement. And because we don't have scrollbars it is hard to navigate or even find the selected bubble.
    22 Juni 2011 15:16
  • When reusing the debugger canvas in a subsequent debugging action, I see that it has troubles scrolling to the breakpoint or blocking statement. And because we don't have scrollbars it is hard to navigate or even find the selected bubble.

    Hi riezebosch, thanks for reporting this.  Does it only happen the first time you hit a breakpoint/exception when reusing a canvas?  Or does it keep happening from that point on?  Also, is the selected bubble large enough to show all of the code, or does it have scrollbars?
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    22 Juni 2011 16:06
  • I just started using the Debugger Canvas yesterday.  It seems to work great so far and makes code navigation much easier. Right now I am working on a project which uses both WPF and WinForms.  When using the Debugger Canvas with WPF, it works great, but when I set breakpoints in the WinForms code, the Debugger Canvas does not activate.  This wouldn't be too big of a problem except that it also does not allow mouse-over variable data popups when in WinForms.
    23 Juni 2011 20:43
  • I just started using the Debugger Canvas yesterday.  It seems to work great so far and makes code navigation much easier. Right now I am working on a project which uses both WPF and WinForms.  When using the Debugger Canvas with WPF, it works great, but when I set breakpoints in the WinForms code, the Debugger Canvas does not activate.  This wouldn't be too big of a problem except that it also does not allow mouse-over variable data popups when in WinForms.

    Hi jssummers, thanks for the feedback.  Code-behind for WPF and code-behind for WinForms are both supported, so I'm not sure why Debugger Canvas doesn't activate on the WinForms portion.  Is there any more information you can give to help us reproduce the problem?  Thanks.
    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research
    23 Juni 2011 21:22
  • Hi Buddy,

    It's a great tool for VS2010, but it seems does not work with mouse middle button.

    25 Juni 2011 4:47
  • Hi Asgar,

    Good bug. Thanks for reporting!

    --Jens

    28 Juni 2011 18:29
  • Debugger Canvas is definitely a very interesting tool! It presents a unique visualization of program flow, thus reducing the developer's cognitive friction.

    After the initial WOW factor settled down, I began thinking about how I would actually use this. And not to sound blasphemous about this great new tool, but I'm also asking myself why I would use this. e.g. Under which circumstances would I fire this up vs. the standard debugger, and what additional insights would I hope to gain in doing so? Why not use this all the time, you might ask? Well.. presently it does not load up anywhere nearly as quickly as the standard debugger. I suspect that a performance gap will always exist, even with some future optimizations. (I'll be happy if that proves not to be the case.)

    When would I use Canvas?
    I think it would be really useful when taking over an existing project -- it would help illustrate code flow. But once familiar with the code base I'd likely revert back to the standard debugger and use the Call Stack. On a day-today basis I'd opt for speed over special effects. Again, the context being that I'm already familiar with the code.

    Still some friction...
    Like some other users, I find the navigation amongst code bubbles to be a bit awkward. In order to change the view, one drags around a little box in a separate region. Perhaps this could be consolidated into a single map-like view. e.g. Allow the canvas to be directly dragged around until what you want to see is on-screen. Use the mouse wheel to change zoom level.
    Another frictional element is that if you do look at some code bubble that has already executed, clicking the code there does not automatically populate it with Call Stack info. It's necessary to go to the Call Stack & click there; I think that ought to be automatic.

    Free Idea:
    What feature would make this an absolute go-to tool? Hmmm... It already visualizes program flow. What if it were to fold Performance Information into that display and provide a visual Performance Heat Map? Now *that* would be cool on top of cool!
    30 Juni 2011 20:04
  • Debbuging Canvas does not automatically expand any collapsed outlining such as regions or functions that were collapsed to definitions. Please fix this because it is unusable otherwise.

    Good work, though, really handy to see everything on one screen instead of jumping between tiny methods.

    05 Juli 2011 7:16
  • Debugger Canvas is definitely a very interesting tool! It presents a unique visualization of program flow, thus reducing the developer's cognitive friction.

    After the initial WOW factor settled down, I began thinking about how I would actually use this.


    Hi Mark,

    This is exactly the kind of feedback we're looking for to determine the future of this concept in VS.

    It seems you're heading in the direction of using the canvas for special purposes, which is an interesting direction for us to think about.

    We're also very intersted in what causes friction in general usage of the canvas. I love the idea of populate already executed bubbles with the Call stack info when clicking on them! We've also gotten feedback from others that we should make it easier to navigate between bubbles with the keyboard, for example up and down the call stack.

    I'd like to point out two features that are in the tool that you might like. You can actually click on the canvas to drag it around directly. You can also zoom in and out using Ctrl-Scroll wheel.

    Visualizing performance information is a great idea!

    Thanks for your thoughful email. Please keep the feedback coming!

    Thanks,

    --Jens

     

    06 Juli 2011 23:02
  • Debbuging Canvas does not automatically expand any collapsed outlining such as regions or functions that were collapsed to definitions. Please fix this because it is unusable otherwise.

    Good work, though, really handy to see everything on one screen instead of jumping between tiny methods.


    Hi,

    Good bug! Thanks for reporting!

    Unfortunately we do have some issues with collapsed regions that we haven't found a way to work around in Visual Studio 2010.

    Thanks!

    --Jens

    06 Juli 2011 23:05
  • My 2 cents worth.

    What it broke and how I expected it to work.

    #1 It needs a lot of work. It almost never worked for anything that I used. e.g. Debugger canvas never comes up for unit tests. It would come up more regularly for website debugging. I don't think I ever got it to come up for debugging wpf, winform or sl apps.

    So in my honest opinion it needs to work everywhere.

    #2 When it did work it seems to have a lot of problems displaying the actual code that's being executed. E.g. When debugger canvas would break into a method where the cursor was displayed was almost always off-screen and would have to scroll there manually to get there. In my experience this was a 95% of the time scenario (out of the 5-10% of the times the Debugger Canvas would actually come up for me)

    #3 - Don't break anything of VS.NET. For me the Debugger canvas would seldom ever show up populated with the current section that the debugger broke into. This meant for 98% of the time I was debugging I was in regular .Cs files. And The extension broke the "Hover-To-See" values making debugging a very painful and tedious experience.

    Features I would like to see

    #1 Native code editing should be there.

    #2 When in a code bubble hover over a method pops out a code bubble so you can easily see where it's going.

    Ideas

    Make code bubbles nameable and collapsable like #regions -

    Possibly Expand the code bubble idea to #regions

    Try to figure a way to tie in Time Machine debugging into code bubbles to make this feature more usable and more natural.

     

    Props to  people working on this I just think that you really need to put more effort into this to make it a first or 2nd class citizen in VS.NET . I ended up having to uninstall it because debugging is very valuable to me and losing most of the debugging capabilities that vs.net offers to me for something that works some of the times is not a good tradeoff.

     

    10 Juli 2011 20:12
  • Hi Marc,

    Thanks for your feedback!

    I've replied regarding the bugs you've seen in other threads, hopefully we can get to the bottom of those.

    I like your feature ideas! Here are some comments:

    - Native code editing: Do you mean editing code in the code bubbles? This can be turned on under Debug: Debugger Canvas: Options and settings

    - Pop up method definition when hovering over code. Great idea! I like the idea of "peeking" at the code without having to add a bubble for it. For now, we do have Go to Definition enabled, so you can click on a method call and go to definition in a new bubble, using the context menu or F12

     

    - Nameable and collapsible like #regions: I like it! Currently Regions are not supported due to an incompatibility between the regions and our fragments, but this is something we'd like to look at in the future.

    - Time machine debugging: Do you mean IntelliTrace? Check out the video on the first page. We've done a simple integration of the two, where you can drag a call from the IntelliTrace window to the canvas to see what code gets called subsequently. Lots of potential there, for sure!

    Thanks again for taking the time to provide such rich feedback. It is truly appreciated.

    Thanks,

    --Jens

    11 Juli 2011 20:00
  • Being able to generate a diagram for an entire project without stepping through the entire thing would be great.
    18 Juli 2011 5:30
  • I really like this concept, and I think you did a great job!

     

    There are two behaviors that make using debugger canvas a bit cumbersome.

     

    the first is, even though the next statement is highlighted, I sometimes don't see it in my screen, and I have to scroll to find it. this happens too many times for comfort.

     

    The second is that the canvas is not editable. This means I have to navigate back to the file each time. This can be work around in either automatically navigate to file when you type into the canvas (when you're not in debug mode), or at least add a keyboard hotkey to make file navigation quicker.

     

    Thanks,

    Amir

    20 Juli 2011 9:42
  • Being able to generate a diagram for an entire project without stepping through the entire thing would be great.


    Hi Adam,

    Thanks for the idea! What kind of a diagram would you like to see? Something like a Class diagram, only with code bubbles, or sets of execution traces for commands in your project?

    Do try out our integration with IntellTrace, which gives you call trees for calls from an execution trace. Check it out in the video: http://msdn.microsoft.com/en-us/devlabs/hh227299

    Thanks!

    --Jens

     

    20 Juli 2011 17:34
  • the first is, even though the next statement is highlighted, I sometimes don't see it in my screen, and I have to scroll to find it. this happens too many times for comfort.

    The second is that the canvas is not editable. This means I have to navigate back to the file each time. This can be work around in either automatically navigate to file when you type into the canvas (when

    Hi Amir,

    Thanks for your feedback!

    The first problem seems to be happening to more people than you. Have you seen a pattern for when it works correctly and when it doesn't? We're planning to do bug fixing in this area, and would love to have good repros, so that we can make sure that our fix addresses the problem correctly.

    When it comes to editing I have great news! If you go to Debug-> Debugger Canvas -> Options and Settings, you can turn on editing in the canvas!

    Note that there may still be bugs in this feature, so save often if you turn it on! That being said, we typically leave it on ourselves, so it's not all that flaky.

    Please let us know how the Canvas works for you with editing on. We'd love to hear both good and bad news, about bugs, usability and usefulness!

    Thanks!

    --Jens

     

    20 Juli 2011 17:44
  • Along with all the other great suggestions, I'd like to see some configurable options that would allow me to stack the code bubbles vertically as well as horizontally.  In fact, I would like to go so far as to have them stack vertically when they're in the same project (assembly) and fork off horizontally when crossing project boundaries (or vice-versa).

    Either way, it's a great addition to VS 2010 and I'd like to see it make it into v.Next.


    --- Thanks, Jeff (http://devmatter.blogspot.com/)
    22 Juli 2011 21:01
  • Along with all the other great suggestions, I'd like to see some configurable options that would allow me to stack the code bubbles vertically as well as horizontally.  In fact, I would like to go so far as to have them stack vertically when they're in the same project (assembly) and fork off horizontally when crossing project boundaries (or vice-versa).

     

    Hi Jeff,

    Thanks for the suggestion! It is great to get some feedback on the layout. We currently have a very simple algorithm, but it is very intersting to hear how you and other users would like to arrange the bubbles, given a more sophisticated layout engine.

    Thanks,

    --Jens

    28 Juli 2011 19:40
  • Great tool.  Hopefully it will be improved and make it into the next VS version (hopefully all flavors of the next version)
    28 Juli 2011 19:50
  • Hi Debugger Canvas is nice tool for me. I want drag and drop variable from code to canvas.

    04 Agustus 2011 7:38
  • Hi Debugger Canvas is nice tool for me. I want drag and drop variable from code to canvas.


    Hi,

    Thanks for the feedback! Dragging variables is an interesting idea. What would you like to see when dragging a variable to the canvas? A snapshot of the value, or something else?

    Thanks!

    --Jens

    05 Agustus 2011 17:56
  • There are a lot of responses, so I'll reply in ignorance of what has already been provided.

    My initial feedback is this: I like the idea and viewing the path of code (aside from just the call stack) is very helpful.  I'd like to see the performance improved, however, and this offered to lower versions of Visual Studio if possible.

    I have a few suggestions:

    • Instead of the mouse scroll wheel scrolling up and down, can it instead zoom in and out?  Scrolling actions aren't as important because of the click-drag movements available.
    • On a code bubble, either allow them to be editable (in or out of debugging) or provide a "Go To Code" shortcut to jump to the line you want to edit.
    • Add a small amount of padding to the code bubble so the code lines aren't against the very edge of the window.
    • Work on the zoom-pan semantics.  In a large debug chain, being able to traverse the screen is important.  Perhaps offer a "snap to bubble" shortcut if the zoom level is not 100%, so I can zoom out then double-click a bubble to snap back in very quickly.

    Other than my suggestions, I'm enjoying using it.



    10 Agustus 2011 9:15
  • Hi,

    This is obviously really cool, but for me there are several things that stop it being usable under normal debugging conditions.

    . The watch windows for the individual bubbles quickly go off the side of my screen. I cannot resize them and they don't intelligently size themselves in the first place.

    . When taking a snapshot of the current variable state at a given time; wouldn't it make more sense to create a tab displaying the time, rather than placing each window to      the right of the last, which again makes them unusable. That way I would have a row of tabs along the top of a single window.

    . I cannot copy a value or copy a collection of symbols/values/types from the symbols I'm debugging.

    . I cannot modify the values of the symbols I'm debugging.

    . If I haven't checked the "Make 'Start Debugging in Debugger Canvas' the default..." option in Tools/Options, (and I don't have intellitrace as I have to make do with VS Premium) it would be freaking great if I could hit a break point (or break on an exception) and have an option to open up a Debugger Canvas that displays the current stack.

    But otherwise this is totally awesome

    26 Agustus 2011 12:56
  • Very cool.

    When we can expect to see Code Bubles as well.

    Graph button (IDA Dissasembler as an example) for debug would be nice addition as well.

     

    Thanks.

    26 Agustus 2011 13:49
  • Very cool.

    When we can expect to see Code Bubles as well.

    Graph button (IDA Dissasembler as an example) for debug would be nice addition as well.


    Hi Slava,

    Thanks for the input! I cannot say much about future releases, but we're definitely thinking about where to take these ideas next.

    Thanks,

    --Jens

    26 Agustus 2011 23:13
  • Hi,

    This is obviously really cool, but for me there are several things that stop it being usable under normal debugging conditions.

    . The watch windows for the individual bubbles quickly go off the side of my screen. I cannot resize them and they don't intelligently size themselves in the first place.

    . When taking a snapshot of the current variable state at a given time; wouldn't it make more sense to create a tab displaying the time, rather than placing each window to      the right of the last, which again makes them unusable. That way I would have a row of tabs along the top of a single window.

    . I cannot copy a value or copy a collection of symbols/values/types from the symbols I'm debugging.

    . I cannot modify the values of the symbols I'm debugging.

    . If I haven't checked the "Make 'Start Debugging in Debugger Canvas' the default..." option in Tools/Options, (and I don't have intellitrace as I have to make do with VS Premium) it would be freaking great if I could hit a break point (or break on an exception) and have an option to open up a Debugger Canvas that displays the current stack.

    But otherwise this is totally awesome

    Hi Herbaceous Artemesia,

    Great input it seems you've used the in place watch windows a lot, and it's great to get input on problems and possible improvements for it! We'll definitely keep those in mind as we think about future imporvements to the canvas. Here's a few comments:

    - You can actually resize them, although it is a bit hard to discover. Point to the splitters between the column headings, then you can resize each column, including the rightmost one.

    - There is a trick you can try to use Debugger Canvas "on demand". You won't get the whole stack immediately, but you'll get a canvas you can step through bubbles with, and add bubbles from the calls stack. What you do is this: After you've hit a breakpoint in a file tab, you go to the Debug menu and add a new Canvas. Next time you step, the canvas will be used, and from now on, you're debugging in the canvas! This was not really something we designed for, but it seems to work. Let us know if this works for you!

    Thanks,

    --Jens

     

    26 Agustus 2011 23:27
  • This latest drop is quite a bit improved over the previous version.  I'm really digging using it.  Makes me wish I had a 30" monitor though.  :-)  Keep up the great work!
    23 Februari 2012 21:29
  • Hi Keith,

    Thanks! Great to hear that you like it! Let us know if you have other suggestions, questions or bugs for us, or if you find a source of cheap 30" monitors :-)

    Cheers,

    --Jens

    23 Februari 2012 22:55
  • Hello Kael,

    I'm found Debugger Canvas after watch a Channel 9 video about it. It's amazing tool. I installed in my notebook, running Windows 8 Consumer Preview, VS2010, and everything works just fine! This change the debugging experience. I showed to my team's developers and they loved! Great job! Thanks for share with us.

    Carlos Mattos (C# MVP from Brazil)

    cmattos@live.com

    29 Mei 2012 18:26
  • Great job on the tool,  we've needed something like this for a long time.  

    However,  it seems the Debugger Canvas is messing up the source code outlining after a debugging session and it is closed.  This gets aggrevating because outlining is critical when working with LARGE source sets.   The only fix is to select the "Toggle All Outlining" option,  close the file tab,  then reopen it.

    Any ideas or suggestions ?

    Thanks


    Walter Meyer II

    31 Juli 2012 14:42
  • Hi Walter, I haven't heard of that issue before.  You're saying Debugger Canvas messes up the outlining in the original full file's "tabbed document" window, not the code as seen on the canvas, right?  Does it only happen after the canvas is closed?  In other words, if you switch back to the tabbed-document view in the middle of the debug session without closing the canvas, is the outlining messed up then as well?  It would be nice to determine the exact point at which the outlining in the file tab becomes messed up. 

    Also does the outlining remain messed up even after closing the file tab and opening it even if you don't Toggle All Outlining first?


    Kael Rowan | Research Software Design Engineer | Human Interactions in Programming | Microsoft Research

    31 Juli 2012 15:42
  • Hi Kael,

    The tabbed document window's outlining gets hosed,  that's correct Kael.  I'll have to do some more checking to see when exactly within the Dbg Canvas cycle the outlining gets destroyed [working - getting ready for a meeting,  can't do it now]. 

    Yes, if you close the tabbed doc and reopen without selecting "toggle all outlining" first,  the outlining is not there.

    Let me play around with it some more after a meeting and I'll see what I can find regarding the exact [mis]behavior.

    -Walter


    Walter Meyer II

    31 Juli 2012 18:42
  • Will the debugger canvas be supported for VS 2012/VS 2013?
    27 Nopember 2013 18:38