0

I am attempting to perform a stackwalk with Xperf, using a batch file similar to the one listed at Getting the symbols with xperf.

I launch XperfView, confirm the symbol path is correct, and then load the symbols. However, when I attempt to open a summary table on a selected portion (5 seconds or so) of the "CPU Sampling by CPU" graph, the Performance Analyzer hangs (not responding) for a long time (hours).

I left it running last night, and when I came in this morning the Summary Table had finally loaded, containing results as expected... I had thought perhaps it was just performing an initial download to cache the symbols to C:\symbols, but a repeat test this morning has similar problems (hang for 1 hr 15 minutes at this point).

Community
  • 1
  • 1
sschilz
  • 81
  • 6

3 Answers3

3

WPT (xperf, xperfview, WPA) doesn't ship with dbghelp.dll and symsrv.dll. That means that, depending on what is in your path you may get:

  1. Fast symbol loading
  2. Symbol loading that takes up to 150x longer
  3. No symbol loading at all.

The solution is to copy a known-good version of these DLLs into the WPT install directory. For more details see this post: http://randomascii.wordpress.com/2012/10/04/xperf-symbol-loading-pitfalls/

1

In his post , Bruce Dawson speculates that there is an issue with dbghelp.dll and/or symsrv.dll in WPT as shipped in the current SDK. He suggesting replacing those with the ones either from Visual Studio 2010, or from Debugging Tools for Windows (i.e. WinDbg). Worked for me...

0

Have you set up symcache something like this

SRV*c:\dev\symbols*http://msdl.microsoft.com/download/symbols

The symcache would cache the symbols locally. I usually have my _NT_SYMBOL_PATH environment variable with the above information.

HTH

Naveen
  • 4,092
  • 29
  • 31
  • thanks for the suggestion! I reread the documentation on symbol support http://msdn.microsoft.com/en-us/library/ff191023(v=VS.85).aspx, and changed my _NT_SYMCACHE_PATH, which was C:\Symbols, to C:\SymCache, and created the SymCache folder, but still no luck.
    To reiterate, i have global environment variables as follows:
    _NT_SYMBOL_PATH=;SRV*c:\symbols*http://msdl.microsoft.com/download/symbols
    _NT_SYMCACHE_PATH=C:\SymCache
    – sschilz Jul 27 '10 at 23:54
  • You could try and diagnose with Procmon. – Naveen Jul 28 '10 at 00:39