[IronPython] Using mdbg from IronPython
David.Lawler at franke.com
David.Lawler at franke.com
Wed Sep 19 20:06:00 CEST 2007
Ok I solved my own problem (a small miracle there).
The reason that it did not work is that you have to call anything that
uses mscordbi
(like mdbg), from an thread that is running in ApartmentState.MTA.
Therefore,
I needed to create a second worker thread in my IronPython script running
in
MTA mode, shove all the debugger related stuff in there, and then call it
from
my main thread.
David Lawler/FKS/FRANKE wrote on 09/18/2007 04:51:52 PM:
> I am experimenting and learning about debugging by playing with the
> source code to mdbg and the various samples.
> I thought it would be fun to take the mdbg c# example program that
> prints out modules as they are loaded and make a
> version in IronPython (I tried IP 1.1 and 2.0A3):
>
> import clr
>
> clr.AddReference('mdbgeng')
>
> from Microsoft.Samples.Debugging.MdbgEngine import *
>
> debugger = MDbgEngine()
> debugger.Options.CreateProcessWithNewConsole = True
> debugger.Options.StopOnModuleLoad = True
>
> proc = debugger.CreateProcess("ipy.exe", "", DebugModeFlag.Debug, None)
>
> while (proc.IsAlive):
> proc.Go().WaitOne()
> o = proc.StopReason
> if (isinstance(o) == ModuleLoadedStopReason):
> print o.Module.CorModule.Name
>
> print "done"
>
> Original c# program link: http://blogs.msdn.
> com/jmstall/archive/2004/11/19/267135.aspx
>
> Unfortunately, it does not work. The call to proc.Go().WaitOne()
> never returns and ipy.exe launches - but nothing is
> displayed in the window. What am I doing wrong (or is this just too
> weird for IronPython to handle)? Thanks,
>
> David
More information about the Ironpython-users
mailing list