<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>The Visual Basic Team : Debugger</title><link>http://blogs.msdn.com/vbteam/archive/tags/Debugger/default.aspx</link><description>Tags: Debugger</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Did you know? You can unwind the call stack from exceptions (Bill Horst)</title><link>http://blogs.msdn.com/vbteam/archive/2008/12/09/did-you-know-you-can-unwind-the-call-stack-from-exceptions-bill-horst.aspx</link><pubDate>Tue, 09 Dec 2008 19:00:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9177509</guid><dc:creator>VBTeam</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/9177509.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=9177509</wfw:commentRss><description>&lt;P&gt;The ability to unwind the call stack from exceptions is one of the debugger features that was newly introduced in Visual Basic.NET 2005. When the debugger hits a first-chance exception, you can unwind the call stack in order to make code edits to fix the exception and continue debugging with the changes. The exception assistant UI will have an “Enable Editing” option which will unwind the debugger to the topmost call stack frame with code in the current solution.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vbide.members.winisp.net/blog/whorst/EU1.jpg" mce_src="http://vbide.members.winisp.net/blog/whorst/EU1.jpg"&gt;&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vbide.members.winisp.net/blog/whorst/EU2.jpg" mce_src="http://vbide.members.winisp.net/blog/whorst/EU2.jpg"&gt;&lt;/P&gt;
&lt;P&gt;When an exception is unhandled, the unwind will occur automatically, but this can be turned on and off from the Options dialog (under Tools).&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vbide.members.winisp.net/blog/whorst/EU3.jpg" mce_src="http://vbide.members.winisp.net/blog/whorst/EU3.jpg"&gt;&lt;/P&gt;
&lt;P&gt;If you attempt to edit code after an exception has been hit, but before an unwind, you're allowed the option of unwinding and editing the code, stopping the debugging session, or canceling the edit.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vbide.members.winisp.net/blog/whorst/EU4.jpg" mce_src="http://vbide.members.winisp.net/blog/whorst/EU4.jpg"&gt;&lt;/P&gt;
&lt;P&gt;The user can also unwind from the call stack window, by right-clicking the desired frame and selecting “Unwind To This Frame”. This is only available when an exception has been hit and not yet unwound, and only on frames sufficiently high on the call stack.&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://vbide.members.winisp.net/blog/whorst/EU5.jpg" mce_src="http://vbide.members.winisp.net/blog/whorst/EU5.jpg"&gt;&lt;/P&gt;
&lt;P&gt;We hope that this functionality will allow you to be more effective in their debugging, and will help you better leverage the “Edit and Continue” capabilities in Visual Basic.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9177509" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/IDE/default.aspx">IDE</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/VB2005/default.aspx">VB2005</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/VB2008/default.aspx">VB2008</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Debugger/default.aspx">Debugger</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Bill+Horst/default.aspx">Bill Horst</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/VB2010/default.aspx">VB2010</category></item><item><title>Source code of Visual Basic runtime has been released to public. (Vladimir)</title><link>http://blogs.msdn.com/vbteam/archive/2008/01/19/source-code-of-visual-basic-runtime-has-been-released-to-public.aspx</link><pubDate>Sat, 19 Jan 2008 19:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7162179</guid><dc:creator>VBTeam</dc:creator><slash:comments>10</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/7162179.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=7162179</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;One of the things we have been working on recently&amp;nbsp;was publishing sources of VisualBasic runtime library. I am very excited to announce that the sources of VB runtime (Microsoft.VisualBasic.dll)&amp;nbsp;are publicly available now!&amp;nbsp;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/SPAN&gt;This is a part of a more general work on making .Net Framework sources available to public ( &lt;/FONT&gt;&lt;A href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx" mce_href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx"&gt;&lt;FONT face=Calibri size=3&gt;http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Calibri size=3&gt; ). &lt;/FONT&gt;&lt;FONT face=Calibri size=3&gt;The most important result of this is that developers can &lt;EM&gt;see and debug through VB runtime code&lt;/EM&gt;. &lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;There is a very detailed description on how to set up VS debugger so that it could use framework sources (that includes VB runtime too). &lt;/FONT&gt;&lt;A href="http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx"&gt;&lt;FONT face=Calibri size=3&gt;http://blogs.msdn.com/sburke/archive/2008/01/16/configuring-visual-studio-to-debug-net-framework-source-code.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT size=3&gt;&lt;FONT face=Calibri&gt;&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;. The article also describes possible issues and workarounds. For most cases&amp;nbsp;everything should work fine, but in case if you have problems, you can refer to this article.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;Let’s see some examples how this functionality can be used.&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;&lt;STRONG&gt;Debugging without runtime sources (normal case)&amp;nbsp;.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;FONT face=Calibri size=3&gt;&amp;nbsp;&lt;/FONT&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in"&gt;&lt;FONT face=Calibri size=3&gt;I have created a simple VB app with a latebound call and then I have started a debugging session and stopped inside the function. Normally VS tries not to bother user with details of such calls and in the call stack it simply says "[External Code]".&lt;/FONT&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162238/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162238/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;FONT face=Calibri size=3&gt;&lt;STRONG&gt;Disabling “Just My code”.&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;Next step is disabling “Just My code” in debug options so that you could see calls that are not part of your code.&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;IMG style="WIDTH: 644px; HEIGHT: 375px" height=375 src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162253/original.aspx" width=644 mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162253/original.aspx"&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;After disabling “Just My code” in debug options, you will notice that were couple calls performed before we reached the target function. Indeed since compiler does not know at compile time what function will be called it delegates the call to the latebound call support in the runtime library. What we see on the stack in between our functions is the code in VB runtime library. At this point these stack frames are grayed out and pretty much useless as VS does not have sources that correspond to these frames. Double clicking causes this message:&lt;/SPAN&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&lt;SPAN style="FONT-SIZE: 11pt; LINE-HEIGHT: 115%; FONT-FAMILY: 'Calibri','sans-serif'; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-theme-font: minor-latin; mso-bidi-theme-font: minor-bidi; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA; mso-ascii-theme-font: minor-latin; mso-hansi-theme-font: minor-latin"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162263/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162263/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoListParagraph style="MARGIN: 0in 0in 10pt 0.5in" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;Configre source location information&lt;/STRONG&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Now, since the sources of Microsoft.VisualBasic are now published we can tell VS where to get them. For that we will use source server support in VS. &lt;BR&gt;(note that for this to work you will need to make sure you have installed the following QFE &lt;SPAN lang=EN style="mso-ansi-language: EN"&gt;&lt;A href="https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=10443&amp;amp;wa=wsignin1.0" target=_blank&gt;&lt;FONT color=#0000ff&gt;Visual Studio 2008 QFE&lt;/FONT&gt;&lt;/A&gt; as this hotfix updates a debugger component that fetches the source files).&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;SPAN lang=EN style="mso-ansi-language: EN"&gt;&lt;/SPAN&gt;1.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;In Visual Studio 2008 and select Tools -&amp;gt; Options -&amp;gt; Debugging&lt;BR&gt;2.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;On the “General” Tab&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Uncheck “Just My Code”&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Check “Enable Enable Source Server Support”&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162271/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162271/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Here we will tell VS where the sources are located and where to cache them locally. The caching is important when sources are accessed from a remote server as it is much faster to get sources from a local cache.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;On the “Symbols” tab&lt;BR&gt;a.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Click the “new” icon and enter: &lt;A href="http://referencesource.microsoft.com/symbols"&gt;http://referencesource.microsoft.com/symbols&lt;/A&gt;&lt;BR&gt;b.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Check “Search the above locations only when symbols are loaded manually”&lt;BR&gt;c.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Enter a path in the textbox in which to cache symbols.&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;Make sure this is somewhere that your user account has permissions to write to (for example d:\symbols)&lt;BR&gt;d.&lt;SPAN style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;Hit OK&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162274/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162274/original.aspx"&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Right click the first runtime frame and select “LoadSymbols”. Wait for symbols to load (may take a moment or two and the first time it will also ask to agree with EULA). Doubleclick the first runtime frame… What a difference!!! We can see the runtime code.&lt;BR&gt;(at thirst it may take some time as VS is fetching sources from a remote server, but once they are in the cache it will not do it again)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162282/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162282/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&lt;STRONG&gt;Setting breakponts inside VB runtime.&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Even more - We can F11 through the runtime code and set breakpoints. If you are very curious, you can set a break point at the beginning of the latebound call helper and restart your project. Once you hit the breakpoint you can F11 through latebinder code to see how it was implemented.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Note that there is one caveat – while the sources on the server contain the same code as original sources they are not “exactly" the same. They have small changes such as copyright banners at the end etc. As a result VS complains about source difference. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162284/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162284/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;This can be safely dismissed by right clicking the breakpoint, opening “Location” menu and selecting “Allow source file&amp;nbsp;to be different from the original location”. Tere is a way to do this globally, but I would not recommend this since this would affect all you projects.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Also to make sure that symbols are loaded before execution gets to the breakpoint, you will need to disable “manual only” loading for symbols. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;This will cause all the symbols to be loaded on demand and that includes many .NET FX libraries so this may take some time when you launch debugging session.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162291/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162291/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;This will cause all the symbols to be loaded on demand and that includes many .NET FX libraries so this may take some time when you launch debugging session. After symbols are loaded you should be able to hit the breakpoint in the runtime.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162298/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162298/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&lt;STRONG&gt;What is inside MsgBox&lt;/STRONG&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Another interesting scenario that should work now is F11 into VB runtime functions. One that I use the most seems to be MsgBox so let’s take a look what is inside. &lt;BR&gt;In a hello world project we can set breakpoint on the call to MsgBox.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&amp;nbsp;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162306/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162306/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;When breakpoint is hit just do F11. Wow!! Now we are inside MsgBox and can step through it to see how it works.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;&amp;nbsp;&lt;IMG src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162321/original.aspx" mce_src="http://blogs.msdn.com/photos/vbteam_gallery2/images/7162321/original.aspx"&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt"&gt;Known issues, FAQ&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpFirst style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;1)&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Accessing remote symbols is not very fast. This causes delays in VS when sources are fetched. Even with caching enabled in some scenarios VS checks whether information is current. You may get around this by going to Tools -&amp;gt; Options -&amp;gt; Debugging -&amp;gt; Symbols configuration and unchecking&lt;SPAN style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/SPAN&gt;“Search the above locations when symbols are loaded manually” checkbox and then debug you project. It may take some time to load all sources (including various .Net libraries) in this configuration (often more than 50Mb will be loaded). After VS finished loading, go back to Tools -&amp;gt; Options -&amp;gt; Debugging -&amp;gt; Symbols and check the “Search the above locations…” checkbox and hit OK. This will prevent the debugger from connecting to the server when you do not want it.&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpMiddle style="MARGIN: 0in 0in 0pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;2)&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Sometimes you may notice that some variables or methods are not available. The reason for this is that you are using Retail/Optimized version. One result of the retail optimizations is that certain information is not available or “inlined”. You will still have the source information, but you may not be able to access the data or set breakpoints. For the most part however everything should be normal. &lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1"&gt;&lt;SPAN style="mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;SPAN style="mso-list: Ignore"&gt;3)&lt;SPAN style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;Will this work with VB Express? &lt;BR&gt;No. This functionality relies on some VisualStudio components that Express versions do not have.&lt;/P&gt;
&lt;P class=MsoListParagraphCxSpLast style="MARGIN: 0in 0in 10pt 0.5in; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo1" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;- Vladimir, VisualBasic team&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 10pt" mce_keep="true"&gt;&amp;nbsp;&lt;/P&gt;&lt;/SPAN&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7162179" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/IDE/default.aspx">IDE</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/VB2008/default.aspx">VB2008</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Debugger/default.aspx">Debugger</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Vladimir/default.aspx">Vladimir</category></item><item><title>Customizing Displays in the Debugger for System Types</title><link>http://blogs.msdn.com/vbteam/archive/2007/09/28/customizing-displays-in-the-debugger-for-system-types.aspx</link><pubDate>Sat, 29 Sep 2007 02:04:07 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:5193108</guid><dc:creator>VBTeam</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/vbteam/comments/5193108.aspx</comments><wfw:commentRss>http://blogs.msdn.com/vbteam/commentrss.aspx?PostID=5193108</wfw:commentRss><description>&lt;p&gt;We've heard feedback from several customers regarding the way certain types are displayed in the Debugger.&amp;nbsp; Many of the displays exist to maintain the user experience between versions of Visual Studio.&amp;nbsp; We constantly evaluate if this is the correct choice for a given version of the product.&amp;nbsp; &lt;p&gt;Starting with VS2008, you don't have to wait for us any longer.&amp;nbsp; In VS2008, VB added full support for many of the debugging features it lacked compared to C# in 2005.&amp;nbsp; In particular we've added full support for the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.debuggerdisplayattribute.aspx"&gt;DebuggerDisplayAttribute&lt;/a&gt;.&amp;nbsp; &lt;p&gt;By attributing a class or member with this attribute you can control how it is displayed in the debugger.&amp;nbsp; For each column (name, value and type) you can provide an alternate string or expression to display.&amp;nbsp; &lt;p&gt;The best part about this attribute is you can target types that exist in different libraries.&amp;nbsp; You don't even need the source for them.&amp;nbsp; One of the members in the Type field which species the target type.&amp;nbsp; Customizing a type in a separate library requires slightly more work than customizing a type you have the source for.&amp;nbsp; For a source project you can just apply the attribute directly to the type or member and it will display.&amp;nbsp; For a type in another library you need to do the following.  &lt;ul&gt; &lt;li&gt;Define a class library and include all of the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.debuggerdisplayattribute.aspx"&gt;DebuggerDisplayAttribute&lt;/a&gt; you want.&amp;nbsp; Make sure to apply the attributes to the assembly and specify the &lt;a href="http://msdn2.microsoft.com/en-us/library/system.diagnostics.debuggerdisplayattribute.type.aspx"&gt;Type&lt;/a&gt; member.&amp;nbsp; Ex.&lt;/li&gt;&lt;/ul&gt; &lt;blockquote&gt;&lt;pre&gt;&amp;lt;Assembly: DebuggerDisplay("{ToString}", Target:=GetType(Guid))&amp;gt;&lt;/pre&gt;&lt;/blockquote&gt;
&lt;ul&gt;
&lt;li&gt;Place the built library under the folder "Visual Studio 2008\Visualizers" which is under your my documents folder.&amp;nbsp; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;After doing this any Guid type will now show up as the actual Guid String ("10f3c4eb-7c0f-41b1-ae83-8838ff2f4f70") instead of {System.Guid} 
&lt;p&gt;Jared &lt;a title="http://blogs.msdn.com/jaredpar/" href="http://blogs.msdn.com/jaredpar/"&gt;http://blogs.msdn.com/jaredpar/&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=5193108" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/vbteam/archive/tags/IDE/default.aspx">IDE</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Jared+Parsons/default.aspx">Jared Parsons</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/VB2008/default.aspx">VB2008</category><category domain="http://blogs.msdn.com/vbteam/archive/tags/Debugger/default.aspx">Debugger</category></item></channel></rss>