During the last few days, I’ve been trying to accomplish three things:
- Hook the new compact code up to the old deadlock detector
- Write a headless version of the recorder so it can be run over an X-less SSH connection
- Make the instrumentation process work on Macs
Unfortunately, it seems like while trying to work on 2, I must have screwed something up, and recording wasn’t working at all anymore, on no system, not only on Macs.
Now I’m at the Summer School on Language-Based Techniques for Concurrent and Distributed Software in Eugene, Oregon, and in the few remaining hours I couldn’t track down what change had broken recording. I was only able to roll back before I started to work on the headless version to make it work.
I have taken both my new MacBook and the Windows tablet with me to the summer school, but I only had the MacBook in my carry-on luggage. So at the airport and on the plane I’ve been working on adding the ability to have multiple input files, which seems to be what’s required to make the process work on Macs. Hopefully I’ll just be able to combine both classes.jar and ui.jar in one single file and prefix that to the boot classpath.
I’m going to test that in a minute. Of course, then I still have to test whether the changes run on Windows. And on Linux… ;)
Update
The changes to support multiple input files work on Windows as well, so I committed them. Interestingly, on the Windows tablet, the problems I had noticed earlier with recording didn’t occur. Maybe my Windows system at home was just screwed up.
I also launched the recorder on the Mac for the first time. It looked promising, and I got a bunch of good recorded sync points, complete with object ID information, but then the Java program died with the message
Invalid memory access of location 000002a6 eip=ffff07c2
I’m going to sleep now. It’s nearly 3 AM, Houston time… I guess soon I’ll have to play divide and conquer on the Mac to figure out what might be causing that access exception.