<?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>Srini</title><link>http://blogs.msdn.com/srini/default.aspx</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Breakpoints not getting hit during NET CF Device Debugging...</title><link>http://blogs.msdn.com/srini/archive/2007/11/22/breakpoints-not-getting-hit-during-net-cf-device-debugging.aspx</link><pubDate>Thu, 22 Nov 2007 09:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:6466175</guid><dc:creator>SriniNa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/srini/comments/6466175.aspx</comments><wfw:commentRss>http://blogs.msdn.com/srini/commentrss.aspx?PostID=6466175</wfw:commentRss><description>&lt;P&gt;We&amp;nbsp;have seen a lot of customers reporting the fact that &lt;U&gt;sometimes&lt;/U&gt; the breakpoints are not getting hit&amp;nbsp; and the connection to the device is lost popping the error dialog "The connection to the device is lost ...", while debugging a NET CF V2 application using VS 2005. This issue has been traced to a code defect and has been fixed in NET CF V2 SP2.&lt;/P&gt;
&lt;P&gt;Hope that helps and also please keep sending feedback.&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=6466175" width="1" height="1"&gt;</description></item><item><title>Reporting F5 experience to Visual Studio for Devices Team: Debug the Device Debugger.</title><link>http://blogs.msdn.com/srini/archive/2006/09/07/744003.aspx</link><pubDate>Thu, 07 Sep 2006 09:56:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:744003</guid><dc:creator>SriniNa</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/srini/comments/744003.aspx</comments><wfw:commentRss>http://blogs.msdn.com/srini/commentrss.aspx?PostID=744003</wfw:commentRss><description>&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=5&gt;Unable to start debugging: How to attack the issue.&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;I am the owner for the device debugging efforts from the Visual Studio for Devices&amp;nbsp;team. If you are hitting "Unable to start debugging" or any similar issue in F5 experience, please feel free to convey the information via MSDN feedback centre. While doing so try to provide as much information as possible.&lt;/P&gt;
&lt;P&gt;BTW F5 e2e scenario contains three stages: connection to the device, deployment of the files and then starting the debugger.&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;FONT size=4&gt;What information is needed?&lt;/FONT&gt;&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;Sample Template for the diagnosis in the order of value. &lt;/P&gt;
&lt;P&gt;&lt;U&gt;Stage1:&lt;/U&gt;&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Is Connect to Device working (VS-&amp;gt;tools-&amp;gt;connect to Device)?&lt;/LI&gt;
&lt;LI&gt;Is Ctrl F5 scenario working (start without debugging)?&lt;/LI&gt;
&lt;LI&gt;Are the RemoteTools working from the Visual Studio root? (Microsoft Visual Studio 2005-&amp;gt;Visual Studio Remote Tools)&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;The above information will ensure if it is a debugger specific issue or not. Now to the next stage&lt;/P&gt;
&lt;P&gt;&lt;U&gt;Stage2&lt;/U&gt;&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;A simplified repro.&lt;/LI&gt;
&lt;LI&gt;Error Dialog. Example "Unable to start debugging".&lt;/LI&gt;
&lt;LI&gt;Managed debugging (C#/VB) or Native Debugging or Both&lt;BR&gt;&amp;nbsp; -If Managed debugging V1 or V2 or both.&lt;BR&gt;&amp;nbsp; -If Native debugging is it SDK/architecture specific.&amp;nbsp;&lt;/LI&gt;
&lt;LI&gt;Physical Device or Emulator or both.&lt;BR&gt;&amp;nbsp;&amp;nbsp; -Architecure of the device&lt;BR&gt;&amp;nbsp;&amp;nbsp; -Transport (DMA, Active Sync) specific or not.&lt;/LI&gt;
&lt;LI&gt;When you hit the issue is edm.exe running on the device [ Use Remote Tools Process Viewer&amp;nbsp;]&lt;/LI&gt;
&lt;LI&gt;Version of the Visual Studio being used.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;The more the information the resolution would be quicker. Then the next stage &lt;/P&gt;
&lt;P&gt;&lt;U&gt;Stage3:&lt;/U&gt;&lt;/P&gt;
&lt;P&gt;Running the scenario by running the scenario using VSD Logging instructions and sending the logs to us. I would defer the details of this stage to a subsequent blog as this applies to any scenario in VSD and not specific to debugger.&lt;/P&gt;
&lt;P&gt;&lt;FONT size=4&gt;&lt;STRONG&gt;Why does it happen?&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Let me highlight the most common reasons for hitting the same.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;edm.exe&lt;/STRONG&gt; service (the remote debug device monitor) not starting up.&lt;BR&gt;&amp;nbsp;- This could be either a bad datastore as explained in an earlier blog OR&lt;BR&gt;&amp;nbsp;- Due to a missing type map entry in the global datastore (C:\Documents and Settings\All Users\Application Data\Microsoft\corecon\1.0\addons or equivalent)&amp;nbsp; file Microsoft.TypeMaps.8.0.xsl&amp;nbsp;.&amp;nbsp;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; You can double check this by quickly running the following snippet on the device.&lt;BR&gt;hmod = LoadLibrary(TEXT("coredll.dll"));&lt;BR&gt;&amp;nbsp;&lt;EM&gt;&amp;nbsp;&amp;nbsp; if (hmod != NULL)&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BOOL (*QueryInstructionSetFunc)(DWORD, DWORD*) = (BOOL (*)(DWORD, DWORD*)) GetProcAddress(hmod, L"QueryInstructionSet");&lt;/EM&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;EM&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;&amp;nbsp; if (QueryInstructionSetFunc != NULL)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; QueryInstructionSetFunc(PROCESSOR_QUERY_INSTRUCTION,&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;amp;&lt;STRONG&gt;instructionSet&lt;/STRONG&gt;);&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;&lt;EM&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FreeLibrary(hmod);&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;&amp;nbsp; }&lt;/EM&gt;&lt;/P&gt;
&lt;P&gt;and then verifying if the &lt;STRONG&gt;instructionset&lt;/STRONG&gt; is present in Microsoft.TypeMaps.8.0.xsl. &lt;/P&gt;
&lt;P&gt;The workaround here would be adding an equiavalent entry in the global datastore. However this needs be done with utmost care. So better backup the globa datastore before doing the same. We know one entry which is missing currently....84017153 during one of our customer interactions. More details on this in subsequent blogs.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;ICordbg.dll not being registered properly due to an unknown bad installation. This is for the managed case only. Check for the InproceServer32 registry entries&amp;nbsp; at HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{83F64ACD-26BF-4FFE-87A8-43AE2C9872E3}&lt;BR&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{48C2DAF2-F746-41D8-B0A9-D8FE3A0753BB}&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;and ensure that icordbg.dll is infact present at the given path.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;The workaround here would be to do &lt;EM&gt;regsvr32 icordbg.dll. &lt;/EM&gt;However this should not be the normal case and we would love to hear why you are hitting it for root cause analysis.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=744003" width="1" height="1"&gt;</description></item><item><title>Addendum</title><link>http://blogs.msdn.com/srini/archive/2006/01/05/509600.aspx</link><pubDate>Thu, 05 Jan 2006 14:57:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:509600</guid><dc:creator>SriniNa</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/srini/comments/509600.aspx</comments><wfw:commentRss>http://blogs.msdn.com/srini/commentrss.aspx?PostID=509600</wfw:commentRss><description>Let me also add that the below issue is very sporadic and not a&amp;nbsp;common one. &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=509600" width="1" height="1"&gt;</description></item><item><title>"Unable to Start debugging" with VS 2005 issue </title><link>http://blogs.msdn.com/srini/archive/2006/01/05/509599.aspx</link><pubDate>Thu, 05 Jan 2006 14:46:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:509599</guid><dc:creator>SriniNa</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/srini/comments/509599.aspx</comments><wfw:commentRss>http://blogs.msdn.com/srini/commentrss.aspx?PostID=509599</wfw:commentRss><description>&lt;P&gt;&lt;FONT face=Arial color=#008000 size=2&gt;We are hearing some reports of VSD debugger popping up "Unable to start debugging" dialog sometimes on customer boxes trying to debug with Win CE 5.0 device. We are suspecting this to be a issue with side by side installations_and_usages of PB and VS 2005. When this happens on the customer box, he is however able to connect to the device and deploy the files normally.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial color=#008000 size=2&gt;The current workaround is to delete the data store entries conman_ds_* from %userprofile%\Local Settings\Application Data\Microsoft\CoreCon\1.0. Do remember to backup this directory as a safety measure before deleting the entries.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial color=#008000 size=2&gt;We are trying for a consistent repro. Anyone hitting on it and willing to share the repro steps please mail me.&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial color=#008000 size=2&gt;Stay tuned for more updates.&lt;BR&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial color=#006400 size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=509599" width="1" height="1"&gt;</description></item><item><title>Useful pointers</title><link>http://blogs.msdn.com/srini/archive/2005/12/27/507477.aspx</link><pubDate>Tue, 27 Dec 2005 09:01:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:507477</guid><dc:creator>SriniNa</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/srini/comments/507477.aspx</comments><wfw:commentRss>http://blogs.msdn.com/srini/commentrss.aspx?PostID=507477</wfw:commentRss><description>&lt;P&gt;In VS 2005, VSD does not support &lt;SPAN style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial"&gt;Seamless "Mixed mode" debugging a.k.a interop debugging. However this is being actively considered for future releases of VS and .NET CF.&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;However if you need to&amp;nbsp;debug a solution that includes both Managed and Native Code check out the following walkthroughs.&lt;/P&gt;
&lt;P&gt;&lt;A title=http://msdn2.microsoft.com/en-us/library/ms228818.aspx href="http://msdn2.microsoft.com/en-us/library/ms228818.aspx"&gt;&lt;FONT face=Arial size=2&gt;http://msdn2.microsoft.com/en-us/library/ms228818.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT face=Arial color=#000080 size=2&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;A title=http://blogs.msdn.com/davidklinems/archive/2005/06/02/424595.aspx HREF="/davidklinems/archive/2005/06/02/424595.aspx"&gt;&lt;FONT face=Arial size=2&gt;http://blogs.msdn.com/davidklinems/archive/2005/06/02/424595.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Stay tuned!&lt;/P&gt;
&lt;P&gt;Srinivas N&lt;/P&gt;
&lt;P&gt;&lt;?xml:namespace prefix = o /&gt;&lt;o:p&gt;&lt;/o:p&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=507477" width="1" height="1"&gt;</description></item><item><title>About two cool device debugging features in VS 2005</title><link>http://blogs.msdn.com/srini/archive/2005/10/19/482597.aspx</link><pubDate>Wed, 19 Oct 2005 14:50:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:482597</guid><dc:creator>SriniNa</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/srini/comments/482597.aspx</comments><wfw:commentRss>http://blogs.msdn.com/srini/commentrss.aspx?PostID=482597</wfw:commentRss><description>&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;In this blog, I shall touch upon two important and cool features in VS 2005 device debugging.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Feature1: Attaching to NET CF V2 process&lt;/B&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;VS 2005 allows for attaching to a NET CF V2 process running on the device/emulator. This is disabled by default for performance reasons.To enable it one needs to set the value &lt;B style="mso-bidi-font-weight: normal"&gt;AttachEnabled&lt;/B&gt;&amp;nbsp;to 1 at HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\.NETCompactFramework\Managed Debugger &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Couple of notes:&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;-Any NET CF V2 process started after the above setting&amp;nbsp;is attachable. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;-Processes started before enabling are still not attachable.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;-This is applicable only to V2 processes. This feature is not available for V1 processes.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;-The feature can be disabled by setting the value AttachEnabled&amp;nbsp;to 0. &lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;A title=https://blogs.msdn.com/davidklinems/archive/2005/05/24/421566.aspx href="https://blogs.msdn.com/davidklinems/archive/2005/05/24/421566.aspx" target=_blank&gt;&lt;FONT color=#000000&gt;https://blogs.msdn.com/davidklinems/archive/2005/05/24/421566.aspx&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#000000&gt;&amp;nbsp;talks in detail about this feature. So I would not want to duplicate the facts.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;B style="mso-bidi-font-weight: normal"&gt;Feature2: Just In Time (JIT) debugging&lt;/B&gt; is an all powerful paradigm. Visual Studio 2005 provides infrastructure to do native JIT debugging on devices.&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;The way this is enabled is&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;-&amp;nbsp;Go to &amp;lt;VS Install Directory&amp;gt;\SmartDevices\Debugger\target\wce400\cpu (for example, cpu is ARMV4i for Windows Mobile 5.0).&amp;nbsp;&lt;BR&gt;- Copy eDbgJit.exe to the \windows folder on the device.&amp;nbsp;&lt;BR&gt;- Start the executable file. This will enable the JIT debugging (if you are running on a device with a CE OS version &amp;lt; 5.0 you need to soft reset as well)&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Assume now you have started a native application on the device and then it crashes for some reason. Then you would be prompted with a dialog whose contents should look like&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;An unhandled exception&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;was raised in "exe path +name" &lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;(process id = xxxxxx)&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;To debug attach with &lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;Visual Studio&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;To terminate, click OK.&lt;o:p&gt;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;I style="mso-bidi-font-style: normal"&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/I&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Happy debugging !&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Thanks&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;Srinivas N&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=482597" width="1" height="1"&gt;</description></item><item><title>Key component in VSD Managed Debugging : icordbg.dll</title><link>http://blogs.msdn.com/srini/archive/2005/10/05/477251.aspx</link><pubDate>Wed, 05 Oct 2005 11:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:477251</guid><dc:creator>SriniNa</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/srini/comments/477251.aspx</comments><wfw:commentRss>http://blogs.msdn.com/srini/commentrss.aspx?PostID=477251</wfw:commentRss><description>&lt;P&gt;Visual Studio 2005 debugger component cpde.dll (debug engine) hosts components which implement ICorDebug, the managed debugging API.&lt;BR&gt;(For details refer ICorDebug blogs at &lt;a href="http://blogs.msdn.com/jmstall"&gt;http://blogs.msdn.com/jmstall&lt;/A&gt;). &lt;/P&gt;
&lt;P&gt;This API is implemented in mscordbi.dll&amp;nbsp; for Managed Debugging of desktop applications in Visual Studio.&lt;/P&gt;
&lt;P&gt;Before we get into VSD specific details let me briefly summarize the essence of managed debugging.&lt;/P&gt;
&lt;P&gt;Managed debugging is implemented entirely by the run time. There is a special thread (called the Helper thread) in every managed process that services requests from the managed debugging API (ICorDebug interfaces). Managed debugging is an In-Process model. The helper thread must be present and running in the debuggee’s process in order for managed-debugging to function. &lt;/P&gt;
&lt;P&gt;Having said that, the key things that differentiate Visual Studio for Devices (VSD) Managed Debugger with the Desktop debugger is the following two facts&lt;BR&gt;- VSD Managed Debugging is always remote debugging. That is the debugee process is not running on the desktop where the debugger process (devenv) is running. The debuggee process runs either on the emulator or on the device. &lt;BR&gt;- VSD Managed Debugging invloves .NET Compact Framework runtime whereas for the desktop world it is CLR. Hence we cannot equate remote debugging of a desktop application with that of VSD Managed Debugging even at 10000 feet height considering that managed debugging follows a in-proc model.&lt;/P&gt;
&lt;P&gt;The actual implementation of the VSD managed debugging API sits in &lt;STRONG&gt;icordbg.dll&lt;/STRONG&gt;. As mentioned above, icordbg.dll interacts directly with the .NET CF running process which spawns and runs the debuggee helper thread.&lt;/P&gt;
&lt;P&gt;That much for the brief introduction. Stay tuned for further details on end to end story of F5 in Managed Debugging.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=477251" width="1" height="1"&gt;</description></item><item><title>I am in !</title><link>http://blogs.msdn.com/srini/archive/2005/09/15/467489.aspx</link><pubDate>Thu, 15 Sep 2005 12:42:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:467489</guid><dc:creator>SriniNa</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/srini/comments/467489.aspx</comments><wfw:commentRss>http://blogs.msdn.com/srini/commentrss.aspx?PostID=467489</wfw:commentRss><description>&lt;P&gt;This is my first official blogging experience and that explains the topic.&lt;/P&gt;
&lt;P&gt;Let me introduce myself before getting into anything techie. I am &lt;B&gt;Srinivas N&lt;/B&gt; working as a developer for the &lt;a href="http://blogs.msdn.com/vsdteam/"&gt;&lt;B&gt;Visual Studio for Devices (VSD) team&lt;/B&gt; &lt;/A&gt;&amp;nbsp;where I currently drive the &lt;B&gt;Managed Debugger&lt;/B&gt; effort and as well contribute to the &lt;B&gt;Native Debugging&lt;/B&gt; story . &lt;/P&gt;
&lt;P&gt;My current planning for this blog space is to provide commentary on the &lt;I&gt;debugging story for VSD team&lt;/I&gt;: how the debugger differs from the desktop debugger, why it is designed the way it is and so on. I hope this blog would also serve as a useful platform for interfacing with the VSD customer issues.&lt;/P&gt;
&lt;P&gt;Apart from this I would also like to pen on one of my favorite (does not necessarily mean that I am expert at it :-)) topic: &lt;I&gt;tools for increasing the productivity at work&lt;/I&gt;, in particular debugging. &lt;/P&gt;
&lt;P&gt;Recently I got a chance to contribute in a deceptively tricky bug in VS. The issue was that of a crash in different components of VS at various stages of using the VS due to a cycle of events from the user. This resulted in Watson dumps in different components . The call stack in some of the Watson dumps had ntdll.dll:"RtlpAllocateHeapLookaside" and I immediately suspected this could be a possible heap corruption based on my past experience. The non-deterministic nature of the crash was&amp;nbsp;another key hint. I have learnt from Rich Hanbidge that using &lt;FONT face=Arial color=#000080 size=2&gt;NT “Page Heap”&amp;nbsp; &lt;/FONT&gt;offers the quickest way to debug heap corruption issues. &lt;A href="http://www.microsoft.com/technet/prodtechnol/windowsserver2003/library/TechRef/b6af1963-3b75-42f2-860f-aff9354aefde.mspx"&gt;&lt;STRONG&gt;gflags tool&lt;/STRONG&gt;&lt;/A&gt; can be used to enable page heap verification. Once I monitored the user scenario with this, the function causing heap corruption was identified. The issue was that of double free triggered as part of handling&amp;nbsp;a CANCEL event from the user. Reverse engineering from the code gave us a consistent repro scenario for the crash to happen.&lt;/P&gt;
&lt;P&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;
&lt;P class=MsoNormal&gt;&lt;FONT face=Arial color=navy size=2&gt;&lt;SPAN style="FONT-SIZE: 10pt; COLOR: navy; FONT-FAMILY: Arial"&gt;&lt;/SPAN&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/FONT&gt;I believe the way heap corruption is detected by&amp;nbsp;such tools is by having a verification/validation layer between the application and the system so that all the dynamic memory&amp;nbsp;operations of the application can be monitored. 
&lt;P&gt;&lt;/P&gt;
&lt;P&gt;Can't imagine life without such tools! Stay tuned for more.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=467489" width="1" height="1"&gt;</description></item></channel></rss>