The Symbol Servers tab allows you to specify Symbol Servers to retrieve symbols used in your application.
You do not need to specify symbol servers if you do not wish to, and Thread Validator will work correctly without them.
Read on, or click a setting in the picture below to find out more.
Symbol servers are entirely optional, but are useful for obtaining symbols from a centralized company resource or for obtaining operating symbols from Microsoft.
The default symbol server is the Microsoft symbol server used for acquiring symbols about Microsoft's operating system DLLs. You may also wish to add some symbol servers for any software builds in your organisation.
A symbol server is defined by at least the following:
•the symbol server dll to be used to handle the symbol server interaction
•a directory location where symbol definitions are saved
•the server location - a url
Each symbol server can be enabled or disabled allowing you to keep multiple symbol server configurations available without constantly editing their definitions.
You can define up to four symbol servers and more than one can be enabled at a time.
Any symbol server entry shown in red indicates there is a problem with parts of the definition of that symbol server.
In the image shown above the symbol server at http://127.0.0.42:8000 cannot be reached. It is either offline or does not exist.
•Add... displays the symbol server dialog described below
•Remove remove selected symbol server(s) in the list
•Remove All remove all symbol servers
•Enable All enables all symbol servers in the list
•Disable All disables all symbol servers
You can also enable or disable an item in the list via the yellow check box at the left of each row.
To edit the details for a symbol server, just double click the entry in the list to show the symbol server dialog again.
The dialog initially appears pre-populated with some default values and allows you to set up or edit the definition of a symbol server. Some of the default values can be changed.
•Enable Symbol Server enable or disable this server
The following three entries must be set to enable the OK button and define the symbol server.
OK button not enabled? The OK button will only be enabled when the following entries have a valid value:
- Symbol Server DLL names a dll present in the Thread Validator install directory.
- Symbol Store Directory has been specified and exists.
- Symbol Server URL has been specified (this value will not be checked for correctness).
•Symbol Server select a predefined public symbol server or enter the URL of the symbol server you wish to use - the Microsoft server is initially set as the default
•Symbol Store Directory enter or Browse to set the directory that will contain local copies of the downloaded symbols
•Create Dir creates a directory if you entered a directory name that does not exist yet
The Symbol Server DLL is set based on the Symbol Lookup settings you have chosen.
You can optionally associate a directory to scan when you are prefetching symbols (below)
•Prefetch Directory specify the directory to scan for symbols
Environment variables related to symbols
If you wish, you can set some environment variables to supply symbol paths.
•Configure Symbol Handling Environment Variables opens the dialog below
Check the desired options - if any.
To avoid delays when using symbol servers, you can trigger the retrieval of symbols (by running SymChk.exe) to collect symbols for all executable files specified in the exe/dll which you associated with each symbol server.
•Prefetch Symbols... open the Prefetch Symbols dialog below to continue
The pre-fetching of symbols requires the installation of Microsoft's Debugging Tools.
You may already have Debugging Tools if you've previously installed the Windows Driver Kit (DDK or WDK) or the Windows SDK.
•Install Debugging Tools for Windows opens a web page (as above) to download and install the x86 or x64 Debugging Tools for Windows
After installing the Debugging Tools, you must specify the location of SymChk.exe from the installed area.
•SymChk.exe enter or Browse to SymChk.exe location
A typical path might be C:\WinDDK\7600.16385.1\Debuggers\symchk.exe
Note that prefetching symbols may consume a large amount of disk space and download bandwidth.
You should ensure that you have at least 2 or 3Gb of disk free space, because of the total size of the download packages.
•Prefetch Symbols... runs SymChk.exe to get all the symbols
The symbols for each symbol server are stored in the associated symbol store directory.
If no symbol servers are specified in the symbol server settings above, you'll see a warning dialog and no symbols will be fetched.
The section on Pre-fetching symbols above is a convenient alternative to manually using the SymChk,exe utility.
To avoid delays when using symbol servers, you can pre-fetch symbols using the SymChk.exe command line tool that is part of Microsoft's Debugging Tools.
You may want to add the folder of the Debugging Tools for Windows package to the PATH environment variable on your system so that you can access this tool easily from any command prompt.
Example:
To use SymChk.exe to download symbol files for all of the components in the c:\windows\System32 folder, you might use the command:
symchk.exe /r c:\windows\system32 /s SRV*c:\symbols\*http://msdl.microsoft.com/download/symbols
where
/r c:\windows\system32 finds all symbols for files in that folder and any sub-folders
/s SRV*c:\symbols*http://msdl.microsoft.com/download/symbols specifies the symbol path to use for symbol resolution.
In this case, c:\symbols is the local folder where the symbols will be copied from the symbol server.
Other options include the ability to specify the name or the process ID (PID) of an executable file that is running.
Reset All - Resets all global settings, not just those on the current page.
Reset - Resets the settings on the current page.