<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>joc's bLog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/ms_joc/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/ms_joc/feed.xml</link>
    <description />
    <lastBuildDate>Tue, 16 Apr 2019 05:19:44 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>VisualStudio 2010 Beta1 – Free at last</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/visualstudio-2010-beta1-free-at-last</link>
      <pubDate>Wed, 27 May 2009 19:52:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2009/05/27/visualstudio-2010-beta1-free-at-last/</guid>
      <description><![CDATA[I was at TechEd2009 a few weeks ago and I was so sad we weren’t able to talk more about&nbsp;VS2010...]]></description>
      <content:encoded><![CDATA[<P>I was at TechEd2009 a few weeks ago and I was so sad we weren’t able to talk more about&nbsp;VS2010 there as much as we wanted to.&nbsp; One of my highlights of the conference was standing in the lunch line while a group of folks from a variety of different companies discussed the new historical debugger work we are doing in VS2010.&nbsp; They were clearly excited and had a bunch of questions so I introduced myself as the Development manager for the team that worked on that and we sat and had lunch.&nbsp; Although there is clearly more we can do in this area than we will be able to ship in VS2010, it was clear these folks were looking forward to picking up the Beta.&nbsp; Of course at that time, the Beta was slowly cooking, but now it’s ready, and we can have a good conversation.&nbsp; The team I’m responsible for worked on bringing this pipeline of value and innovation in VS2010:</P>
<P><STRONG>NEW FEATURE AREA</STRONG> <STRONG>Historical Debugger</STRONG></P>
<UL>
<LI>Explore important diagnostic events that happened in your application every time you press F5.&nbsp; Think of this as having things like Procmon/Filemon/Regmon and Fiddler integrated directly into your debugging experience!&nbsp; Except we do ones like exceptions and events specific to the libraries you are using like WinForms, Webforms, WPF etc.</LI>
<LI>Go back to previous break states in the debug history.&nbsp; Ever written a value from the autos window or locals window down on a post-it and continued on debugging?&nbsp; Now just go back to the point you stopped at and see the value.</LI>
<LI>Turn the historical debugger dial to high and see a history of the code execution, the method calls, the object states and call sites in the tree view of the Debug History window.&nbsp; Walk back to those points in time and understand what happened.</LI>
<LI>Open logs of both diagnostic events and application recording created from running the new Visual Studio Test tools so you can figure out why test are opening this issue on you when clearly - “It works on my machine”.</LI></UL>
<P><STRONG>NEW FEATURE AREA</STRONG> <STRONG>Test Impact Analysis</STRONG></P>
<UL>
<LI>Understand which tests to run to verify the changes you are making, as opposed to running every test.</LI>
<LI>Understand the specific methods changed that are causing the requirement to run a specific test.</LI>
<LI>Ask the question – if I changed this method – what tests would need to be run to verify it?</LI></UL>
<P><STRONG>Debugger</STRONG></P>
<UL>
<LI><STRONG>New</STRONG>: Tear off your datatips and leave them floating on the page while you debug.&nbsp; No need to go and hover over things time and again.</LI>
<LI><STRONG>New</STRONG>: WPF visualizer.&nbsp; Inspect the state of visual elements in WPF applications. No need to hunt down the specific property you have set based on which base class it is set in, use the filter mechanism in the visualizer to find it.&nbsp; See the rendered visual of the element in the preview pane.</LI>
<LI><STRONG>New</STRONG>: WPF logging.&nbsp; Track issues such as WPF DataBinding rather than asking “Why is may control/window black”</LI>
<LI><STRONG>New</STRONG>: minidump summary page.&nbsp; Use File-&gt;Open to open a minidump and see the data about the environment and modules that were present in the minidump.&nbsp; Search for your module in the list.</LI>
<LI><STRONG>New</STRONG>: Managed minidumps.&nbsp; Create minidumps for managed code running on the v4.0 runtime.&nbsp; Open those minidumps in Visual Studio and explore them.</LI>
<LI><STRONG>New</STRONG>: Thread window.&nbsp; A whole new thread window designed to help you find the important threads and figure out what they are doing.&nbsp; Show threads from all the processes you are debugging.&nbsp; Show the callstacks for all of those threads in the threads window itself.&nbsp; Group them by flagging them.&nbsp; Filter threads to only threads that have a particular pattern in their stack.</LI>
<LI><STRONG>New</STRONG>: Export your breakpoints.&nbsp; Tag and filter them in the breakpoints window.&nbsp; Export and give to a co-worker to let them import them and figure out a bug in some code you know</LI>
<LI><STRONG>New</STRONG>: Support for tasks in the task libraries as first class citizens</LI>
<LI><STRONG>New</STRONG>: New parallel stacks window shows the stacks of your application in a graphical format</LI>
<LI>Improved: Support for opening executables as a project and using that as the debug target</LI>
<LI>Improved: Support for inter-op debugging of x64 processes.&nbsp; </LI>
<LI>Improved: C++ – support strcmp/strncmp in conditional breakpoint expressions</LI></UL>
<P><STRONG>Profiler</STRONG></P>
<UL>
<LI><STRONG>New</STRONG>: Tier interaction profiling.&nbsp; Understand the cost of the calls to the database from your mid-tier. See the SQL queries that make up those costs.</LI>
<LI><STRONG>New</STRONG>: Performance rules. Get guidance on common performance issues that the profiler spots in the performance results.</LI>
<LI><STRONG>New</STRONG>: Thread contention profiling.&nbsp; Understand which resources your threads are most contending on.&nbsp; See the contention pattern between threads fighting over locks, and drill down directly to the line of code trying to acquire the resource.</LI>
<LI><STRONG>New</STRONG>: Parallel performance analyzer.&nbsp; Understand core utilization and how parallel your app is and could be.</LI>
<LI>Improved: Directly attach to managed CLR 4.0 applications without pre-setting environment variables.</LI>
<LI><STRONG>New</STRONG>: Profiler works on VPC, Hyper-V and VMWare</LI>
<LI><STRONG>New</STRONG>: Just my code support.&nbsp; </LI>
<LI><STRONG>New</STRONG> and improved: Integration with LoadTest.&nbsp; Switch on the profiler in the test settings for the load test.&nbsp; Open the load test result after the test and click on the profiler results icon in the tool bar.&nbsp; Drill right down to the code hotspots for your code under load.</LI>
<LI>Improved: Summary page shows CPU usage charts and hot stacks rather than just methods.&nbsp; An action link pane provides support for “one click to action”.</LI>
<LI><STRONG>New</STRONG>: Function details page.&nbsp; Understand graphically how time is being spent in this method, and the children of that method.&nbsp; Visualize the source code and show the hot lines line by line with performance statistics visualized in the code at the line level.</LI></UL>
<P><STRONG>Code Coverage</STRONG></P>
<UL>
<LI>Improved: Support for code coverage on 64bit code under test.</LI></UL>
<P>Whew!&nbsp; That should keep my blog full for a few months anyway!&nbsp; </P>
<P>Please pull down the Beta and give it a spin.&nbsp; It’s available from the product page here:</P>
<P><A title=https://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx href="https://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" mce_href="https://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx">https://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx</A></P>
<P>So far I have been running Beta1 and VSTS2008SP1 Side by Side with no issues.&nbsp; We spent a lot of time in this release focusing on setup, side by side and uninstall so I do think this is way better than in previous releases.</P>
<P>Fix those bugs, and stay posted for more deep dives in all of these areas.&nbsp; Sorry I didn’t drill deeper, but I wanted to get this post out today.</P>
<P>John</P>]]></content:encoded>
    </item>
    <item>
      <title>Debugger tip for stack overflows</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/debugger-tip-for-stack-overflows</link>
      <pubDate>Thu, 16 Apr 2009 11:56:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2009/04/16/debugger-tip-for-stack-overflows/</guid>
      <description><![CDATA[Every so often my team likes to make me feel useful.&nbsp; I don't get to write code and fix bugs as...]]></description>
      <content:encoded><![CDATA[<P>Every so often my team likes to make me feel useful.&nbsp; I don't get to write code and fix bugs as much as I used to when I arrived at Microsoft, but I do have a good few tricks up my sleeve.&nbsp; Someone from the profiler team was looking at a stack overflow in the analysis code that occured from some recent changes.&nbsp; As ever, these come from cyclic recursion patterns, and so you get the same few methods on the stack, and no good way to identify "when to stop" and what to inspect just before the exception:</P>
<P>A<BR>B<BR>C<BR>A<BR>B<BR>C&nbsp;<BR>...</P>
<P>My trick here is simple, and it's to do with "hit count" breakpoints. Set a breakpoint in one of the&nbsp;methods, but go ahead and add a hit count.&nbsp; You do this via:</P>
<P>Right click on the breakpoint-&gt;Select Hit Count...-&gt;hit when the hit count is greater than or equal to</P>
<P>Crank the hit count up to something insane (I tend to use 65536).&nbsp; Now let the program run to the crash point and see that the breakpoint never fires.&nbsp; Now go to the breakpoints window and look at the hit count for your breakpoint and it will tell you how many times that the code executed that breakpoint.&nbsp; Now go ahead and change the breakpoint hit count to only hit at that count or one or two below, and now you can debug through the last throes of the stack overflow....</P>
<P>Happy slaying! (Sorry for the lack of pictures)...</P>
<P>John</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>The science of bugs</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/the-science-of-bugs</link>
      <pubDate>Mon, 30 Mar 2009 18:49:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2009/03/30/the-science-of-bugs/</guid>
      <description><![CDATA[One of the more interesting things about working at Microsoft is the close collaboration the...]]></description>
      <content:encoded><![CDATA[<P>One of the more interesting things about working at Microsoft is the close collaboration the Microsoft Research (MSR) group has with academic research in many universities around the world.&nbsp; Today I was able to go to a talk form one of the researchers I most admire in the software engineering&nbsp;field: Prof. <A href="https://www.st.cs.uni-saarland.de/zeller/" mce_href="https://www.st.cs.uni-saarland.de/zeller/">Andreas Zeller</A> of <A href="https://www.st.cs.uni-saarland.de/?lang=en" mce_href="https://www.st.cs.uni-saarland.de/?lang=en">Saarsland University</A> in Germany.&nbsp; Prof. Zeller has a long history of research into bugs - what causes them, how to detect them and how to fix them.&nbsp; His book "<A href="https://www.amazon.com/Why-Programs-Fail-Systematic-Debugging/dp/1558608664/ref=pd_sxp_f_pt/102-6299657-0398520?ie=UTF8" mce_href="https://www.amazon.com/Why-Programs-Fail-Systematic-Debugging/dp/1558608664/ref=pd_sxp_f_pt/102-6299657-0398520?ie=UTF8">Why programs fail</A>" is one of very few books to cover this area.</P>
<P>Prof. Zeller's talk was on the subject of mutation testing to understand test suite effectiveness.&nbsp; You can find out more, including watching a pre-record of pretty much the same talk I attended, here:</P>
<P><A href="https://www.st.cs.uni-saarland.de/mutation/">https://www.st.cs.uni-saarland.de/mutation/</A></P>
<P>While I had some questions about the mutations that Prof. Zeller's team used, and my own concerns about how well test team's manage to make their test suites model after user's behaviours, there is no doubt that this research area is very interesting.&nbsp; The team is as yet unable to make any conclusions about the effectiveness of these techniques over existing coverage metrics. </P>
<P>My own perspective here is that anything that gets people thinking more about the test effectiveness, and less about specific numbers and metrics in things like statement coverage, the better.&nbsp; I'm continually asked about "what number of coverage should I shoot for" and "how much coverage does Microsoft aim for".&nbsp; This is a fruitless task in my opinion.&nbsp; Our coverage tells you one thing and one thing only - what code was not exercised at all by my test bed.&nbsp; You then need to make a judgement call about what to do about it.&nbsp; Is the functionality important?&nbsp; Is it really dead code?&nbsp; All of these go into the mix when making the decision to do work and write new tests.</P>
<P>Whatever your own opinion on these, Prof. Zeller's work continues to be thought provoking, so please go check it out,</P>
<P>John</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Speaking again at TechEd 2009</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/speaking-again-at-teched-2009</link>
      <pubDate>Fri, 20 Mar 2009 18:55:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2009/03/20/speaking-again-at-teched-2009/</guid>
      <description><![CDATA[I'll be out at TechEd this year and delivering the next version of my Debugger Tips and Tricks talk,...]]></description>
      <content:encoded><![CDATA[<P>I'll be out at TechEd this year and delivering the next version of my Debugger Tips and Tricks talk, which I last gave at PDC.&nbsp; </P>
<P><A href="https://channel9.msdn.com/pdc2008/TL59/"><FONT color=#0065e2>https://channel9.msdn.com/pdc2008/TL59/</FONT></A></P>
<P>In the version of the talk for this year [DTL323], I'll have similar content on VS2005 and VS2008, but will have an updated version of VS2010 to show off some new debugger features if you all are interested.&nbsp; I may even do a booth talk on VS2010 in more depth since I want to keep the breakout talk balanced with things you can take advantage of today.&nbsp; If you are headed to TechEd, please go ahead and sign up for this session early.&nbsp; Last time the room was way too small, and I really like the opportunity to have a meaningful Q&amp;A session during and after the talk.&nbsp; Not much ability to do that when you are a mile away!</P>
<P>See you all there!</P>
<P>John</P>]]></content:encoded>
    </item>
    <item>
      <title>VS2008 SP1 Shell fix available</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/vs2008-sp1-shell-fix-available</link>
      <pubDate>Thu, 12 Mar 2009 19:03:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2009/03/12/vs2008-sp1-shell-fix-available/</guid>
      <description><![CDATA[&nbsp;A fix for a widely reported crash in the Visual Studio 2008 IDE is now available.&nbsp; This...]]></description>
      <content:encoded><![CDATA[<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p><FONT size=3 face=Calibri>A fix for a widely reported crash in the Visual Studio 2008 IDE is now available.&nbsp; This fixes a crash that occurs after changing layouts (undocking/docking windows) and then changing modes (start stop debug, or switch to/from full screen. &nbsp;This bug was introduced in Service Pack 1 and the fix for this is now available for download via Code Gallery at:&nbsp; </FONT><A href="https://code.msdn.microsoft.com/KB960075"><FONT color=#0000ff size=3 face=Calibri>https://code.msdn.microsoft.com/KB960075</FONT></A></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>&nbsp;</FONT></o:p></P>
<P style="MARGIN: 0in 0in 0pt" class=MsoNormal><o:p><FONT size=3 face=Calibri>John</FONT></o:p></P>]]></content:encoded>
    </item>
    <item>
      <title>Why is my app so much slower under the debugger?</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/why-is-my-app-so-much-slower-under-the-debugger</link>
      <pubDate>Thu, 19 Feb 2009 13:39:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2009/02/19/why-is-my-app-so-much-slower-under-the-debugger/</guid>
      <description><![CDATA[Even when I switch to "Release builds"?&nbsp; We recently got a connect bug on this so I thought I'd...]]></description>
      <content:encoded><![CDATA[<P>Even when I switch to "Release builds"?&nbsp; We recently got a connect bug on this so I thought I'd share my thoughts.</P>
<P>In the debugger, we always try to minimize the impact we introduce on the debuggee, but there is always some work that we do in a synchronous way.&nbsp; We alway deal with breakpoints, even when they are in "tracepoint mode",&nbsp; we always do work when receiving a module load or thread create event.&nbsp; As I say, we try to minimize the impact of this work, and are constantly looking to improve the performance (and therefor usually the perturbance) on the target application.&nbsp; However the biggest contributor I see to app performance degradation&nbsp;is the fact that when launching under the debugger, the operating system uses the debug heap.&nbsp; </P>
<P>The VS debugger uses the standard Windows CreateProcess call to create the debuggee.&nbsp; See docs for that here: <A href="https://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx" mce_href="https://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx">https://msdn.microsoft.com/en-us/library/ms682425(VS.85).aspx</A>. We pass in the create flag DEBUG_PROCESS as documented here: <A href="https://msdn.microsoft.com/en-us/library/ms684863(VS.85).aspx" mce_href="https://msdn.microsoft.com/en-us/library/ms684863(VS.85).aspx">https://msdn.microsoft.com/en-us/library/ms684863(VS.85).aspx</A></P>
<P>When we do that, Windows enables three heap debugging features:</P>
<OL>
<LI>Enabling a tail check. This put a marker on the end of each allocation and when it is freed, the heap manager checks the marker is intact.</LI>
<LI>Enabling free check.&nbsp; If the process writes to the block after free, the heap manager detects this.</LI>
<LI>Checking paramaters.&nbsp; The&nbsp;heap manager&nbsp;checks for valid parameters in each call to any of the heap allocation/free functions.</LI></OL>
<P>1. and 2. have a sizable performance impact when freeing memory.&nbsp; For more information on this subject, read Mark Russinovich and David Solomon's book "Windows Internals" Chapter 7.</P>
<P>There are two workarounds for this issue.&nbsp; </P>
<OL>
<LI>Use <STRONG>CTRL+F5 </STRONG>and <STRONG>attach</STRONG> to your application instead.&nbsp; I realize this is not always ideal.</LI>
<LI>Add the setting <STRONG>_NO_DEBUG_HEAP=1</STRONG> to the environment settings in the debugger settings for your launch project.&nbsp; This only works in C++ projects today.&nbsp; You could force inheritance here by adding that to Visual Studio's environment, which your target application inherits from.</LI></OL>
<P>Remember however that you are giving up a lot of validation that the OS does on your behalf.&nbsp; Catching memory corruption issues early is very important, so don't take this step blindly.</P>
<P>&nbsp;Happy hunting</P>
<P>John</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>Computer Science and Software Engineering</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/computer-science-and-software-engineering</link>
      <pubDate>Wed, 18 Feb 2009 12:34:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2009/02/18/computer-science-and-software-engineering/</guid>
      <description><![CDATA[This is an opinion piece, and&nbsp;my opinion at that, not of my employer.&nbsp;
I was watching a...]]></description>
      <content:encoded><![CDATA[<P><STRONG>This is an opinion piece, and&nbsp;my opinion at that, not of my employer.</STRONG>&nbsp;</P>
<P>I was watching a debate on one of the internal support email lists for debugger related things last year when an interesting event occured.&nbsp; There is currently a limitation in the Windows OS that prevents ModuleLoad events being sent after ~500 of those events have been sent.&nbsp;&nbsp;The conversation wandered into why&nbsp;you get some gains from performance if you keep the number of dlls down, and ensure they have their base adresses set.&nbsp; To which there was a reply of (paraphrase):</P>
<P>&nbsp;"I don't want to think about that, the operating system should keep all that from me, if I want to have thousands of dlls I should be able to"</P>
<P>Which set off alarm bells for me.&nbsp; The hyperbolae of this statement is of course "don't bother me with constraints".&nbsp; It also surfaces in how people treat memory allocation and usage in managed code ("Hey - there's a garbage collector - there are no leaks.&nbsp; Um - why am I running out of memory - it must be a CLR bug").&nbsp; Complete ignorance of the constraints of systems is a dangerous place to be.</P>
<P>I self identify as an engineer.&nbsp; But of course many of us who are in professional software development came through Computer Science courses as their degrees.&nbsp; Looking back on my own education, there were very few courses that armed me with the engineering skills I grew in my first few years as a developer.&nbsp; I learned (the hard way in many cases) what it takes to engineer solutions that work within the constraints of the systems my customers expected.&nbsp; I'm in no way bashing Computer Science.&nbsp; Where would our industry be without the deep thinking and experimentation that carries on to this very day.&nbsp; But when onboarding software developers, I think we need to do more to make them aware of engineering practices and principles in a more structured way.&nbsp; In our own team we do this through a combination of mentoring and training, but by no means do we have it down pat (who does).&nbsp; Different situations may call for different solutions.&nbsp;Until recently I never thought of how much that science vs. engineering discipline is actually implicitly demonstrated as opposed to being explicitly stated, but now I think on it, it's a useful conversation to have with those new hires.</P>
<P>Something to ponder as the next wave of scientist/engineers walk through the doors into industry from university.&nbsp; Please discuss through the comments section!</P>
<P>&nbsp;John</P>]]></content:encoded>
    </item>
    <item>
      <title>Last year's VSTS 2010 CTP - Feedback still needed!</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/last-years-vsts-2010-ctp-feedback-still-needed</link>
      <pubDate>Thu, 05 Feb 2009 16:36:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2009/02/05/last-years-vsts-2010-ctp-feedback-still-needed/</guid>
      <description><![CDATA[Last year's CTP of VSTS 2010 was one of the major milestones on the road to shipping what we think...]]></description>
      <content:encoded><![CDATA[<P><FONT face=Calibri size=3>Last year's CTP of VSTS 2010 was one of the major milestones on the road to shipping what we think will be a great release.&nbsp; There's a lot of value, and much of it previewed in the </FONT><A href="https://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;displaylang=en" mce_href="https://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;displaylang=en"><SPAN style="FONT-SIZE: 10pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Arial','sans-serif'">CTP</SPAN></A><FONT face=Calibri size=3>, but I've been feeling like we didn't get a huge amount of community feedback to help us fine tune the plan.&nbsp; Selfishly - I'm interested in your thoughts on two of the major innovations our team was responsible for:</FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3><STRONG>Eliminate the “no-repro” bug with application flight recording.</STRONG></FONT></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt"><FONT face=Calibri size=3>How many times has a developer used the phrase “works on my machine” when responding to a bug?<SPAN style="mso-spacerun: yes">&nbsp; I know I have :) </SPAN>In many cases that may be true.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>By default the VSTS 2010 testing system will record a host of information:</FONT></P>
<P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore"><FONT face=Calibri size=3>1)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri size=3>Screenshots of the test in progress so developers can see the symptoms</FONT></P>
<P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore"><FONT face=Calibri size=3>2)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri size=3>An environment snapshot to aid in configuration mismatch diagnosis</FONT></P>
<P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore"><FONT face=Calibri size=3>3)</FONT><SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><FONT face=Calibri size=3>An application flight recording that can be replayed in the debugger to allow developers to quickly get to the root cause of any issue</FONT></P>
<P><SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-theme-font: minor-latin; mso-bidi-language: AR-SA">The application flight recorder technology is a key element to actually finding and solving bugs faster.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Not only can developers see symptoms, they can understand what their code was up to at the time and get to the problem faster.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>To do this,&nbsp;we &nbsp;took advantage of one of Visual Studio’s core experiences – the VS debugger (which we are responsible for too).<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Many developers spend a large portion of their time using the VS debugger for both software construction and debugging.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>So we now provide a new set of debugging experiences that focus on looking at the application through the recording, and seamlessly integrate that with the debugger’s existing views, as opposed to building a new tool that people would have to learn and get some experience with.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Any developer will be able to get value directly out of the gate.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This also frees testers from extra rounds of validation (did that bug really exist), or working to reproduce a bug that only show up intermittently or even going to the trouble of setting up a test environment for the dev to repro and debug on live.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN></SPAN></P>
<P><SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-bidi-font-family: 'Times New Roman'; mso-fareast-font-family: Calibri; mso-bidi-theme-font: minor-bidi; mso-fareast-language: EN-US; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin; mso-ansi-language: EN-US; mso-fareast-theme-font: minor-latin; mso-bidi-language: AR-SA"><SPAN style="mso-spacerun: yes"><STRONG>Understanding the test impact of code changes</STRONG></P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt">A common question that testers in software organizations ask is “which tests should I run to ensure quality”.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This is especially critical for teams with a test bed of many thousands of tests as they approach the release point of their software.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Code changes can break the product, but also simply break the tests associated with them.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>All of this is cost, and as time progresses from the date the issue was added, it becomes more expensive to understand and fix.</P>
<P class=MsoNormal style="MARGIN: 0in 0in 10pt">VSTS 2010 intends to provide guidance around which tests have been impacted by changes in newer builds.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>As tests run in either automated or manual test scenarios, information is being recorded about which tests touch which code elements in a given project.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>This mapping is then transmitted to the test server which maintains a database of mappings.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>Team System then makes this information available to all the participants in the software process.</P>
<P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore">1)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal">Test managers</B> have a built in report of the test impact of any given new build.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>As well as understanding the tests impacted by changed source code, they can see which requirements have changed, or which bugs have been resolved, and by extension the test cases that are related to those.<SPAN style="mso-spacerun: yes">&nbsp; </SPAN>They can then decide to promote a new build to be “the testable build”</P>
<P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore">2)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal">An individual tester</B> can see this same information for their area, and make decisions on which of their tasks they ought to work on first</P>
<P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"><SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"><SPAN style="mso-list: Ignore">3)<SPAN style="FONT: 7pt 'Times New Roman'">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </SPAN></SPAN></SPAN><B style="mso-bidi-font-weight: normal">Developers</B> can see the upstream impact of any change they make, and potentially run the impacted tests to understand if there is a breaking change, or if they have broken the product.</P>
<P>As we get closer to Beta, we should be going deeper on how these features work and what you can (and can't&nbsp; :) ) do with them, but until then, please go test drive them and give us the feedback!</P>
<P>Keep on fixing,</P>
<P>John</P></SPAN></SPAN>]]></content:encoded>
    </item>
    <item>
      <title>VS 2008 SP1 Debugger stepping and breakpoint issues</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/vs-2008-sp1-debugger-stepping-and-breakpoint-issues</link>
      <pubDate>Fri, 14 Nov 2008 15:48:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2008/11/14/vs-2008-sp1-debugger-stepping-and-breakpoint-issues/</guid>
      <description><![CDATA[For the last few weeks we have had reports of stepping issues caused by people installing VS 2008...]]></description>
      <content:encoded><![CDATA[<P>For the last few weeks we have had reports of stepping issues caused by people installing VS 2008 SP1.&nbsp; You can see our acknowledgement of this issue here:</P>
<P><A href="https://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/f3fcb4fb-8a08-4fa0-8d58-9ed6f3eb1193">https://social.msdn.microsoft.com/Forums/en-US/vsdebug/thread/f3fcb4fb-8a08-4fa0-8d58-9ed6f3eb1193</A></P>
<P>The symptoms are that while managed debugging some step commands&nbsp;do not complete as expected, and some breakpoints&nbsp;may be missed if running on&nbsp;hyperthreaded, multi-core or multi-proc hardware.&nbsp;We finally got to the root cause, and&nbsp;I'm glad to announce that we have now made a fix available for this issue.&nbsp; You can grab that here:</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt"><A href="https://code.msdn.microsoft.com/KB957912/Release/ProjectReleases.aspx?ReleaseId=1796"><FONT face=Calibri color=#0000ff size=3>https://code.msdn.microsoft.com/KB957912/Release/ProjectReleases.aspx?ReleaseId=1796</FONT></A></P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt" mce_keep="true">&nbsp;</P>
<P class=MsoNormal style="MARGIN: 0in 0in 0pt">John</P>
<P mce_keep="true">&nbsp;</P>]]></content:encoded>
    </item>
    <item>
      <title>PDC08 - Debugger tips and tricks talk posted</title>
      <link>https://docs.microsoft.com/archive/blogs/ms_joc/pdc08-debugger-tips-and-tricks-talk-posted</link>
      <pubDate>Fri, 07 Nov 2008 18:01:00 GMT</pubDate>
      <dc:creator><![CDATA[ms_joc]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ms_joc/2008/11/07/pdc08-debugger-tips-and-tricks-talk-posted/</guid>
      <description><![CDATA[The channel 9 rendering of my talk at PDC is now up for your general...]]></description>
      <content:encoded><![CDATA[<P>The channel 9 rendering of my talk at PDC is now up for your general enjoyment/education/amusement.&nbsp;</P>
<P>&nbsp;<A href="https://channel9.msdn.com/pdc2008/TL59/">https://channel9.msdn.com/pdc2008/TL59/</A></P>
<P>The topics I covered tricks in stepping, breakpoints, symbols, multi-threading and post-mortem.&nbsp; Judging from the evals the reception was pretty good, and I really wish I had the time to go deeper and go over more stuff.&nbsp; I was especially pleased with being highest rated talk in the TL track for job relevance :).&nbsp; I'd like to hear if folks would like to see more of this at PDC09.&nbsp; We are considering whether we should have pre-con sessions on debugging, profiling and diagnostics to really go deep.&nbsp; For the chap "D" from company "C" who was able to answer my opcode question, please get in touch.&nbsp; Other talks&nbsp; that I would encourage you to check out:</P>
<UL>
<LI>Steve and Ed talking about the great performance tools coming in VSTS 2010 <A href="https://channel9.msdn.com/pdc2008/TL24/">https://channel9.msdn.com/pdc2008/TL24/</A></LI>
<LI>Habib and Justin talking about our test impact and historical debugging features in VSTS 2010 <A href="https://channel9.msdn.com/pdc2008/TL03/">https://channel9.msdn.com/pdc2008/TL03/</A>&nbsp;</LI>
<LI>Brian "I just beat JoC in the evals" Harry talking about upcoming Team Foundation Server goodness <A href="https://channel9.msdn.com/pdc2008/TL52">https://channel9.msdn.com/pdc2008/TL52</A></LI>
<LI>Gert "I dream in T-SQL" Drapers talking about upcoming goodness in the data tools in VSTS 2010 <A href="https://channel9.msdn.com/pdc2008/TL45">https://channel9.msdn.com/pdc2008/TL45</A></LI></UL>
<P>Steve doing his "Let's pretend this says System.String" line is one of my favourites of all time.</P>
<P>I'm not sure hte title of Habib and Justin's talk did justice to what we were showing off, which was the first introduction to historical debugging coming on line in VSTS 2010.&nbsp; However we received the highest evaluation scores for all of PDC (by some margin) for the Hands On Lab that Justin produced to demo this feature.&nbsp; We literally think it will change the way people debug, and will become increasingly important in diagnosing issues as platforms become more distributed and cloud based, e.g. Windows Azure.</P>
<P>Cheers</P>
<P>J</P>]]></content:encoded>
    </item>
  </channel>
</rss>