Debugging and Profiling Features in VS 2008

I wanted to do a little tour of some debugging and profiling features that you will see in Visual Studio 2008.   

Script debugging improvements – In addition to the mapping of breakpoints from your ASP.Net source into the resulting JScript, we now support much richer visualization of the types within JScript and also support text and plugin visualizers.  You can read more details on this here.

Profile diff’ing – This is one of those features the team really wanted to do in V1 of the profiler but couldn’t.  However, we know that everyone wants it.  Today we have a nice experience around this area so you can get continuous feedback on performance improvements you are trying to make.  Again, you can read more details here.

Thread debugging improvements – The multi-core trend is going to continue to advance quickly in the coming years.  We haven’t really improved the status quo on debugging multi-threaded apps until VS 2008.  It’s our first step, and we hope to continue to make the concurrency debugging experience better over successive versions.

Ever played “Hunt the Thread”?It’s a game we invented by accident by making you put the threads window next to the stack window, and double clicking on each thread to find the one you want.  We solved this in VS2008 by putting cool stacktips on the threads window.  Now simply hover over the threads window and see a tooltip with the stack.  We have also added some auto-categorization of threads.  There are no custom categories this time around, but it’s something we are thinking about for a future version.  Now that you’ve found your thread you need to be able to remember it is the one you wanted to watch.  You can do this by clicking on the new “flag” column to mark this as a thread you care about. You can sort the thread list by “flagged” to make sure your threads are the ones at the top, and you can also filter the threads drop down in the debug location toolbar.


HotpathBeing able to drill down fast in the calltree view to the major bottlenecks is something that needed almost as much hand-eye coordination as “Hunt the Thread” in previous versions.  I’m glad that we have a nice experience for this scenario now.  You can read more about this here. 

The team is already starting to do some early work on new functionality and features that we can deliver after we ship VS 2008.  So, stay tuned.


Comments (20)

  1. My #1 please for the managed debugger is… can we see the return value of managed methods. It is pain having to create a named temporary variable to be the ‘return value’ in each and every function. In unmanaged code we could look at the EAX register. Now I know mechanics are different for managed code – so perhaps what’s needed is a debugger pseudo variable like $return or something.

    Not that I mean to grumble about this but I’d had an issue logged about this, like forever…

  2. [ 原文地址 ] Debugging and Profiling Features in VS 2008 [ 原文 发表时间 ] Friday, September 14, 2007 6:48 PM 我希望介绍一些在

  3. Somasegar says:

    Hi Tom,

    I am having the debugger team following up on the issue that you raise here.


  4. Juan Perez on Happy TeamLook Customer and quick update… James Manning on Quick question-and-answer…

  5. S. Somasegar the VP of Developer Division has just put up a post on his weblog detailing some new profiler

  6. Jan Jones says:

    This stuff looks fantastic.

    What about Memory profiling, we have an application which makes extensive use of XPathDocuments and trying to avoid memory fragmentation, large object heap etc is hard.

    We have used the SciTech profiler in the past, but to have something like the stuff you describe here for profiling memory would be amazing. VS2010 etc.. 🙂

  7. chrissc says:


    Yes, the profiler can do managed memory profiling.  It can show you the object lifetimes (i.e. Gen 0, 1, 2, and LOH), as well as where objects are being allocated in your code (with full call stacks).

    Hot path also works with the object allocation view, so you can quickly get a grasp on the code paths along which the most or the largest objects are being allocated.

    While hot path is not available in VS2005, the managed memory profiling is.  Both features are, of course, available in VS2008.

    For more info:

  8. Craig Baysinger says:

    When we migrated our code from VS6.0 to VS2005 we lost the file name and line number reporting for memory leaks. Our efforts to remedy this have been unsuccessful. Is there a change we need to respond to in order to get this feature working or was this feature downgraded in VS2005?

  9. joc's bLog says:

    I love Orcas. I would say that of course, but for me personally I’ve been involved in so much of the

  10. Soma’s writing a series of blog posts on VS2008 features in anticipation of our coming release. As part

  11. Soma's writing a series of blog posts on VS2008 features in anticipation of our coming release. As

  12. Hongbo says:

    Hi, Somasegar,

    Our firm is small and uses Red Gate Ant Pofiler with VS 2005 Standard Edition. We already have VS 2008 Professional and will move to it in coming weeks. But the Ant Proflier 3 does not support VS 2008 and the ANT Profiler 4 will not be released in months. VSTS is too expensive to us. We will not pay that much money just for its Code Profiler. But we do need a profiler for VS 2008 Professional.

    I believe there many small teams like ours paying several hundreds of $ to get a profiler from one way or another. Why Microsoft keeps its Code Profiler for $Big firms and ignore the market of small teams on profiler?

    Would you please consider to release a stand-along version of Code Profiler for small business?  

    Thank you

  13. We’ve been working with the HPC team and have released a parallel debugging add-in for Visual Studio 2008 that builds upon these improvements – at-a-glance thread position, independent and grouped thread control, cross-thread variable comparisons and more. There’s a free 30-day trial up at and some more info in the Microsoft HPC Pack 2008 SDK at (not required for multi-threaded debugging though)

  14. Logan says:

    I second Tom’s request. This is definitely something lacking in the VS debugger that would be extremely handy. Just add a "return value" entry to the "Locals" pane.

  15. [ Nacsa Sándor , 2009. január 19. – február 5.] Ez a Team System változat fejlett eszközrendszert kínál