XPcom – not right now.

Well, I greatly enjoyed Benjamin Smedberg’s talk – power outage and all – and much was learned about Xpcom. Not enough however, to enable me to complete the Xpcom lab that was assigned to us last week.

Last week I pounced on the lab, raring to go with my existing build of firefox and ran into a wall – something is just not making right. Some poking around, consulting with those who have done the lab generates no leads since the trouble I’m having is of course, unique, and so they do not know where I am going wrong.

Fine. I can handle this. I will do it all from scratch, checkout code, rebuild, start the lab and guess what? Still can’t do it. Currently I am stopped by this:

make[1]: *** No rule to make target `install.rdf', needed by `libs'.

I don’t understand Xpcom enough to really troubleshoot this so I think this lab is going in the “to-do later when you know more” pile for now.

Newsflash, I never created the install.rdf file – so now it’s working to the point where I can see it in my Add-ons manager. However! Ted’s Extension Developer add-on does not work with my build because it does not support secure updates…must be a new ff3 feature…so now I have to wait until tomorrow to ask luser if there’s a work around.

Source Server 0.2 release – HOWTO and Contribution Opportunity

Here are the goals for my 0.2 release

  • release build of ff with debugger-info enabled to create pdbs without being a full debug build
  • using lib xul – make an installer for people to download
  • take the symbols and index them and distribute the source
  • set up the symbol server but indexed so that someone can pull the source code
  • which involves running the cv2http.cmd on the indexed code

And the results:

How to set up the Source and Symbol Server

  1. add a path to my symbolServer http://avnerd.tv/symbols/2007110200 as per MDC docs in Tools->Debugging->Symbols

  2. check the option for turning on the source server in Tools->Debugging->General

  3. Download the installer from here Firefox Installer **(FYI you have to use my installer because it is the one that I indexed code and uploaded symbols for – if you do not use this installer you will not get the proper results)
  4. install the firefox you just downloaded (it will install as Minefield in Program FilesMinefield)
  5. make sure you run it with –no-remote and -profilemanager so you don’t mess up your normal Firefox experience
  6. once it’s running, go to Tools->attach to process… and attach VStudio to the firefox instance
  7. after it’s attached, you can go to Debug->break all and then poke around at the firefox functions code (You will get a warning about downloading code from an unknown source, click on “run” because you trust me)

This is what it might look like:

Contribution Opportunity

You need to be in the Windows platform and have a copy of Visual Studio to run the above instructions. If this applies to you, please take a minute to download the installer and follow the instructions as I’ve outlined them.

Please leave a comment answering the following questions:

  1. Did it work for you?
  2. Were the instructions clear?
  3. Any constructive feedback?

Contrib Opportunity! Help with resolving a path with spaces and a perl script

I have a perl script called cv2http.pl that is called upon by cv2http.cmd

Both are in c:Program FilesDebugging Tools for Windowssdksrcsrv directory, which is where I am making this command line call from.

I am trying to do this:

walk.cmd c:symbols*.pdb cv2http.cmd HTTP_ALIAS http://avnerd.tv/source

What this will do is swap out the cvs information and replace it with a path to my server where I have the source code.

When I run it I get this:

“Can’t open perl script “C:Program”: No such file or directory

for every .pdb that is found.

It looks like it is breaking on the space between Program Files in the path.

So – does anyone know how to either: make this script be forgiving of blank spaces in a path or change the directory this points to so that I can move it and try from there.

**** UPDATE *****
Turns out it was as easy as adding “” around the ~%d0cv2http.pl call in the cs2http.cmd file – thanks to all who helped on #seneca