Writing an Iron Python debugger
- by Kragen
As a learning exercise I'm writing myself a simple extension / plugin / macro framework using IronPython - I've gotten the basics working but I'd like to add some basic debugging support to make my script editor easier to work with.
I've been hunting around on the internet a bit and I've found a couple of good resources on writing managed debuggers (including Mike Stall's excellent .Net Debugging blog and the MSDN documentaiton on the CLR Debugging API) - I understand that IronPython is essentially IL however apart from that I'm a tad lost on how to get started, in particular:
Are there any significant differences between debugging a dynamic language (such as IronPython) to a static one (such as C#)?
Do I need to execute my script in a special way to get IronPython to output suitable debugging information?
Is debugging a script running inside the current process going to cause deadlocks, or does IronPython execute my script in a child process?
Am I better off looking into how to produce a simple C# debugger first to get the general idea?
(I'm not interested in the GUI aspect of making a debugger for now - I've already got a pretty good idea of how this might work)