Visual Studio 2015 Diagnostic Tools

Play Visual Studio 2015 Diagnostic Tools

Description

In this episode, Robert is joined by Dan Taylor, Angelos Petropoulos and Charles Willis to explore some of the enhancements to the diagnostic tooling in Visual Studio 2015. You'll see how these tools are now brought into the debugging process to make them easier to discover and use [01:20], what improvements have been made to IntelliTrace [03:45], a new feature named PerfTips that makes it easier to evaluate the performance of your app during debugging [14:00] and the new memory usage tool that runs while debugging [23:15].

Embed

Download

The Discussion

  • User profile image
    gregt_uk

    Intellitrace rocks !

  • User profile image
    AlexB9

    Very interesting!

    Except from the memory management tool, how much of Intellitrace will be usable with c++?

    Thanks.

  • User profile image
    repka

    I have collect Intellitrace events and call information turned on, yet I still don't have detailed info on events as seen in this video. Also I can't see the callstack of the event.

  • User profile image
    angelosp

    @AlexB9: IntelliTrace (debugger events + historical debugging) is the only feature in the video that is not available for C++. The CPU Usage, Memory Usage, and PerfTips features shown in the video all work for C++ in the CTP 5 release! Go ahead, try it out and let us know what you think :)

    @repka: Let's get to the bottom of this together. Shot me an email at angelpe@microsoft.com and we'll take it from there (I don't have your email).

  • User profile image
    repka

    @angelosp: Once I restarted the box, event rows started expanding and "Activate historical debugging" link showed up. Yay! Gotta note that I just installed CTP5 and that was its first start when that problem occurred. Thanks!

  • User profile image
    Djeez

    This looks very nice! I really like the integration of the tools with the normal F5 way of working.

    It was mentioned that he memory profiler also works for native types, yet the bitmap memory usage did not included the unmanaged memory. Was this because the debugging options were set to Just my code"? Or, to put it differently, is there a way to show all the memory allocated for an object? It is not always obvious that an object consumes large unmanaged memory.

     

  • User profile image
    Charles​WillisMSFT

    @Djeez: Glad you like the direction we're heading in.

    To answer your question, there is no setting that will show the unmanaged memory for a managed object when viewing the managed heap. If the growth in memory shown on the managed snapshot tile is far less than the growth in memory shown on the Private Bytes graph, it's a good bet the growth is in native. However, if you switch to mixed-mode debugging in your project's Debug options, you'll get snapshots of both the managed and native heaps. Currently, there is no direct way to correlate a native allocation with a corresponding managed object.

    Check out my blog post on the memory tool: https://aka.ms/vsmemorydebug

  • User profile image
    Dwain

    I really like where this is heading, however, IMHO I feel like the workflow is still not there yet. When compared to a tool like ANTS Performance Profiler, what I like about their workflow process, is I'm able to simply run the application, then evaluate on a method level the execution times, which then provides the ability to drill down into the specific methods. 

    I feel like this is a better process than having to step through the code via debugging to figure out the elapse time on methods. Maybe I'm missing something? But overall this is certainly an improvement.

  • User profile image
    dantaylo

    @Dwain: thanks for the feedback! We have had a profiler in Visual Studio for quite a while that runs without the debugger and offers the method-level breakdown of execution times you are after. In VS 2015 you can access it by going to Debug -> Start Diagnostic Tools Without Debugging... (Alt+F2).

    The new feature we are showing here is that we have brought some of our profiling capabilities into the debugger so that an order of magnitude more people can take advantage of performance information as part of every-day debugging.

  • User profile image
    bradlaptop

    I was wondering if the sample projects could be downloaded for testing purposes with CTP?

  • User profile image
    Charles​WillisMSFT

    @bradlaptop, you can download the PhotoFilter example from https://aka.ms/diagtoolswndsample

Conversation locked

This conversation has been locked by the site admins. No new comments can be made.