Just a blip…

Well, I’ve broken the ice that formed on my project over the holidays. There’s something that really intimidated me about going back to that code, that work flow. I don’t know how to explain it except that I felt afraid of my own code and lack of experience, felt like I wasn’t going to remember anything. So I hemmed and hawed but tonight I got back into it for a solid 3 hours and it feels good to remember what I was doing and why.

One small change that has made my life easier – I added srctool.exe to my path so I could call it from anywhere and this makes life good because when I want to test if my code is working I have to call make on the new symbolstore.py, then call make buildsymbols in my objdir, then go into the command window and call srctool.exe -r (a raw dump of the indexing info in a pdb) to see if it all worked. The path to a pdb file is something like C:ff_cleanmozillaobjdir_debugInfodistcrashreporter-symbols2007120422accessiblemarshal.pdbE82E8047412045539226FBBC0BE301974accessiblemarshal.pdb
and so being able to go to that directory and just call srctool -r accessiblemarshal.pdb is way easier. So I’m happy about that.

I’ve submitted my changes so far back to the bug and am now awaiting feedback. If I can successfully handle at least one of the points that led to a – review, then I am moving forward.

Now it’s time for some (light) reading about windows proprietary debug database formats.

0.4 Release

This release is primarily research. After talking with Ted (ted), I have some documentation about pdb file formats and pdb “exploding” tools to play with. Also I am currently trying to make my laptop more friendly to the kind of development this project requires. In the last term I started using a MacBook mid-semester and was able to work with a Windows XP VM for the testing of my patch. This was a cumbersome task because I did not have (nor could I afford) the RAM upgrade which would make VM usage much less laggy. Yesterday I finally picked up the 2 X 2GB chips that have made my VM usage much speedier.

The bug I filed (bug 408134) will be my guideline and the goal of this project is to pass super review and have my patch (and whatever tools are needed to make it work) checked into mozilla trunk. In accordance with the specs of this class, here is an outline for how I will accomplish a 1.0 release of my project:

* All the syntax and minor logic issues will be cleared up first (by the next release), this means that I will save a copy of the filename variable right before the call to GetVCSInfo, the large block of text for the pdbstream will be rewritten as a triple-quoted string, and I will also figure out what portions of the pdbstream are unnecessary and remove them to streamline the source indexing
* The source indexing will be pulled out into a method called SourceIndex and will be located in Dumper, called from symbolstore.py
* Changes need to be made so that the source indexing is called from the command line , since it cannot (and should not) be called upon in anything other than Win32 platforms
* All hard coding will be cleared out
* A replacement program for pdbstr.exe (which is provided by Microsoft) will be written so that it can be distributable

The resources I am researching on this release were provided to me by Ted and are:

* http://www.jorgon.freeserve.co.uk/Other/pdb.htm
* http://www.rawol.com/?topic=41
* http://www.rawol.com/download/zip/win_pdbx.zip

Starting up again with Source Server

And, we’re back for another semester of poking and prodding the Microsoft Source Server for use with the Mozilla debug symbols.

First order of business is to clean up as much of the symbolstore.py patch as possible and then the next step would be to start writing a pdbstr.exe replacement that can be distributed. Also, there’s the issue of Mozilla 2 and mercurial…

Looks like there was an involved process in choosing the next generation VCS for Mozilla 2 and so now I am wondering whether I should be continuing to work on my 0.3 or start working on something that will make source server work with mercurial.

This week I’ll be trying to pull together a solid list of what I hope to accomplish this term for my 1.0 release, i’ll post more soon.