I relaxed a bit this weekend, had a nice easter dinner with friends, did some sightseeing and went to the movies. Yesterday, I took the blue line to Wonderland and walked around at the beach a little bit. The weather wasn't that perfect it, but it was still great.
In the evenings, when it was already dark outside, I also hacked a little bit on my cool new toy: PowerPC support for the Debugger.
Before I started to actually port the debugger to that new architecture, I realized that it may be a problem that the JIT isn't fully ported to this architecture yet. So it may be difficult to run a huge and complex Mono application like the debugger on it.
However, very quickly, I found a solution for this problem: remote debugging ! It wasn't that complicated since the debugger was already using a small unmanaged helper application to do all the low-level stuff. So I just provided a small CORBA wrapper for it and everything was fine. I'm now running the debugger on my laptop (Red Hat 9) and it talks to a remote debugger process on the PowerPC. This stuff isn't perfect yet and it has some limitations (for instance, it isn't translating path names, so you need to have your target application on both machines and in the same path name), but it should be fine for the moment.
The next step was actually porting the debugger. It turned out that it wasn't that difficult than I originally expected and debugging support on the MacOS is also really good. So at the moment, we can single step, read/write the target's memory, read/write registers and insert/remove/enable/disable breakpoints. And, of course, it's showing you source code while single-stepping :-)
I think this MaxOS port will not only help people on the mac, put it'll also benefit the debugger on Linux. For instance, I already found and fixed a few bugs in the platform independent code while doing it.
Next week, when I'm doing some more bug fixing in MCS, I'll also start using the debugger to debug MCS ....