Search code examples
debug-symbolsetw

Load Symbols Grayed Out Windows Performance Analyzer


I am following this tutorial:

https://dzone.com/articles/diagnosing-native-memory-leaks

When I get to the part about loading my symbols, I cannot because Trace->load symbols is grayed out. There are many answers about if symbols do not load after clicking (which would mean the symbol path is not set correctly), but I see none about the button being grayed out.

Also I have double checked my symbol path by running the application with WinDbg. I am getting no errors with that about my symbol path. I can also load symbols on other etl files. Is there a flag I need to enable for symbols to load on this etl?

Why would "Load Symbols" be grayed out in Windows Performance Analyzer?

I am on Windows 7 using WPT at this path C:\Program Files (x86)\Windows Kits\10\Windows Performance Toolkit

The command I use is the same as the tutorials:

xperf -on PROC_THREAD+LOADER
xperf -start heapsession -heap -pids 1234 -stackwalk HeapAlloc+HeapRealloc

Then

xperf -stop heapsession -d C:\temp\heap.etl
xperf -d C:\temp\kernel.etl
xperf -merge C:\temp\heap.etl C:\temp\kernel.etl C:\temp\combined.etl

Solution

  • Ok, this is a known issue. The TH1 Version of the Windows 10 SDK/WPT is broken on Windows 7. This version misses the KernelTraceControl/ImageID/DbgID_RSDS events.

    You should use the Windows 8.1 WPT/SDK or the today released SDK for Windows 10 Build 10563 which includes the fix for that:

    Corrected problem that prevented trace capture on pre-Windows 8 OS releases using xperf.exe and wpr.exe.