MDbg Sample is updated for Beta 2 and RTM

The Mdbg (a managed debugging written in pure C#) sample, which includes full source, has now been updated and released. The previous sample was for beta 1. This new sample has been updated for Whidbey beta 2 and will also be compatible with the final Whidbey release. The old mdbg beta 1 source sample is now obsolete.
Update: The old URL is obsolete. The new URL appears to be here.

I just downloaded and built it to verify (make sure that you install it into its own directory and not on top of a previous Mdbg install). Many thanks should go to Jan Stranik and Rick Byers for their Mdbg work in making this happen.

It does not contain my updated Mdbg winforms gui. We want to roll that back into the sample, but plan to do so at a later date so that we didn't delay releasing this sample any longer.
To put this in perspective, we effectively have 2 Mdbg lines: the Sample and the SDK-version.
 

  The Sample The SDK version
Primary Goal? Provide hobbyists sample usage of the ICorDebug API via managed wrappers. This sample uses completely public interfaces. Maintain feature parity with the old Cordbg that we removed from the SDK. (Remember this?)
What's included? Includes all source, VS buildable solution Binaries only. Source not included
Prerequisites? Only requires that the .Net Frameworks are installed. Does not require the SDK. Part of the SDK, so the SDK is installed.
Deployed dlls? Multiple dlls (Corapi, CorApi2, MdbgEng, MdbgExt) since there is no IL linker in the redist. See here for details.Does not include a native disassembler. Dlls linked into MdbgCore.dll. Includes native-disassembly functionality (in MdbgDis.dll) on par with Cordbg's functionality. Since the deployed dlls are different, a single extension may not be able to target both the sample and the sdk. 
Extensions? Includes helpful extension dlls (such as primitive GUI and IL diassembler) No extension dlls included with (beyond MdbgDis.dll for native disassembly). This is because the SDK version was just trying to match old Cordbg feature parity
Release schedule? Whenever we feel like it. This should include after major CLR releases.  There are currently two releases here: The beta 1 sample, and now the beta2/RTM sample. Ships as part of SDK. There is currently 1 release here for the beta 2 SDK. It will remain in the SDK until it is deprecated (which currently won't happen until Windbg has real managed-debugging support)

So there are now several Mdbg's floating around:
1.) MDbg Beta 1 source-sample. This was the first release of Mdbg. This sample only works on Beta 1 and is now obsolete. The download link has been updated to point to the beta2 sample.
2.) MDbg in Beta 2 SDK. This was a binary-only sample (no source include) and marks that MDbg is now officially part of the CLR's SDK. This version also has a bunch of extra fixes on top of the Beta 1 release.
3.) MDbg Beta 2 source-sample. That's what I'm blogging about here.

I allude here to some issues upgrading extensions from beta 1 to beta 2 or between switching between the sample and the sdk version.

Comments

  • Anonymous
    August 10, 2005
    Thank you very much. ;-)
  • Anonymous
    August 24, 2005
    I wrote some C# sample code to get an ISymbolReader from a managed PDB (Program Database) file and then...
  • Anonymous
    August 31, 2005
    I hear IronPython is a great managed scripting language to embed in other managed apps, so I thought...
  • Anonymous
    September 01, 2005
    Previously, I added IronPython scripting support to a real existing application, MDbg (a managed debugger...
  • Anonymous
    September 01, 2005
    I hear IronPython is a great managed scripting language to embed in other managed apps, so I thought...
  • Anonymous
    September 21, 2005
    Hi Mike,

    The link for downloading the updated Mdbg sample is broken. Can you please update?

    Thanks,
    Notre
  • Anonymous
    September 21, 2005
    Okay, I think I've found it at http://www.microsoft.com/downloads/details.aspx?FamilyID=38449a42-6b7a-4e28-80ce-c55645ab1310&DisplayLang=en.

    I've downloaded it and attempted to build the solution file, but I am getting many errors with most of them related to not being able to find the namespace Microsoft.Samples.Debugging.CorDebug.NativeApi.

    Are there any prerequisites to building the Mdbg sample? I'm using VS 2005 August CTP (along with August VS 2005 SDK).

    Thanks,
    Notre
  • Anonymous
    September 22, 2005
    Notre -
    I've updated the link. I guess it got moved underneath us.
    The build issue is a known error. We have a fix and are working to publish it. More details here:
    http://blogs.msdn.com/jmstall/archive/2005/09/22/mdbg_bug_build_error.aspx

    Sorry about that.
  • Anonymous
    February 14, 2006
    Here is a template for playing around with an extension for the MDbg sample (Mdbg is the managed debuggeer...
  • Anonymous
    June 28, 2006
    I often publish little samples in this blog based off MDbg (which generally show off the debugging services...