Using the Mozilla symbol server

  • Revision slug: Using_the_Mozilla_symbol_server
  • Revision title: Using the Mozilla symbol server
  • Revision id: 21657
  • Created:
  • Creator: Jmdesp
  • Is current revision? No
  • Comment no wording changes

Revision Content

The Mozilla project runs a symbol server for trunk Firefox nightly and release builds on Windows. Symbols are available for at least 30 previous days worth of nightly builds, and Firefox releases from 2.0.0.4. This allows debugging of those builds without forcing all users to download large debugging files. The server functions like Microsoft's symbol server so the documentation there can be useful.

The official symbol server URL is http://symbols.mozilla.org/firefox. You cannot visit this URL directly: you must add it to the symbol path of your debugging tool. In the examples below, a local cache directory is used to avoid repeatedly fetching the PDB from the server. Replace C:\Users\bsmedberg\symbols with an appropriate cache directory on your machine.

Using the symbol server in Microsoft Visual C++ 2005+

Choose Tools - Enter source server url and local cache path

Using the symbol server in Windbg

The Windbg symbol path is configured with a string value delimited with asterisk characters. To use only the Mozilla symbol server, add the following entry to your symbol path (note: replace f:\localsymbols\ with a writable directory on your computer):

 SRV*f:\localsymbols\*http://symbols.mozilla.org/firefox

Set this string as _NT_SYMBOL_PATH in the environment, using the Windbg menus, or by typing the .sympath command. If you would like to get symbols from Microsoft's symbol server as well, you should list that first (note: replace f:\localsymbols\ with a writable directory on your computer):

 SRV*f:\localsymbols\*http://msdl.microsoft.com/download/symbols;SRV*f:\localsymbols\*http://symbols.mozilla.org/firefox

Image:symbol-server-windbg-menu.jpg Image:symbol-server-windbg-dialog.jpg

Downloading symbols using symchk.exe

You can also download the symbols using symchk.exe, part of Microsoft's Debugging Tools for Windows. The command should look like this (again, replace C:\Users\bsmedberg\symbols with an appropriate cache directory on your machine):

C:\Program Files\Mozilla Firefox>c:\progra~1\debugg~1\symchk.exe /r c:\progra~1\mozill~1\* /s SRV*C:\Users\bsmedberg\symbols\*http://symbols.mozilla.org/firefox

Note the \* after the Mozilla directory. The output of this command should be similar to:

SYMCHK: fullsoft.dll         FAILED  - Image is split correctly, but fullsoft.dbg is missing
SYMCHK: qfaservices.dll      FAILED  - qfaservices.pdb mismatched or not found
SYMCHK: talkback.exe         FAILED  - Built without debugging information.
SYMCHK: helper.exe           FAILED  - Built without debugging information.

SYMCHK: FAILED files = 4
SYMCHK: PASSED + IGNORED files = 179

The source server

In addition to symbols, Mozilla also has a source server, letting you do source-level debugging and inspection on demand.

Revision Source

<p>The Mozilla project runs a symbol server for trunk Firefox nightly and release builds on Windows. Symbols are available for at least 30 previous days worth of nightly builds, and Firefox releases from 2.0.0.4. This allows debugging of those builds without forcing all users to download large debugging files. The server functions like <a class="external" href="http://support.microsoft.com/kb/311503">Microsoft's symbol server</a> so the documentation there can be useful.</p>
<p>The official symbol server URL is <a class=" external" href="http://symbols.mozilla.org/firefox" rel="freelink">http://symbols.mozilla.org/firefox</a>. You cannot visit this URL directly: you must add it to the symbol path of your debugging tool. In the examples below, a local cache directory is used to avoid repeatedly fetching the PDB from the server. Replace <code>C:\Users\bsmedberg\symbols</code> with an appropriate cache directory on your machine.</p>
<h3 name="Using_the_symbol_server_in_Microsoft_Visual_C.2B.2B_2005.2B">Using the symbol server in Microsoft Visual C++ 2005+</h3>
<p><img alt="Choose Tools -" class="internal" src="/@api/deki/files/875/=Symbol-server-vc8express-menu.jpg"> <img alt="Enter source server url and local cache path" class="internal" src="/@api/deki/files/2860/=2005_options.gif"></p>
<h3 name="Using_the_symbol_server_in_Windbg">Using the symbol server in Windbg</h3>
<p>The Windbg symbol path is configured with a string value delimited with asterisk characters. To use only the Mozilla symbol server, add the following entry to your symbol path (<strong>note:</strong> replace <code>f:\localsymbols\</code> with a writable directory on your computer):</p>
<pre class="eval"> <span class="nowiki">SRV*f:\localsymbols\*http://symbols.mozilla.org/firefox</span>
</pre>
<p>Set this string as <code>_NT_SYMBOL_PATH</code> in the environment, using the Windbg menus, or by typing the <code>.sympath</code> command. If you would like to get symbols from Microsoft's symbol server as well, you should list that first (<strong>note:</strong> replace <code>f:\localsymbols\</code> with a writable directory on your computer):</p>
<pre class="eval"> <span class="nowiki">SRV*f:\localsymbols\*http://msdl.microsoft.com/download/symbols;SRV*f:\localsymbols\*http://symbols.mozilla.org/firefox</span>
</pre>
<p><img alt="Image:symbol-server-windbg-menu.jpg" class="internal" src="/@api/deki/files/877/=Symbol-server-windbg-menu.jpg"> <img alt="Image:symbol-server-windbg-dialog.jpg" class="internal" src="/@api/deki/files/876/=Symbol-server-windbg-dialog.jpg"></p>
<h3 name="Downloading_symbols_using_symchk.exe">Downloading symbols using symchk.exe</h3>
<p>You can also download the symbols using symchk.exe, part of Microsoft's Debugging Tools for Windows. The command should look like this (again, replace <code>C:\Users\bsmedberg\symbols</code> with an appropriate cache directory on your machine):</p>
<pre>C:\Program Files\Mozilla Firefox&gt;c:\progra~1\debugg~1\symchk.exe /r c:\progra~1\mozill~1\* /s SRV*C:\Users\bsmedberg\symbols\*http://symbols.mozilla.org/firefox
</pre>
<p>Note the <code>\*</code> after the Mozilla directory. The output of this command should be similar to:</p>
<pre>SYMCHK: fullsoft.dll         FAILED  - Image is split correctly, but fullsoft.dbg is missing
SYMCHK: qfaservices.dll      FAILED  - qfaservices.pdb mismatched or not found
SYMCHK: talkback.exe         FAILED  - Built without debugging information.
SYMCHK: helper.exe           FAILED  - Built without debugging information.

SYMCHK: FAILED files = 4
SYMCHK: PASSED + IGNORED files = 179
</pre>
<h3 name="The_source_server">The source server</h3>
<p>In addition to symbols, Mozilla also has a <a href="/en/Using_the_Mozilla_source_server" title="en/Using_the_Mozilla_source_server">source server</a>, letting you do source-level debugging and inspection on demand.</p>
Revert to this revision