<?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>Problems for a managed debugger for v1.1?</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx</link><description>Now that we’ve released a managed debugger sample for V2.0, people commonly ask “What about v1.1?”. I briefly touched on this when in a comment in the original MDbg post ( http://blogs.msdn.com/jmstall/archive/2004/09/30/236281.aspx#245499 ). Here are</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>   Long live MDbg &amp;raquo; Advanced .NET Debugging</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#1454488</link><pubDate>Fri, 12 Jan 2007 12:05:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1454488</guid><dc:creator>   Long live MDbg » Advanced .NET Debugging</dc:creator><description>&lt;p&gt;PingBack from &lt;a rel="nofollow" target="_new" href="http://dotnetdebug.net/2005/08/15/long-live-mdbg/"&gt;http://dotnetdebug.net/2005/08/15/long-live-mdbg/&lt;/a&gt;&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1454488" width="1" height="1"&gt;</description></item><item><title>MDbg Linkfest</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#1125738</link><pubDate>Thu, 23 Nov 2006 06:12:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:1125738</guid><dc:creator>Mike Stall's .NET Debugging Blog</dc:creator><description>&lt;p&gt;MDbg is a debugger for managed code written entirely in C# (and IL), which started shipping in the CLR&lt;/p&gt;
&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=1125738" width="1" height="1"&gt;</description></item><item><title>How to build Mdbg apps</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#649728</link><pubDate>Wed, 28 Jun 2006 17:54:57 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:649728</guid><dc:creator>Mike Stall's .NET Debugging Blog</dc:creator><description>I often publish little samples in this blog based off MDbg (which generally show off the debugging services...&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=649728" width="1" height="1"&gt;</description></item><item><title>Mike Stall's .NET Debugging Blog : MDbg Linkfest</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#636600</link><pubDate>Mon, 19 Jun 2006 09:49:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:636600</guid><dc:creator>Mike Stall's .NET Debugging Blog : MDbg Linkfest</dc:creator><description>PingBack from &lt;a rel="nofollow" target="_new" href="http://blogs.msdn.com/jmstall/archive/2005/11/08/mdbg_linkfest.aspx"&gt;http://blogs.msdn.com/jmstall/archive/2005/11/08/mdbg_linkfest.aspx&lt;/a&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=636600" width="1" height="1"&gt;</description></item><item><title>Managed Debugger Sample</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#371151</link><pubDate>Fri, 11 Feb 2005 20:38:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:371151</guid><dc:creator>Mike Stall's .NET Debugging Blog</dc:creator><description>&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=371151" width="1" height="1"&gt;</description></item><item><title>How to get a V2.0 ICorDebug object</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#353719</link><pubDate>Sun, 16 Jan 2005 01:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:353719</guid><dc:creator>Mike Stall's .NET Debugging Blog</dc:creator><description>&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=353719" width="1" height="1"&gt;</description></item><item><title>re: Problems for a managed debugger for v1.1?</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#253498</link><pubDate>Sun, 07 Nov 2004 09:24:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:253498</guid><dc:creator>Mike Stall</dc:creator><description>Suppose QI IA --&amp;gt; IB works, but there's a bug where  QI IB--&amp;gt;IA fails. &lt;br&gt;&lt;br&gt;You need to change how &lt;a title="" href="http://blogs.msdn.com/jmstall/archive/2004/09/30/236281.aspx" &gt;MDbg&lt;/a&gt; uses IA and IB, but yes, I think that could be made to work. &lt;br&gt;&lt;a title="" href="http://blogs.msdn.com/jmstall/archive/2004/09/30/236281.aspx" &gt;MDbg&lt;/a&gt; would only persist the IA interface. Whenever it needed the IB interface, it would QI IA --&amp;gt; IB, use IB, and then throw IB away. Thus it would never have to go IB--&amp;gt;IA, and life would be fine.&lt;br&gt;&lt;br&gt;I think that's effectively what you're proposing (though perhaps you cache the IB along w/ the IA so that you don't have to keep repeating the QI).&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=253498" width="1" height="1"&gt;</description></item><item><title>re: Problems for a managed debugger for v1.1?</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#252766</link><pubDate>Fri, 05 Nov 2004 12:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:252766</guid><dc:creator>Sam Saffron</dc:creator><description>It may be a little naive, but couldnt you just write a COM object that exposes all the methods in IA and IB and call that from the managed code, that way you do not have to flick between interfaces ... a big aggragate com component to do everything ....&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=252766" width="1" height="1"&gt;</description></item><item><title>re: Problems for a managed debugger for v1.1?</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#252334</link><pubDate>Thu, 04 Nov 2004 19:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:252334</guid><dc:creator>Mike Stall</dc:creator><description>1) We've actually played around with the unmanaged &amp;quot;classic&amp;quot; dll because we want to get &lt;a title="" href="http://blogs.msdn.com/jmstall/archive/2004/09/30/236281.aspx" &gt;MDbg&lt;/a&gt; to run on &lt;a title="" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=3A1C93FA-7462-47D0-8E56-8DD34C6292F0&amp;displaylang=en" target="_blank"&gt;Rotor&lt;/a&gt; (which doesn't support COM-interop).  This is actually surprisingly difficult, but feel free to play around and give it a try!&lt;br&gt;The problem with the QIs is not that we leak references, it's that if QI's neeed to be &amp;quot;stable&amp;quot;. Eg, if we have an IA interface to some object, and then we QI for IB, we need to be able to cal QI on that IB instance to get back the IA instance. Eg, go IA --&amp;gt; IB --&amp;gt; IA. We have bugs in our QI that prevent that.&lt;br&gt;&lt;br&gt;2) Decompiling - It should be pretty feasible. The Debug API operates at the IL-level anyways (see &lt;a target="_new" href="http://blogs.msdn.com/jmstall/archive/2004/10/03/237137.aspx"&gt;http://blogs.msdn.com/jmstall/archive/2004/10/03/237137.aspx&lt;/a&gt;) The &lt;a title="" href="http://blogs.msdn.com/jmstall/archive/2004/09/30/236281.aspx" &gt;MDbg&lt;/a&gt; sample already includes an IL disassembler.  The only remaining trick is to hook up your favorite disassembler to &lt;a title="" href="http://blogs.msdn.com/jmstall/archive/2004/09/30/236281.aspx" &gt;MDbg&lt;/a&gt; on top of the IL-disassembler example.&lt;br&gt;You wouldn't need any EnC/reflection goo - the ICorDebug APIs provide fully stack tracing functionality.&lt;br&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=252334" width="1" height="1"&gt;</description></item><item><title>re: Problems for a managed debugger for v1.1?</title><link>http://blogs.msdn.com/b/jmstall/archive/2004/11/02/250946.aspx#252203</link><pubDate>Thu, 04 Nov 2004 13:12:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:252203</guid><dc:creator>sam saffron</dc:creator><description>Regarding 1. Couldnt you just write an unmanaged &amp;quot;classic&amp;quot; dll that wraps the problem COM calls. then access using standard interop. Also, I thought the Marshal.ReleaseCOMObject could be uses to free up the hanging QIs &lt;br&gt;&lt;br&gt;Whats the feasability of adapting &lt;a title="" href="http://blogs.msdn.com/jmstall/archive/2004/09/30/236281.aspx" &gt;MDbg&lt;/a&gt; to do de-compiling on the fly? ala reflector. In 2.0 using E&amp;amp;C id assume you cound inject some reflection calls to get a proper stack trace and then use pattern matching to de-compile (if not provided by the debugger interfaces).&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=252203" width="1" height="1"&gt;</description></item></channel></rss>