<?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>Esoteric : Production debugging</title><link>http://blogs.msdn.com/arvindsh/archive/tags/Production+debugging/default.aspx</link><description>Tags: Production debugging</description><dc:language>en</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Quick Tip: vfbasics!_AVRF_EXCEPTION_LOG_ENTRY symbol not resolved?</title><link>http://blogs.msdn.com/arvindsh/archive/2009/08/21/quick-tip-vfbasics-avrf-exception-log-entry-symbol-not-resolved.aspx</link><pubDate>Fri, 21 Aug 2009 13:17:31 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9878428</guid><dc:creator>arvindsh</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/arvindsh/comments/9878428.aspx</comments><wfw:commentRss>http://blogs.msdn.com/arvindsh/commentrss.aspx?PostID=9878428</wfw:commentRss><description>&lt;p&gt;I was debugging some issues with the help of Application Verifier and WinDbg. Since I was onsite I did not have any access to Microsoft’s private symbol servers, so I was using the public symbol server (&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;http://msdl.microsoft.com/download/symbols&lt;/a&gt;). On executing the !avrf extension command in WinDbg I was presented with the following error message in WinDbg:&lt;/p&gt;  &lt;p&gt;&lt;font face="courier new"&gt;***&amp;#160;&amp;#160;&amp;#160; Your debugger is not using the correct symbols&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***     &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160; In order for this command to work properly, your symbol path&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160; must point to .pdb files that have full type information.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160; Certain .pdb files (such as the public OS symbols) do not&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160; contain the required information.&amp;#160; Contact the group that&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160; provided you with these symbols if you need this command to&amp;#160;&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160; work.&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***      &lt;br /&gt;***&amp;#160;&amp;#160;&amp;#160; Type referenced: vfbasics!_AVRF_EXCEPTION_LOG_ENTRY&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ***&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;It turns out that my WinDbg symbol path was as follows, and due to it pointing just to the public symbol server it was loading public symbols for vfbasics.dll:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;0:001&amp;gt; .sympath     &lt;br /&gt;Symbol search path is: SRV*c:\localsymbols*&lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;    &lt;br /&gt;&lt;font face="Courier New"&gt;Expanded Symbol search path is: srv*c:\localsymbols*&lt;/font&gt;&lt;a href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New"&gt;http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;    &lt;br /&gt;&lt;font face="Courier New"&gt;0:001&amp;gt; lml     &lt;br /&gt;start&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; end&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; module name      &lt;br /&gt;00000000`76dc0000 00000000`76f68000&amp;#160;&amp;#160; ntdll&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (pdb symbols)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c:\localsymbols\ntdll.pdb\FDAD9EE7D6E44F4F9672ECB401A802192\ntdll.pdb      &lt;br /&gt;000007fe`f0e50000 000007fe`f0ebe000&amp;#160;&amp;#160; verifier&amp;#160;&amp;#160; (pdb symbols)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c:\localsymbols\verifier.pdb\43FCE2D63C4544F9B1C67110EB3406951\verifier.pdb      &lt;br /&gt;000007fe`f1660000 000007fe`f1693000&amp;#160;&amp;#160; vrfcore&amp;#160;&amp;#160;&amp;#160; (pdb symbols)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c:\localsymbols\vrfcore.pdb\751D23CCD6504794AF2F18C1E547FE371\vrfcore.pdb      &lt;br /&gt;000007fe`f28e0000 000007fe`f292a000&amp;#160;&amp;#160; vfbasics&amp;#160;&amp;#160; (pdb symbols)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; c:\localsymbols\vfbasics.pdb\01ABCDFEFF9F4602A7F055801457A7D61\vfbasics.pdb&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;To resolve the issue, I explicitly pre-pended the path to private symbols for vfbasics (which is c:\windows\system32 or in general %WINDIR%\System32:&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;.sympath &lt;/font&gt;&lt;a title="c:\windows\system32*SRV*c:\localsymbols*http://msdl.microsoft.com/download/symbols" href="http://msdl.microsoft.com/download/symbols"&gt;&lt;font face="Courier New"&gt;c:\windows\system32*SRV*c:\localsymbols*http://msdl.microsoft.com/download/symbols&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;.reload&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;ld vfbasics&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font face="Courier New"&gt;0:001&amp;gt; lml     &lt;br /&gt;start&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; end&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; module name      &lt;br /&gt;00000000`76dc0000 00000000`76f68000&amp;#160;&amp;#160; ntdll&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; (export symbols)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; C:\Windows\SYSTEM32\ntdll.dll      &lt;br /&gt;000007fe`f28e0000 000007fe`f292a000&amp;#160;&amp;#160; vfbasics&amp;#160;&amp;#160; (private pdb symbols)&amp;#160; C:\Windows\SYSTEM32\vfbasics.pdb&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Then !avrf works just fine!&lt;/p&gt;  &lt;p&gt;If you liked this post, please do rate it and try to leave some comments if you can!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9878428" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/arvindsh/archive/tags/Production+debugging/default.aspx">Production debugging</category></item><item><title>Debugging Toolbox</title><link>http://blogs.msdn.com/arvindsh/archive/2009/01/30/debugging-toolbox.aspx</link><pubDate>Fri, 30 Jan 2009 22:51:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9385198</guid><dc:creator>arvindsh</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/arvindsh/comments/9385198.aspx</comments><wfw:commentRss>http://blogs.msdn.com/arvindsh/commentrss.aspx?PostID=9385198</wfw:commentRss><description>&lt;p&gt;This one is a quickie for an easy reference to most commonly used debugging tools and links. I hope you find it useful, and kindly indicate your feedback on this page by using the comments section or by rating the post!&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;Debugging Toolbox&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;table style="border-collapse: collapse; mso-yfti-tbllook: 1184; mso-padding-alt: 0in 0in 0in 0in" class="MsoNormalTable" border="0" cellspacing="0" cellpadding="0"&gt; &lt;tbody&gt; &lt;tr style="height: 3.5pt; mso-yfti-irow: 0; mso-yfti-firstrow: yes"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; height: 3.5pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;Tool&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; height: 3.5pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;Key Usage Scenarios&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; height: 3.5pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;Download location&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 1"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;WinDbg&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Interactive production debugging&lt;/p&gt; &lt;p class="MsoNormal"&gt;Dump analysis&lt;/p&gt; &lt;p class="MsoNormal"&gt;Local kernel debugging&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top" rowspan="3"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;http://www.microsoft.com/whdc/devtools/debugging/default.mspx&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 2"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;CDB&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Scriptable, low overhead capture of dumps&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;Low overhead interactive debugging&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 3"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;ADPlus&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Scripted automation for capturing dumps&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 4"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;DebugDiag&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Can setup rules for capturing dumps in an unattended, logged-off scenario&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;Automated analysis of basic crash, hang and leak scenarios&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.iis.net"&gt;http://www.iis.net&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 5"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;SysInternals Process Monitor&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Interactive process and thread level details&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;Handle usage&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.sysinternals.net"&gt;http://www.sysinternals.net&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 6"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;TLIST&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Listing services&lt;/p&gt; &lt;p class="MsoNormal"&gt;Listing process tree&lt;/p&gt; &lt;p class="MsoNormal"&gt;Listing which processes have loaded a module&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;http://www.microsoft.com/whdc/devtools/debugging/default.mspx&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 7"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Performance Monitor&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Interactive display of performance data on the system (System Monitor)&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;Logged-off unattended capturing of performance logs&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Shipped with the OS&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 8"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Application Verifier&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Enable various checks to trap deep rooted issues earlier such as &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;Orphaned critical sections&lt;/p&gt; &lt;p class="MsoNormal"&gt;Heap corruption&lt;/p&gt; &lt;p class="MsoNormal"&gt;Unsafe API usage&lt;/p&gt; &lt;p class="MsoNormal"&gt;Simulate low memory conditions&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa480483.aspx"&gt;http://msdn.microsoft.com/en-us/library/aa480483.aspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=C4A25AB9-649D-4A1B-B4A7-C9D8B095DF18&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=C4A25AB9-649D-4A1B-B4A7-C9D8B095DF18&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 9"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;PREFast&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Static source code analysis to detect potential buffer / stack overruns etc.&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.microsoft.com/whdc/devtools/tools/prefast.mspx"&gt;http://www.microsoft.com/whdc/devtools/tools/prefast.mspx&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 10"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;XPerf / XPerfInfo&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Profiler / tracing of user mode applications&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/cc305187.aspx"&gt;http://msdn.microsoft.com/en-us/library/cc305187.aspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/en-us/performance/cc825801.aspx"&gt;http://msdn.microsoft.com/en-us/performance/cc825801.aspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx"&gt;http://blogs.msdn.com/seema/archive/2008/10/08/xperf-a-cpu-sampler-for-silverlight.aspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 11"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;UserDump&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Automated capture of dumps&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e089ca41-6a87-40c8-bf69-28ac08570b7e&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=e089ca41-6a87-40c8-bf69-28ac08570b7e&amp;amp;DisplayLang=en&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt; &lt;tr style="mso-yfti-irow: 12; mso-yfti-lastrow: yes"&gt; &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;LeakDiag&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;Leak diagnostics&lt;/p&gt;&lt;/td&gt; &lt;td style="border-bottom: black 1pt solid; border-left: medium none; padding-bottom: 0in; padding-left: 5.4pt; padding-right: 5.4pt; border-top: medium none; border-right: black 1pt solid; padding-top: 0in" valign="top"&gt; &lt;p class="MsoNormal"&gt;&lt;a href="ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/LeakDiag"&gt;ftp://ftp.microsoft.com/PSS/Tools/Developer%20Support%20Tools/LeakDiag&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;Native code debugging sites and blogs&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.advancedwindowsdebugging.com"&gt;http://www.advancedwindowsdebugging.com&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/ntdebugging"&gt;http://blogs.msdn.com/ntdebugging&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.osronline.com"&gt;http://www.osronline.com&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.alex-ionscu.com"&gt;http://www.alex-ionscu.com&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.dumpanalysis.org"&gt;http://www.dumpanalysis.org&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.nynaeve.net/"&gt;http://www.nynaeve.net/&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.thinktecture.com/ingo/archive/2006/08/05/414674.aspx"&gt;http://blogs.thinktecture.com/ingo/archive/2006/08/05/414674.aspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;.NET articles:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn2.microsoft.com/en-us/library/ms954594.aspx"&gt;http://msdn2.microsoft.com/en-us/library/ms954594.aspx&lt;/a&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/03/06/Bugslayer"&gt;http://msdn.microsoft.com/msdnmag/issues/03/06/Bugslayer&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/03/Bugslayer"&gt;http://msdn.microsoft.com/msdnmag/issues/05/03/Bugslayer&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://support.microsoft.com/kb/892277"&gt;http://support.microsoft.com/kb/892277&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/05/07/Debugging/"&gt;http://msdn.microsoft.com/msdnmag/issues/05/07/Debugging/&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/11/CLRInsideOut/default.aspx"&gt;http://msdn.microsoft.com/msdnmag/issues/06/11/CLRInsideOut/default.aspx&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;b&gt;.NET debugging blogs:&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/yunjin/"&gt;http://blogs.msdn.com/yunjin/&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/tess/"&gt;http://blogs.msdn.com/tess/&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/jmstall/"&gt;http://blogs.msdn.com/jmstall/&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/mvstanton/"&gt;http://blogs.msdn.com/mvstanton/&lt;/a&gt;&amp;nbsp; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/cbrumme/"&gt;http://blogs.msdn.com/cbrumme/&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/maoni/"&gt;http://blogs.msdn.com/maoni/&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/toddca/"&gt;http://blogs.msdn.com/toddca/&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://blogs.msdn.com/suzcook/"&gt;http://blogs.msdn.com/suzcook/&lt;/a&gt; &lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;a href="http://www.debugtricks.com"&gt;http://www.debugtricks.com&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9385198" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/arvindsh/archive/tags/Production+debugging/default.aspx">Production debugging</category></item><item><title>Symbols and symbol files</title><link>http://blogs.msdn.com/arvindsh/archive/2006/08/30/731150.aspx</link><pubDate>Wed, 30 Aug 2006 07:44:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:731150</guid><dc:creator>arvindsh</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/arvindsh/comments/731150.aspx</comments><wfw:commentRss>http://blogs.msdn.com/arvindsh/commentrss.aspx?PostID=731150</wfw:commentRss><description>&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Some of us are unaware of the relevance of proper symbols files. The symbol file is a deliverable just like the binary. Though it is not required for running the application, it is very important to debug issues which arise in production.&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;What are symbols and symbol files?&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Symbols contain the mapping between the compiler-generated machine code and your source code. They help the debugger to "understand" the addresses of functions, parameters and variables and map them back to source code references. Without a proper symbol file, the debugger may present disassembly output which looks like this:&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call YourApp+0x11c0d (00411c0d)&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;With proper symbol resolution, the debugger can correctly interpret this machine code as the equivalent function name:&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face="Courier New" size=2&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; call YourApp!CSampleDlg::OnBtnClicked&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;In the Visual Studio family of products, we use the PDB (Program Database) format for encoding the symbolic information into a file. Given below are the steps to generate the symbol files for various product versions. &lt;/FONT&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Please ensure that the PDB files generated are&lt;/FONT&gt; &lt;FONT face=Arial size=2&gt;of the&lt;/FONT&gt;&lt;B&gt; &lt;FONT face=Arial size=2&gt;same code base&lt;/FONT&gt;&lt;/B&gt;&lt;FONT face=Arial size=2&gt; as&lt;/FONT&gt; &lt;FONT face=Arial size=2&gt;the service EXE/DLLs that are actually used in the&lt;/FONT&gt; &lt;FONT face=Arial size=2&gt;testing. Everytime your code is rebuilt, the PDB is re-generated and has to be maintained in sync with your code base and binaries.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;Private vs. Public symbols&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Public symbol files are what you get from Microsoft for the Windows OS and other products. You can obtain public symbols for Microsoft products either by referencing the public symbol server at &lt;A href="http://msdl.microsoft.com/download/symbols"&gt;http://msdl.microsoft.com/download/symbols&lt;/A&gt;, or by downloading appropriate symbol packages from &lt;A href="http://www.microsoft.com/whdc/devtools/debugging/default.mspx"&gt;http://www.microsoft.com/whdc/devtools/debugging/default.mspx&lt;/A&gt;. Public symbols normally just contain:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL dir=ltr&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Mapping from addresses to function names&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Frame pointer omission (FPO) records&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Private symbol files are the default kind of files generated by the Visual Studio linkers. These files contain the following details in addition to what the public symbols contain:&lt;/FONT&gt;&lt;/P&gt;
&lt;UL dir=ltr&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Line numbers and source file information&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Parameter names and data types&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Local variable names and data types&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Normally you would want private symbol files for any detailed debugging of your own application. However, it may not be a very good idea to share your private PDB files with your end customers, since some of the information in the private PDB can be viewed as intellectual property.&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;To generate stripped / public PDB files with Visual C++, use the information in &lt;A href="http://msdn2.microsoft.com/en-US/library/y87kw2fd.aspx"&gt;http://msdn2.microsoft.com/en-US/library/y87kw2fd.aspx&lt;/A&gt; for steps.&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;How to generate symbol files for Visual C++.NET 7/7.1/8.0&lt;/FONT&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In these versions of VC++, a symbol file should automatically be created if you are compiling a debug build. If you are compiling a release build, then you will need to check the steps below to ensure that linker will create symbols. Please perform the symbol generation steps for each and every module in your application. If it loads other DLLs then these steps need to be done for those DLLs also.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL dir=ltr&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Open the source code for your project.&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Open the properties page for the project from Solution Explorer&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;View the Configuration Properties-&amp;gt;Linker-&amp;gt;Debugging node&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Make sure "Generate Debug Info" is set to YES&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Also check that the "Generate Program Database File" is set to a non-blank path&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Rebuild the project to generate the PDB file&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;How to generate symbol files for Visual C#.NET 7/7.1/8.0&lt;/FONT&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In VC#, a symbol file should automatically be created if you are compiling a debug build. If you are compiling a release build, the steps are given below.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL dir=ltr&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Open the source code for your project.&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Open the properties page for the project from Solution Explorer&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;View Configuration Properties-&amp;gt;Build node&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Make sure "Generate Debugging Information" is set to True.&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Rebuild the project to generate the PDB file&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;How to generate symbol files for Visual Basic.NET 7/7.1/8.0&lt;/FONT&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In VB.NET, a symbol file should automatically be created if you are compiling a debug build. If you are compiling a release build, the steps are given below.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL dir=ltr&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Open the source code for your project.&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Open the properties page for the project from Solution Explorer&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;View Configuration Properties-&amp;gt;Build node&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Make sure "Generate Debugging Information" is checked.&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;FONT face=Arial size=2&gt;Rebuild the project to generate the PDB file&lt;/FONT&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;How to generate symbol files for Visual C++ 6.0&lt;/FONT&gt;&lt;/B&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;B&gt;&lt;FONT face=Arial size=2&gt;&lt;FONT color=#ff0000&gt;Important note: if you are still using VC++ 6.0, be aware that Microsoft Support will not be in a position to support you on issues concerning the product. That is because the end of support lifecycle has been reached for this version of VC++. For more information, review the details at &lt;/FONT&gt;&lt;A href="http://support.microsoft.com/lifecycle"&gt;&lt;FONT color=#ff0000&gt;http://support.microsoft.com/lifecycle&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt; and plan to upgrade to higher versions of VC++.NET. The information below is provided for reference only, and should not be interpreted as a sign of support!&lt;/FONT&gt;&lt;/FONT&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In VC++ 6.0, a symbol file should automatically be created if you are compiling a debug build. If you are compiling a release build, then you will need to follow these steps to create symbols. Please perform the symbol generation steps for each and every module in your application. If it loads other DLLs then these steps need to be done for those DLLs also.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL dir=ltr&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Open the source code for your project.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Select Settings from the Project menu.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In the Link tab, select General from the Category drop-down.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Check Generate Debug Info&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In the C/C++ tab, select General from the Category drop-down.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Select Program Database from the Debug Info drop-down.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Link with /RELEASE to get a non-zero checksum.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Go to the Category drop-down &amp;amp; select Listing Files.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In the Listing File drop-down, select 'Assembly, Machine Code, and Source'.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Rebuild your project.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;B&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;How to generate symbol files for Visual Basic 6.0&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/B&gt;&lt;/P&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In VB6, symbols are not created&lt;/FONT&gt; &lt;FONT face=Arial size=2&gt;by default. To create symbols for your VB6 applications, follow these steps:&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;UL dir=ltr&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Open the source code for your project.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Select "&amp;lt;projectname&amp;gt; Properties" from the Project menu.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;In the Compile tab, check Create Symbolic Debug Info and select No Optimizations&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Recompile. This will create a .PDB file (the symbols) in the same directory as your .DLL / .EXE / .OCX file.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;
&lt;LI dir=ltr&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&lt;SPAN lang=en-us&gt;&lt;FONT face=Arial size=2&gt;Note: This does *not* break binary compatibility.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=ltr style="MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px"&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=731150" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/arvindsh/archive/tags/Production+debugging/default.aspx">Production debugging</category></item></channel></rss>