<?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>Skinner's Blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/camerons/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/camerons/feed.xml</link>
    <description>Comments on Visual Studio, Visualizations &amp;amp; Modeling, .NET, and beyond</description>
    <lastBuildDate>Tue, 16 Apr 2019 04:50:15 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Latest Videos and Info on VS11 Visualization Tooling</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/latest-videos-and-info-on-vs11-visualization-tooling</link>
      <pubDate>Sun, 11 Mar 2012 14:25:18 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2012/03/11/latest-videos-and-info-on-vs11-visualization-tooling/</guid>
      <description><![CDATA[Wanted to make you folks aware of a few new videos that have been recently made showing the latest...]]></description>
      <content:encoded><![CDATA[<p>Wanted to make you folks aware of a few new videos that have been recently made showing the latest capabilities in the recently released beta for Visual Studio.</p>  <p>I just recently recorded a ~30 minute piece on the <a href="https://channel9.msdn.com/Shows/Visual-Studio-Toolbox/Visual-Studio-Toolbox-Dependency-Graphs">Visual Studio Toolbox site</a>. Consider this video a refresher of the bits ( for those who weren’t familiar with the VS2010 capabilities ), as well as a quick summary of some of the latest features we’ve enabled.</p>  <p>For more in depth video, be sure to check out <a href="https://www.lovettsoftware.com/blogengine.net/post/2012/03/07/Whats-New-in-Visual-Studio-2012-Dependency-Graph-Features.aspx">Chris Lovett’s recent video</a>, which is much more comprehensive.</p>  <p>One of the more significant pieces of technology that we have created in support of the new Visualization and Dependency work in VS11 is known as the “Code Index”. Essentially, a LocalDB database where we house all the information of the assemblies you are trying to understand. Take a look at <a href="https://blogs.msdn.com/b/jmprieur/archive/2012/03/01/what-is-the-code-index-sdk.aspx">Jean-Marc’s recent post</a> about the Code Index, and the SDK made available in the <a href="https://www.microsoft.com/download/en/details.aspx?id=29040">Visualization and Modeling SDK</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Debugger Canvas 1.1 Released</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/debugger-canvas-1-1-released</link>
      <pubDate>Tue, 31 Jan 2012 10:15:00 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2012/01/31/debugger-canvas-1-1-released/</guid>
      <description><![CDATA[Since the initial release of the Debugger Canvas last summer, the team has been busy taking all the...]]></description>
      <content:encoded><![CDATA[<p>Since the initial release of the Debugger Canvas last summer, the team has been busy taking all the great feedback from you, acting on it, and preparing a new release. That release, Debugger Canvas 1.1, has just been released on DevLabs!</p>  <p>The teams has focused on fixing numerous bugs as well as addressing a number of performance issues, but has also poured a number of new features into this release:</p>  <ul>   <li>Easily turn Debugger Canvas on or off, even in the middle of a debug session </li>    <li>Quickly navigate up and down the call stack in the canvas using the keyboard or the mouse </li>    <li>See Multiple threads together on the canvas, each thread identified by its color. </li>    <li>See recursive calls side by side </li>    <li>Edit code directly in the code bubbles ( this is now on by default ). </li> </ul>  <p>Please take this new release out for a test drive by going over to <a href="https://msdn.microsoft.com/en-us/devlabs/debuggercanvas">DevLabs</a> and downloading this new version. And as always, the team welcomes and looks forward to your feedback. Please visit the <a href="https://social.msdn.microsoft.com/Forums/en-US/debuggercanvas/threads">DevLabs forum</a> and let us hear about it!</p>  <p>Cheers!</p>  <p>Cameron</p>]]></content:encoded>
    </item>
    <item>
      <title>What do you think of Debugger Canvas?</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/what-do-you-think-of-debugger-canvas</link>
      <pubDate>Fri, 22 Jul 2011 08:14:02 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2011/07/22/what-do-you-think-of-debugger-canvas/</guid>
      <description><![CDATA[The folks behind the Debugger Canvas project ( a few from my team, a few from MSR ) are very...]]></description>
      <content:encoded><![CDATA[<p>The folks behind the <a href="https://msdn.microsoft.com/en-us/devlabs/hh227299">Debugger Canvas</a> project ( a few from my team, a few from MSR ) are very interested in picking your brain on what you like about it and what you don’t like about it. To that end, they are looking to get a one hour conference call together with a select group of folks who are willing to discuss their experiences to date and any ideas you may have to make the capability even better.</p>  <p>If you are interested, please send an email to <a href="mailto:debugcanvsignup@microsoft.com">debugcanvsignup@microsoft.com</a>, and take a look at <a href="https://social.msdn.microsoft.com/Forums/en-US/debuggercanvas/thread/f8f70386-7c8d-41af-b3ed-cf86760c4f0a">this forum</a> post for more info.</p>  <p>Cheers,</p>  <p>Cameron</p>]]></content:encoded>
    </item>
    <item>
      <title>ALM vNext Announced at TechEd</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/alm-vnext-announced-at-teched</link>
      <pubDate>Tue, 17 May 2011 08:10:09 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2011/05/17/alm-vnext-announced-at-teched/</guid>
      <description><![CDATA[We just finished announcing all the great new stuff that will be coming in the next version of...]]></description>
      <content:encoded><![CDATA[<p>We just finished announcing all the great new stuff that will be coming in the next version of Visual Studio, specifically talking about the Application Lifecycle Management features that you can expect in that release.</p>  <p>Please check out <a href="https://blogs.msdn.com/b/jasonz/archive/2011/05/16/announcing-alm-roadmap-in-visual-studio-vnext-at-teched.aspx">Jason Zander’s blog post</a> about the announcements, and be sure to read this <a href="https://go.microsoft.com/?linkid=9772730">white paper</a>. The white paper goes into quite a bit of information about many of the new features we announced yesterday, such as the new Unit Testing work, the new Storyboarding assistant designed to help manage lightweight requirements, Code Clone analysis, and so on.</p>  <p>It was a blast to demonstrate many of these features during the TechEd keynote with Jason, and it was even better to present at the <a href="https://channel9.msdn.com/Events/TechEd/NorthAmerica/2011/FDN03">ALM Futures foundational</a> session immediately following the keynote, to go into a bit more detail and show a few other items we didn’t have time to get to in the keynote.</p>  <p>Exciting times!</p>]]></content:encoded>
    </item>
    <item>
      <title>MSDN Instant Answers</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/msdn-instant-answers</link>
      <pubDate>Fri, 13 May 2011 08:31:52 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2011/05/13/msdn-instant-answers/</guid>
      <description><![CDATA[Wanted to point out a great new feature that the MSDN team has just made available when searching in...]]></description>
      <content:encoded><![CDATA[<p>Wanted to point out a great new feature that the MSDN team has just made available when searching in the MSDN library. The feature is dubbed “Instant Answers”.</p>  <p>Try this out. Go to msdn.microsoft.com, then click the library tab ( or go directly there by clicking <a href="https://msdn.microsoft.com/en-us/library/default.aspx">this link</a> ). Now, type “Hashtable” in the search text box. You should see something like this as the first entry in the results:</p>  <p><a href="https://cwskinner.members.winisp.net/MSDN-Instant-Search_746E/image.png" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/MSDN-Instant-Search_746E/image_thumb.png" width="644" height="202" /></a></p>  <p>The main thing I like about this is the quick access to the source code. Notice to the right of the C# and VB code, there is a little icon. Go ahead and click that. That will bring up a “text” window in the middle of your browser, allowing you to select that code, copy, and paste into your code. Very nice!</p>  <p><a href="https://cwskinner.members.winisp.net/MSDN-Instant-Search_746E/image_3.png" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/MSDN-Instant-Search_746E/image_thumb_3.png" width="644" height="253" /></a></p>  <p>This is a new approach to search results within MSDN, and the amount of content that is ready for this new format is limited, but I think these folks are really doing a great job to make the content as accessible as possible.</p>  <p>What do you think? What do you like about it? Anything you’d change?</p>  <p>Cameron</p>]]></content:encoded>
    </item>
    <item>
      <title>New version of the Architecture Guidance</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/new-version-of-the-architecture-guidance</link>
      <pubDate>Sun, 01 May 2011 16:42:31 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2011/05/01/new-version-of-the-architecture-guidance/</guid>
      <description><![CDATA[I’m a bit tardy in passing this information along, but the Rangers have recently ( April 18th )...]]></description>
      <content:encoded><![CDATA[<p>I’m a bit tardy in passing this information along, but the <a href="https://msdn.microsoft.com/en-us/vstudio/ee358786.aspx">Rangers</a> have recently ( April 18th ) released a new version of the <a href="https://vsarchitectureguide.codeplex.com/">Architecture Guidance</a>.</p>  <p>Check out <a href="https://blogs.msdn.com/b/willy-peter_schaub/archive/2011/04/18/architecture-tooling-guidance-version-2-1-abe-is-available.aspx">Willy’s post</a> for more details, or go and download it directly <a href="https://vsarchitectureguide.codeplex.com/releases/47828/download/129141">here</a>. A bunch of great prescriptive guidance on how to use the modeling and visualization capabilities present in Visual Studio 2010 Ultimate.</p>  <p>Cheers!</p>  <p>Cameron</p>]]></content:encoded>
    </item>
    <item>
      <title>Tech Ed North America 2011</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/tech-ed-north-america-2011</link>
      <pubDate>Fri, 08 Apr 2011 08:19:14 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2011/04/08/tech-ed-north-america-2011/</guid>
      <description><![CDATA[Registration for this year’s Tech Ed North America is open. The convention is happening May 16-19 in...]]></description>
      <content:encoded><![CDATA[<p>Registration for this year’s <a href="https://northamerica.msteched.com/default.aspx?fbid=Vw4-RnoEzD-">Tech Ed North America</a> is open. The convention is happening May 16-19 in Atlanta, GA this year.</p>  <p>This is going to be another great convention, with tons of new content, learnings, and simple collaboration guaranteed. </p>  <p>One of the things I’m very excited about at this years Tech Ed is the fact that we will be introducing many of the new <a href="https://msdn.microsoft.com/sr-latn-cs/library/fda2bad5(en-us).aspx">Application Lifecycle Management ( ALM )</a> capabilities that will be in the *next* version of Visual Studio. </p>  <p><a href="https://www.microsoft.com/presspass/exec/Zander/">Jason Zander</a> will be sharing the keynote message with CVP <a href="https://www.microsoft.com/presspass/exec/wahbe/">Robert Wahbe</a>, and will be introducing the new capabilities. He and I will demo a few of them during that keynote, then I will continue the conversation in a <a href="https://northamerica.msteched.com/topic/details/FDN03?fbid=Vw4-RnoEzD-#showdetails">Foundational session</a> immediately after the keynote. All about the demos, with a few surprises along the way! </p>  <p>Hope you can make it out to Atlanta!</p>  <p>Cameron</p>]]></content:encoded>
    </item>
    <item>
      <title>Debugging Series: Symbols Server and Your Symbols</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/debugging-series-symbols-server-and-your-symbols</link>
      <pubDate>Wed, 06 Apr 2011 10:42:00 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2011/04/06/debugging-series-symbols-server-and-your-symbols/</guid>
      <description><![CDATA[Last post, I gave you a simple introduction to Symbol Servers. I showed you how you can use the...]]></description>
      <content:encoded><![CDATA[<p><a href="https://blogs.msdn.com/b/camerons/archive/2011/04/01/debugging-series-symbol-server.aspx">Last post</a>, I gave you a simple introduction to Symbol Servers. I showed you how you can use the options in Visual Studio to quickly get access to Microsoft public symbols and how that could give you more information for your debugging sessions. However, I did not show you how you could add your owns symbols to the server, and more importantly, why that is a great thing to do.</p>  <h2>Adding Your Symbols</h2>  <p>Adding your symbols to the symbol server is a great practice, as it gives you a better chance of debugging one of your own executables or dlls without having to have that exact version of the image available. The typical use case here of course is support of a previously deployed app. You’re currently heads down working on V3 of your app but some customer out there is currently using V1 and reports some crashing or other bug with that version. How to maximize your chances of debugging the issue? Symbols server will certainly help, as long as you have added your PDBs to the server.</p>  <div class="note"><strong>NOTE:</strong>     <p>This is all predicated on the fact that you have indeed saved your PDBs. Even if you don’t plan to setup a symbol server, please please please save your PDBs! </p> </div>  <p>How do you add your own symbols to the server? There’s an “easy” way, and then a “hard” way. </p>  <h3>The Easy Way</h3>  <p>The “easy” way is to use the support built into Team Foundation Server 2010’s Team Build. All you need to do is tell TFS where to drop your PDBs ( it must have permission to write to that directory ) and it will handle all the rest! You do that in your build definition file. Just set the “Path to Publish Symbols” to a public UNC share, and your golden. Here’s an example:</p>  <p><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb.png" width="583" height="484" /></a></p>  <p>Behind the scenes, TFS is actually handling the steps you can manually do, which I’ll describe now.</p>  <div class="note"><strong>NOTE:</strong>     <p>I’ll be discussing the details of what the Source Server is all about in a future post. Stay tuned.</p> </div>  <h3>The Hard Way</h3>  <p>You can manually add your PDBs to a symbol server by making use of the <strong>symstore.exe</strong>, which is part of the “<a href="https://go.microsoft.com/FWLink/?LinkId=84137">Debugging Tools for Windows</a>” package. Of course, since this is just a command line tool, you can incorporate the following steps into any MSBuild process. </p>  <p>Here’s an example of the command line options that I used to push my symbols to my store:</p>  <blockquote>   <p><font size="2" face="Courier New">symstore add /f DebuggingSeries.* /s \\camerons4\Symbols\MySymbols /t &quot;My Version 1&quot; /v &quot;1.0.0.0&quot; /c &quot;Manually adding&quot;</font></p> </blockquote>  <p>This simply takes the exe and the PDB from my output directory ( the directory I ran symstore in ), and copied the symbols to the UNC folder specified.</p>  <p>Check out <a href="https://msdn.microsoft.com/en-us/library/ms681417(VS.85).aspx">this page</a> in the MSDN docs for more details, and <a href="https://msdn.microsoft.com/en-us/library/ms681378(VS.85).aspx">here</a> for all the details around the command line options.</p>  <p>If you take a look at the folder where the PDBs and exe get pushed, it should look something like this:</p>  <p><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_3.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_3.png" width="230" height="123" /></a></p>  <p>But what does this now do for me? Easiest to show through an example.</p>  <h2>Symbols In Action</h2>  <p>As I mentioned earlier, the classic case where use of a symbol server can really help is during a post-mortem debug session, where you have received a mini-dump of your application. So let’s simulate that use case by running the following bit of code on one machine, produce a mini-dump of that running exe, then take that dump over to another machine that does *not* have the source to the exe, load it into VS 2010, and see what we see.</p>  <ol>   <li>Here’s the code I’m using for this example:      <br />      <div class="csharpcode"><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_10.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_10.png" width="523" height="372" /></a>         <br />This code will run and break on the 50th iteration, allowing you to get a mini-dump in a later step. </div>   </li>    <li>Build that in Release mode, choosing “Any CPU” as the configuration. </li>    <li>Add the new symbols from your release directory to your build server, using the <strong>symstore.exe</strong> command I described above. </li>    <li>Run the app by hitting Ctrl-F5 in the Visual Studio. This will run your app without launching the debugger. </li>    <li>If you’re using the code above, you’ll see a console window appear and then an apparent “crash” dialog:      <br /><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_4.png"><img style="background-image: none; border-right-width: 0px; margin: 0px 0px 7px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_4.png" width="644" height="327" /></a> </li>    <li>At this point, bring up the Task Manager by hitting Ctrl-Shift-Esc. Find your app in the process list, right click, and select “Create Dump File”:      <br /><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/SNAGHTML3aae9d4.png"><img style="background-image: none; border-right-width: 0px; margin: 11px 7px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML3aae9d4" border="0" alt="SNAGHTML3aae9d4" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/SNAGHTML3aae9d4_thumb.png" width="157" height="244" /></a>       <br />A dialog will appear after a second telling you the location and name of the dump file that was just created. Keep that dialog up and handy, as you’ll be copying that dump file over to another machine next. </li>    <li>Copy the dump file over to another machine. </li>    <li>Open up Visual Studio 2010 and open the dump file. </li>    <li>Ensure that you have enabled all the symbol server settings in Visual Studio as described in my <a href="https://blogs.msdn.com/b/camerons/archive/2011/04/01/debugging-series-symbol-server.aspx">last post</a>, as well as turned off “Just My Code”. </li>    <li>Add a new entry into the list of Symbol file locations that points at the UNC share that you enabled for your application symbols. My dialog looks like this:      <br /><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_5.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_5.png" width="644" height="376" /></a>       <br />      <div class="note"><strong>NOTE: </strong>        <br />There is a bug when attempting to open up a mini-dump for managed code in VS 2010 SP1. The workaround is to make a couple dlls available from the machine that the dump was generated to the machine that wants to analyse a dump. <a href="https://connect.microsoft.com/VisualStudio/feedback/details/650348/managed-minidump-debugging-in-sp1">Details here</a>. That’s what the last entry in the above image is doing, making those dlls available.</div>   </li>    <li>Now open the dump file in VS. You should see something like this in the VS doc well:      <br /><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_6.png"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_6.png" width="419" height="484" /></a> </li>    <li>Click the “Debug with Mixed” link, outlined in read in the above image.      <br />( I think mixed-mode debugging is worthy of its own post, so I’m not going to go into details on mixed-mode debugging right now.&#160; ) </li>    <li>Visual Studio will go into a debug-like state. After a couple moments, take a look at your call stack and “Locals” windows. You should see your code showing up in the stack, as well as the value of your variables in the Locals window. Mine looks like this:      <br /><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/SNAGHTML3c2d146.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML3c2d146" border="0" alt="SNAGHTML3c2d146" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/SNAGHTML3c2d146_thumb.png" width="568" height="236" /></a>       <br />And my Locals like this:       <br /><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_7.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_7.png" width="343" height="161" /></a> </li>    <li>Very cool! Now if you didn’t turn off “Just My Code” and were not using a symbol server, you would be presented with this dialog after clicking the “Debug with Mixed” link:      <br /><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_8.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_8.png" width="500" height="263" /></a>       <br />After hitting the “OK” button on that, your call stack would look something like this:       <br /><a href="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_9.png"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Debugging-Series-Symbols-Server-and-Your_7BD1/image_thumb_9.png" width="509" height="298" /></a>       <br />Not real useful. </li> </ol>  <h2>Next Steps</h2>  <p>I hope that gives you a good sense of how proper use of symbol servers can help you. In my next post, I’ll talk about a sister technology to symbols servers: Source Server. That will give you the added benefit of automatically opening the actual source code in the above scenario, in addition to the added data in the call stacks.</p>  <p>Stay tuned!</p>  <p>Cameron</p>]]></content:encoded>
    </item>
    <item>
      <title>Debugging Series: Symbol Server</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/debugging-series-symbol-server</link>
      <pubDate>Fri, 01 Apr 2011 15:19:07 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2011/04/01/debugging-series-symbol-server/</guid>
      <description><![CDATA[Whether you are doing pre or post mortem debugging, whether you are using Visual Studio or WinDBG,...]]></description>
      <content:encoded><![CDATA[<p>Whether you are doing pre or post mortem debugging, whether you are using Visual Studio or WinDBG, one of the most important things you can do ( short of not writing the bug in the first place! <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/wlEmoticon-smile.png" /> ) to ready yourself for a productive debugging session is to establish the use of Symbol and Source servers. I’m going to give you some quick pointers of how to make use of these technologies in your day – to – day development process.</p>  <h2>Symbol Server</h2>  <p>What is it? Essentially, a symbol server is way to expose the symbols ( PDBs ) of your applications to the debugger in a way discoverable by the debugger regardless of where the debugger is run. This same thing is also true for system symbols as well. Not only that, it is a way to handle the versioning of those PDBs so that the debugger understands how to find version one of your symbols, vs. version two, and so on.</p>  <p>That’s all well and good, but why is this a good thing for the developer? Let’s look at what things look like when you *don’t* have a symbol server established.</p>  <h3>Without Symbol Server</h3>  <p>Here’s some sample code you have undoubtedly seen a zillion times by now:</p>  <div id="codeSnippetWrapper">   <div id="codeSnippetWrapper">     <pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet"><span style="color: #0000ff">using</span> System;<br /><br /><span style="color: #0000ff">namespace</span> DebuggingSeries<br />{<br />   <span style="color: #0000ff">class</span> Program<br />   {<br />      <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> Main( <span style="color: #0000ff">string</span>[] args )<br />      {<br />         Console.WriteLine( <span style="color: #006080">&quot;Hello World&quot;</span> );<br />      }<br />   }<br />}<br /></pre>

    <br />Fire up Visual Studio, create an empty C# project, drop in this source, put a break point at the Console.WriteLine line, and hit F5 to start the debugger.</div>
</div>

<p>After a moment, you will hit the breakpoint. Now, open up the Modules window ( while in the debugger, select the Debug-&gt;Windows-&gt;Modules menu item ):</p>

<p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/image.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/image_thumb.png" width="497" height="484" /></a>&#160;</p>

<p>While will open a tool window that looks something like the one below:</p>

<p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14235125.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML14235125" border="0" alt="SNAGHTML14235125" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14235125_thumb.png" width="644" height="199" /></a></p>

<p>The “Modules” tool window shows you all the images ( dlls, etc. ) that are loaded in order to run the executable you are currently debugging. ( NOTE: This is a very useful tool window that many folks don’t know is available in the product, and has many uses which we won’t have a chance to go through today, but more some other time. )</p>

<p>You’ll notice in the image above that there is a Column called “Symbol Status”. Assuming you are running with default debugging settings that Visual Studio 2010 has shipped with, you’ll also notice that almost all the rows in the tool windows except the one I highlighted have the value “Skipped loading symbols.”. The one highlighted is the actual executable itself, which contains the symbols associated with the code you typed in. You’ll also notice that the “User Code” column is “No” for everything except for this last entry as well. More on this later.</p>

<p>Now bring up the “Call Stack” toolwindow ( Debug-&gt;Windows-&gt;Call Stack ). You should see something like this:</p>

<p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/image_3.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="image" border="0" alt="image" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/image_thumb_3.png" width="642" height="101" /></a></p>

<p>Cool, now let’s see what changes once you start using a Symbol Server, but there is actually one other thing you’ve gotta do before you see the goodness of the Symbol Server. You’ll need to turn off the “Just My Code” feature in Visual Studio.</p>

<h3>Turn Off Just My Code</h3>

<p>By default, Visual Studio 2010 has the “Just My Code” option turn on. This on on by default as it tends to reduce the amount of information a new user has to deal with when initially debugging inside Visual Studio. It tries to protect you by not drowning you in information.</p>

<p>I struggle with this option, as the intent of it is quite good, but in practice, I tend to always turn this off. ( I would love to hear your thoughts on whether or not this option should be on or off by default. Please fill the comment section with those thoughts! )</p>

<p>For the purposes of this post on this series, please turn off this option. Here’s how:</p>

<p>Go into “Tools-Options…” dialog, find the “Debugging” option on the left side of the dialog, and notice the “Enable Just My Code” option on the right:</p>

<p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14419518.png" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML14419518" border="0" alt="SNAGHTML14419518" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14419518_thumb.png" width="644" height="376" /></a></p>

<p>Uncheck that box so that your dialog looks like this:</p>

<p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML1441f5dd.png" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML1441f5dd" border="0" alt="SNAGHTML1441f5dd" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML1441f5dd_thumb.png" width="644" height="376" /></a></p>

<p>Now your ready to see the effects of the Symbol Server option.</p>

<h3>With Symbol Server</h3>

<p>Go back into the “Tools-&gt;Options…” dialog, and expand the “Debugging” option, and select the “Symbols” option:</p>

<p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML144674cc.png" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML144674cc" border="0" alt="SNAGHTML144674cc" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML144674cc_thumb.png" width="644" height="376" /></a></p>

<p>Go ahead and click the check box next to “Microsoft Symbol Servers”. You should see a dialog box popup that you can safely ignore for now.</p>

<p>If you hit OK at this point, VS will automatically fill in a default directory that it will use for PDBs it pulls down from a public Microsoft site that contains the PDBs tied to the various versions of the framework DLLs. </p>

<p>If you are on a team of developers, it is a good idea to establish a common file share that all members of your team can use to house these symbols so that you don’t have to wait for the download of those images while you debug. The first developer who needs them would feel that delay, but everyone else on the team would simply pull from the common share.</p>

<p>For now, take the defaults and hit F5 again. You should be in the debugger waiting at the breakpoint. </p>

<p>Take a look at your Modules window now:</p>

<p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14570b41.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML14570b41" border="0" alt="SNAGHTML14570b41" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML14570b41_thumb.png" width="670" height="361" /></a></p>

<p>Notice how everything is loaded ( Symbol Status column reads “Symbols loaded.” ) and the User Code column reads “N/A”, ‘cause we disabled the “Just My Code Feature”</p>

<div class="note"><strong>NOTE: </strong>

  <p>If you had turned on the Symbol Server options as described above but failed to turn off “Just My Code”, you would have seen something like the following in the Modules window, indicating that symbols were available to be loaded, but Visual Studio did not do so in order to abide by the constraints associated with “Just My Code”. Also, your call stack would look exactly the same as it did before. </p>

  <p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML145c7549.png" target="_blank"><img style="background-image: none; border-right-width: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML145c7549" border="0" alt="SNAGHTML145c7549" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML145c7549_thumb.png" width="644" height="267" /></a></p>
</div>

<p>Now take a look at your call stack window:</p>

<p><a href="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML145e2f06.png" target="_blank"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="SNAGHTML145e2f06" border="0" alt="SNAGHTML145e2f06" src="https://cwskinner.members.winisp.net/Visual-Studio_B0C3/SNAGHTML145e2f06_thumb.png" width="644" height="162" /></a></p>

<p>Compare this with the image of the call stack with the one I previously showed you above. Notice how much more information is now available to you?</p>

<p>And therein lies the point of all this:</p>

<p>When you are debugging, you need as much information as you can get in order to figure out the task at hand. You never know what little piece of information will be the clue that drives you towards the final solution.</p>

<h2>Next Steps</h2>

<p>This post is just scratching the surface. Next post in this series, I’ll dig a little further into some more of the benefits of the symbol server, and why making your own symbols available to your team in this manner will benefit you.</p>

<p>Cheers!</p>

<p>Cameron</p>]]></content:encoded>
    </item>
    <item>
      <title>New Docs for Windows Phone 7 Development</title>
      <link>https://docs.microsoft.com/archive/blogs/camerons/new-docs-for-windows-phone-7-development</link>
      <pubDate>Thu, 31 Mar 2011 08:01:58 GMT</pubDate>
      <dc:creator><![CDATA[CameronS - MSFT]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/camerons/2011/03/31/new-docs-for-windows-phone-7-development/</guid>
      <description><![CDATA[The Developer Guidance team has just released Building a Windows Phone 7 Application from Start to...]]></description>
      <content:encoded><![CDATA[<p>The Developer Guidance team has just released <a href="https://msdn.microsoft.com/en-us/library/gg680270(v=pandp.11).aspx">Building a Windows Phone 7 Application from Start to Finish</a> in the MSDN Library.&#160; This content is intended to help developers with common challenges by putting the features together in a complete application from whiteboard to marketplace. It includes a running <a href="https://code.msdn.microsoft.com/Fuel-Tracker-Sample-9fe58263">sample</a>, guidance on core concepts for getting started with Windows Phone 7, and callouts for best practices and requirements. We hope it will provide a complimentary experience to the in-depth product documentation and quickstarts.</p>  <p>This is a great place to start for folks who haven’t done any WP7 development yet but want to. It covers almost all the major areas that a typical app would need to do. A notable topic that is *not* included is any information about the Push Notification Services, but more is on the way.</p>  <p>The guidance focuses on the following development tasks:</p>  <p>   <table border="0" cellspacing="0" cellpadding="0"><tbody>       <tr>         <td valign="top" width="478">           <p>· Designing the user interface (UI) and choosing appropriate controls, icons, and graphics. </p>            <p>· Using the application bar and back button, and handling navigation between pages. </p>            <p>· Storing and retrieving data using isolated storage. </p>            <p>· Display data in controls, enabling user edits, and performing validation. </p>            <p>· Handling application deactivation, tombstoning, and reactivation. </p>            <p>· Publishing your application in the Windows Phone Marketplace.</p>         </td>          <td valign="top" width="478">           <p><a href="https://cwskinner.members.winisp.net/New-Docs-for-Windows-Phone-7-Development_704D/clip_image002.gif"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="clip_image002" border="0" alt="clip_image002" src="https://cwskinner.members.winisp.net/New-Docs-for-Windows-Phone-7-Development_704D/clip_image002_thumb.gif" width="147" height="244" /></a></p>         </td>       </tr>     </tbody></table></p>]]></content:encoded>
    </item>
  </channel>
</rss>