About twelve hours ago, I was asked to expedite a patch for the Gecko 1.8 branch. Since I usually don’t play around on the branch, this wasn’t quite trivial. On my personal Windows box, I had uninstalled MSVC++ 6 several months ago, so that option was out. Ditto for my corporate Windows box (which never had it installed in the first place).
On my Linux operating system, I successfully compiled and ran a 1.8 branch build. Unfortunately, being rusty with gdb and ddd, this proved useless in terms of diagnosing the problem. If I knew how to debug in Linux properly, loading the right libraries and setting the breakpoints, I’d’ve had no problem.
So I switched to the Mac Mini I bought a couple weeks ago. Again, I successfully checked out, compiled, and ran the 1.8 branch build. I followed the instructions on using XCode at devmo, and got a little confused when they talked about Project Builder in the same sections (without giving me the rest of the details on XCode use). When I realized XCode and Project Builder were two different products entirely, it became relatively easy to set the breakpoints in running code and hit them – which led to me finding the cause of the problem I was looking for.
Ultimately, it turned out the problem I was researching wasn’t really applicable to the 1.8 branch. But that’s irrelevant. With relatively little trial and error, and the docs available on mozilla.org, I was able to debug the problem as I understood it at the time. I can truthfully say that this is the first time I was able to use the Mac Mini to hack something that would have been problematic to do on another operating system – without being an expert at every stinkin’ little detail.
Now if only I could figure out the other little details, like why the “end” button doesn’t take me to the end of a textbox line… or how to switch by keyboard from ChatZilla to another window in the parent application (SeaMonkey, Firefox)…
UPDATE: Wow, I really asked some dumb newbie questions in the previous paragraph, didn’t I? I got so many responses just on that… 🙂