Please enable JavaScript to view this site.

Memory Validator Help

Navigation: The User Interface > Settings > Global Settings Dialog > Symbol Handling

Symbol Servers

Scroll Prev Top Next More

The Symbol Servers tab allows you to specify Symbol Servers to retrieve symbols used in your application.

 

note You do not need to specify symbol servers if you do not wish to, and Memory Validator will work correctly without them.

 

interactiveRead on, or click on a setting in the picture below to find out more.

 

symbol-servers-settings

 

 

Symbol servers

 

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.

 

Symbol Server Errors

 

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.

 

 

Managing symbol servers

 

Add... instructionStep displays the symbol server dialog described below
 

Remove instructionStep remove selected symbol server(s) in the list

Remove All instructionStep remove all symbol servers

 

Enable All instructionStep enables all symbol servers in the list

Disable All instructionStep 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.

 

 

Symbol server dialog

 

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.

 

symbol-server-dialog

 

 

Enable Symbol Server instructionStep enable or disable this server

 

The following three entries must be set to enable the OK button and define the symbol server.

 

doc-expand-icon 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 Memory 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 instructionStep 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 instructionStep enter or Browse to set the directory that will contain local copies of the downloaded symbols

 

Create Dir instructionStep 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 instructionStep 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 instructionStep opens the dialog below

 

Check the desired options - if any.

 

symbol-handling-environment-variables

 

 

 

 

Pre-fetching symbols

 

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... instructionStep open the Prefetch Symbols dialog below to continue

 

prefetch-symbols-dialog

 

 

Prerequisites for pre-fetching symbols

 

The pre-fetching of symbols requires the installation of Microsoft's Debugging ToolsexternalLink.

 

noteYou 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 instructionStep 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 instructionStep enter or Browse to SymChk.exe location

 

 A typical path might be C:\WinDDK\7600.16385.1\Debuggers\symchk.exe

 

 

Getting the symbols

 

note 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... instructionStep runs SymChk.exe to get all the symbols

 

The symbols for each symbol server are stored in the associated symbol store directory.

 

note If no symbol servers are specified in the symbol server settings above, you'll see a warning dialog and no symbols will be fetched.

 

 

Command line pre-fetching of symbols with the SymChk utility

 

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 ToolsexternalLink.

 

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 subfolders

 
/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.

 

seeAlsoTo obtain more information about the command-line options for SymChk.exe, type symchk /? at a command prompt.

 

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.  This includes removing any symbol servers added.

 

 

Reset - Resets the settings on the current page. This includes removing any symbol servers added.