Enabling data capture on process launch guarantees that there will be no loss of allocation information or history. Take the following steps to enable data capture on process launch:
- If Windows Sidebar is running, open Windows Task Manager and end any sidebar.exe processes. 
- Open an elevated command prompt. It is recommended to identify a single directory from which WPA is run and change to that directory. 
- From the command prompt enter the following: - C:\etl> xperf -on Base -BufferSize 1024 -MinBuffers 10 -MaxBuffers 16- By default, WPA will automatically turn on the "NT Kernel Logger" which collects kernel events. The kernel group "Base" will trigger the collection of events from the following event providers: - Option - Usage - PROC_THREAD - Lists process and thread create/delete events - LOADER - Shows kernel and user mode load and unload events - DISK_IO - Tracks disk activity for the session - HARD_FAULTS - Lists hard page faults - PROFILE - Creates a CPU sample profile - MEMINFO - Captures memory list information 
- Next, enter the following on a single line: - C:\etl> xperf -start HeapSession -heap -PidNewProcess "C:\Program Files\Windows Sidebar\sidebar.exe" -BufferSize 1024 -MinBuffers 128 -MaxBuffers 128 -stackwalk HeapAlloc+HeapRealloc- The following table explains each of the commands, parameters and options employed. - Option, command or parameter - Usage - xperf - Runs the main xperf program with the specified parameters and options. - -start HeapSession - Initializes a tracing session or logger session. In this case the session is named "HeapSession". - -heap - Identifies HeapSession as a heap trace. - -PidNewProcess - Initializes a process. In this case the Windows Sidebar will be started. - -BufferSize - Sets the buffer size where the event data will be stored. 1024K is an optimum buffer size. By default WPA will use 64K. - -MinBuffers - Sets the minimum number of buffers for event data storage. MinBuffers should be equal to MaxBuffers in order to guarantee consistency between traces. - -MaxBuffers - MaxBuffers should be allocated conservatively because buffers are allocated from non-paged memory, a finite system resource. - -stackwalk - Initializes the stackwalk facility to collect allocation and de-allocation information and associate that information with specific threads. - HeapAlloc+HeapRealloc - Identifies specific heap events to be captured and presented by the stackwalk facility. 
- At this point the sidebar will open on the desktop. 
- In the command window, enter the following on a single line: - C:\etl> xperf -stop -stop HeapSession -d heapTrace.etl- The following table explains each of the commands, parameters and options: - Option, Command or Parameter - Usage - xperf - Runs the main xperf program with the specified parameters and options. - -stop HeapSession - Indicates a session will be ended. In this case, end the session "HeapSession". - -d heapTrace.etl - Merges traces produced in the session into the trace file "heapTrace.etl". - For more information on WPA start and stop options, use the command line query: - C:\etl> xperf -help start C:\etl> xperf -help stop