If you use the standalone VTune Amplifier for Windows* (i.e., not integrated into Visual Studio*), you may wonder why the product does not automatically search the Microsoft* symbol server for debug information for Windows system files. This was a topic of much discussion among the VTune Amplifier team and we wanted to share with you some of the reasons:
Requesting symbols from the Microsoft symbol server:
- Requires an internet connection. Some users are collecting and viewing results on isolated lab systems and don’t have internet access.
- Adds overhead to finalization of the collection results. For each module for which debug information is not available on the local system, a request would go out to the symbol server. If symbols were available, additional time would be required to download the symbol file.
- Uses additional disk space. If symbols for system modules will not be used, this disk space is wasted.
- May be unwanted. Many users do not need to examine details of time spent in system calls and modules. Automatically downloading symbols for system files would be wasteful for many users.
Therefore, we document the technique for configuring the VTune Amplifier to search the Microsoft symbol server for symbols during finalization in the product help files (see Option 2 in the “Using Debug Information” topic). However, below is a concise example.
- Start by opening the Project Properties dialog and clicking on the Binary/Symbol Search tab:
- Next, click in the area labeled “Add new search location” and enter a string similar to ‘srv*C:\local_symbols_cache*http://msdl.microsoft.com/download/symbols’, where ‘C:\local_symbols_cache’ is defined by you but is a local directory that you specify for all Visual Studio and VTune Amplifier projects that need symbols for system files. If you specify different directories for different projects, the files will be downloaded multiple times, again, adding unwanted overhead.
Tip: if you have a Visual Studio* project that defines a cache directory for the symbol server, use the same directory in the standalone VTune Amplifier so that you don’t waste time and space downloading symbols that already exist in a cache directory. If you are using VTune Amplifier from within the Visual Studio environment, Visual Studio's project settings are automatically used. - If you are setting up the symbol server, you probably are interested in viewing information about system routines. Consequently, you may want to change the default “Call Stack Mode” to User/System functions. This is control is located at the bottom of the Bottom Up display:
Depending on your window size, it may appear with the label visible:
The outcome is that system functions will be displayed in the results with their attributed times. The default setting of “User functions + 1” will only display user functions plus those routines called by user functions, attributing all system time to the caller.
Feel free to let us know what you think of the current operation of the VTune Amplifier wrt Microsoft’s symbol server, either below in the comments, in a new topic on our forum, or via our free, secure technical support website Intel® Premier Support.