This coming week is Hackweek V - and I picked a really cool project:
The ultimate goal is making MDB ready to debug moonlight and other "mixed-mode" applications.
Mixed mode means applications which are half unmanaged and half managed.
This requires quite a bit of work on mdb's unmanaged debugging support, but I definitely think it's worth it and it'll make mdb ready for the next century.
My battle plan looks like this:
- Add support for the JIT's new dwarf debugging code
- Integrate this into mdb's stack unwinding code
We're already using the dwarf frame info for unwinding unmanaged stack frames, but not for managed code and there are some bad hacks in place to support things like trampolines.
- Fix attaching and debugging embedded applications.
- Fix a thousand bugs in the unmanaged debugging code.
- See whether we can improve the debugging information from the JIT a bit, cleanup the old debugging code and make it more dwarf-based.