Closed Bug 395310 Opened 17 years ago Closed 14 years ago

Mozilla should have debug builds, symbol server, and easy way to sync source code to a release

Categories

(Firefox Build System :: General, enhancement)

enhancement
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: jdperlow, Unassigned)

Details

User-Agent:       Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1) Gecko/20061010 Firefox/2.0
Build Identifier: 

Maybe some of this infrastructure already exists, but I couldn't find any info on it. 

The scenario is somebody that is developing a javascript application sometimes needs to drop into the debugger to understand why Firefox is doing something a certain way. A typical DHTML engineer that has some C++ debugging skills probably doesn't have the time to build a full debug release of Mozilla (the build has gotten better but it still takes a while to figure out and a long time to build). An engineer might also be debugging problems that are different in different versions of the browser. Ironically, in some ways it can be easier for an application developer to debug Internet Explorer since Microsoft provides a public symbol server (SRV**http://msdl.microsoft.com/download/symbols). 

Mozilla can do a lot better by providing a public symbol server, debug build versions of all released builds, and an easy way to sync to the source code of a particular build (may already exist). In my ideal world, there would be a page "Debugging Firefox without building it yourself" that would provide links to all debug builds that can be installed, a symbol server with public symbols that works with ntsd/windbg/VS (and I am guessing this can be made to work with other platforms too but I don't know if the tools are that advanced), and a label or branch or whatever the CVS equivalent is to sync a client to the source code for that release.

This would have helped me and my fellow engineers numerous times with debugging problems we've hit in Mozilla. It probably would result in higher quality bugs being submitted and possibly bug fixes.


Reproducible: Always

Steps to Reproduce:
1.
2.
3.
We have a symbol server: http://developer.mozilla.org/en/docs/Using_the_Mozilla_symbol_server

As I understand redistribution limitations on debug libraries we can't make debug builds available.
That's really cool that there is a symbol server, but it really sucks that you can't make debug builds available.
need this for Thunderbird as well. CCing myself in case anything has changed with respect to legal rights of debug libraries!
Our nightly and release builds are debuggable using Visual Studio or WinDBG + our symbol server (as linked in comment 1). We even have a source server:
https://developer.mozilla.org/en/Using_the_Mozilla_source_server

and we have plenty of docs:
https://developer.mozilla.org/en/How_to_get_a_stacktrace_with_WinDbg

Roland: this all works in Thunderbird too! (except the symbol server URL ends with /thunderbird instead.)

I use this all the time to get stack traces or figure out what's going on in nightly builds, and it's awesome. I don't think there's any more we can do that would be any more useful to end users.

I don't know why you'd want an actual "debug build" anyway. The only differences there are extra assertion checks and some extra logging code. For a web developer, it's unlikely to matter. Anyone who can make sense of the extra debugging code can probably build their own browser without much effort.

However, if you're really persistent, we do upload some debug builds nowadays:
http://ftp.mozilla.org/pub/mozilla.org/firefox/tinderbox-builds/mozilla-central-win32-debug/

but as Dave notes, you need to already have Microsoft's debug CRT installed (it comes with Visual C++), and we can't redistribute that.
Status: UNCONFIRMED → RESOLVED
Closed: 14 years ago
Resolution: --- → WORKSFORME
Mozilla does not need to host the debug CRT libs - their PDBs are already available on Microsoft's debug servers. Having a http://msdl.microsoft.com/download/symbols in symbol search path (in addition to Mozilla's) is sufficient.
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in before you can comment on or make changes to this bug.