Skip to content

Commit

Permalink
Add display of raw window focus events
Browse files Browse the repository at this point in the history
The Window in Focus graph in WPA is very useful for finding key events
in a trace, but in WPA 10 it shows up quite unreliably - rarely, in
fact. So, this change adds a new View Preset to the Generic Events
table and shows the focus events by default. They aren't graphed as
nicely but the raw payload can be interpreted - open the table if the
graph information isn't sufficient.
  • Loading branch information
randomascii committed Oct 13, 2015
1 parent a77ea21 commit 318a1eb
Showing 1 changed file with 85 additions and 1 deletion.
86 changes: 85 additions & 1 deletion bin/startup10.wpaProfile
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,49 @@
</Columns>
</Preset>
</Graph>
<Graph Guid="04f69f98-176e-4d1c-b44e-97f734996ab8" LayoutStyle="GraphAndLegend" Color="#FF005DE0" GraphHeight="16" IsShown="true" HelpText="{}{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch Shows every event in the trace, including the associated payload fields.}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\f2 \li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\f2 {\ltrch New capability - graph payload fields!}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\f2 \li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\f2 {\ltrch 1. Filter down to the event with the payload field you want to graph.}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\f2 {\ltrch 2. Drag the column corresponding to the payload field you want to graph to the right of the blue bar.}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\f2 {\ltrch 3. If the automatic graphing isn't representing your data correctly, go to View Editor and:}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\f2 {\ltrch a. Adjust the aggregation mode for your column, or}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\f2 {\ltrch b. Go to Advanced &gt; Graph Configuration and change your graphing aggregation mode.}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;}&#xD;&#xA;}">
<Preset Name="Randomascii Window Focus Events" BarGraphIntervalCount="50" GraphColumnCount="33" KeyColumnCount="6" LeftFrozenColumnCount="7" RightFrozenColumnCount="31" InitialFilterQuery="[Task Name]:=&quot;FocusChange&quot; OR [Task Name]:=&quot;FocusedProcessChange&quot;" InitialFilterShouldKeep="true" HelpText="{}{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch Groups all the events by provider, task, and opcode.}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;}&#xD;&#xA;}">
<MetadataEntries>
<MetadataEntry Guid="edf01e5d-3644-4dbc-ab9d-f8954e6db6ea" Name="ThreadId" ColumnMetadata="EndThreadId" />
<MetadataEntry Guid="bbfc990a-b6c9-4dcd-858b-f040ab4a1efe" Name="Time" ColumnMetadata="StartTime" />
<MetadataEntry Guid="bbfc990a-b6c9-4dcd-858b-f040ab4a1efe" Name="Time" ColumnMetadata="EndTime" />
</MetadataEntries>
<HighlightEntries />
<Columns>
<Column Guid="8b4c40f8-0d99-437d-86ab-56ec200137dc" Name="Provider Name" SortPriority="19" Width="200" IsVisible="true" />
<Column Guid="2a23f9b1-65d6-46d2-87b2-72f3606b7f75" Name="Provider Id" SortPriority="24" Width="100" />
<Column Guid="5b51716b-b88f-443a-a396-c6316296d5f8" Name="Opcode Name" SortPriority="21" Width="80" />
<Column Guid="c72e1c5a-f6db-4c84-8c0b-85989e514075" Name="Id" SortPriority="22" Width="80" />
<Column Guid="d446a182-5203-4a29-aca1-4ab9bea0d1b5" Name="Version" SortPriority="1" Width="80" />
<Column Guid="7ee6a5ff-1faf-428a-a7c2-7d2cb2b5cf26" Name="Process" SortPriority="29" Width="150" />
<Column Guid="cb796d44-2927-5ac1-d231-4b71904c18f5" Name="Thread Name" SortPriority="2" Width="80" />
<Column Guid="82ddfdff-ee93-5f35-08ac-4705069618dc" Name="Thread Activity Tag" SortPriority="3" Width="80" />
<Column Guid="2818954f-2d30-5569-4510-dade0a5a605c" Name="Annotation" SortPriority="4" Width="80" />
<Column Guid="90fe0b49-e3bb-440f-b829-5813c42108a1" Name="Event Name" SortPriority="23" Width="100" />
<Column Guid="72892fbe-0f55-426a-9aa1-26b6baf09ffb" Name="Event Type" SortPriority="25" Width="100" />
<Column Guid="0734f1a4-fbd9-4ff6-aec0-cf43875c8253" Name="Message" SortPriority="26" Width="100" />
<Column Guid="3be8610c-babb-4154-9970-1b2210928024" Name="Cpu" SortPriority="27" Width="30" />
<Column Guid="edf01e5d-3644-4dbc-ab9d-f8954e6db6ea" Name="ThreadId" SortPriority="28" Width="50" />
<Column Guid="511777f7-30ef-4e86-bd0b-0facaf23a0d3" Name="Task Name" SortPriority="20" Width="143" IsVisible="true" />
<Column Guid="0c5cf8cd-9b9e-5798-1a5d-09d429f7fa3c" Name="Field 1" SortPriority="5" Width="127" IsVisible="true" />
<Column Guid="71badd11-26e5-56bc-44ec-12f4cc6a8f3e" Name="Field 2" SortPriority="6" Width="134" IsVisible="true" />
<Column Guid="411dba2d-5d6e-5272-8287-636d0841768c" Name="Field 3" SortPriority="7" Width="141" IsVisible="true" />
<Column Guid="048f5050-1f17-59b3-fa22-4b0781ee630b" Name="Field 4" SortPriority="8" Width="80" IsVisible="true" />
<Column Guid="94e48f22-d499-5227-bb04-be011b4159b0" Name="Field 5" SortPriority="9" Width="80" IsVisible="true" />
<Column Guid="c1054028-424a-59ba-e760-6d30abbd69c5" Name="Field 6" SortPriority="10" Width="80" IsVisible="true" />
<Column Guid="5cbc4b58-2de1-5449-55b2-4651d4edf90a" Name="Field 7" SortPriority="11" Width="80" />
<Column Guid="fc01e6c9-a43b-51a1-fd2e-112ba48aff65" Name="Field 8" SortPriority="12" Width="80" />
<Column Guid="e3dcf300-46e2-5c43-ef4b-2c3db489ec25" Name="Field 9" SortPriority="13" Width="80" />
<Column Guid="87c21ddb-4b29-58e3-5ddc-f114c5ca209a" Name="Field 10" SortPriority="14" Width="80" />
<Column Guid="65f8fe42-ad02-5016-3521-f93329c76227" Name="Field 11" SortPriority="15" Width="80" />
<Column Guid="03d48fd3-0fe4-57f5-a477-49beb0d70a1f" Name="Field 12" SortPriority="16" Width="80" />
<Column Guid="998f8e2d-0f5a-5a54-0133-226e2de62c0b" Name="Field 13" SortPriority="17" Width="80" />
<Column Guid="bb772c34-9600-5bf7-3f54-e6080f8a0611" Name="Field 14" SortPriority="18" Width="80" />
<Column Guid="342f7677-17b2-4c7e-b9ec-e89612c49792" Name="Count" AggregationMode="Sum" SortOrder="Descending" Width="80" IsVisible="true" />
<Column Guid="bbfc990a-b6c9-4dcd-858b-f040ab4a1efe" Name="Time" SortPriority="30" Width="80" IsVisible="true" />
</Columns>
</Preset>
</Graph>
<Graph Guid="3c18eb9c-2211-4988-bf94-bb029e4ce96e" LayoutStyle="GraphAndLegend" Color="#FF005DE0" GraphHeight="50" IsShown="true" HelpText="{}{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs24\f2\cf0 \cf0\ql{\fs18\f2 {\ltrch Shows a Gantt chart that shows when a process was in process. You can use this to see when Alt+Tab occurred and when splash screens are up, by looking to see when explorer was in focus. You can also use this to zoom in to only when the relevant app is in focus and active.}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\fs18\f2 {\ltrch }\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;{\fs18\f2 {\ltrch In Win32, each thread of execution can set or get the focus only to windows created by the current thread. This prevents applications from interfering with each other. One application's delay in responding cannot cause other applications to suspend their respond to user actions, which often happens in Windows 3.x.}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;}&#xD;&#xA;}">
<Preset Name="Focus by Process, Thread" BarGraphIntervalCount="50" GraphColumnCount="11" KeyColumnCount="3" LeftFrozenColumnCount="2" RightFrozenColumnCount="10" InitialFilterShouldKeep="true">
<MetadataEntries>
Expand All @@ -66,7 +109,7 @@
</Columns>
</Preset>
</Graph>
<Graph Guid="b859d131-dfb5-4605-be19-810b298b6975" LayoutStyle="GraphAndLegend" Color="#FFFFA500" GraphHeight="71" IsShown="true">
<Graph Guid="b859d131-dfb5-4605-be19-810b298b6975" LayoutStyle="GraphAndLegend" Color="#FFFFA500" GraphHeight="49" IsShown="true">
<Preset Name="GPU by Process" GraphChartType="StackedLine" BarGraphIntervalCount="50" GraphColumnCount="18" KeyColumnCount="5" RightFrozenColumnCount="17" InitialFilterShouldKeep="true" GraphFilterColumnName="GPU Time" GraphFilterColumnGuid="267ef705-7c6d-11e2-be78-b4b52fe06835">
<MetadataEntries>
<MetadataEntry Guid="267ef708-7c6d-11e2-be78-b4b52fe06835" Name="Start Execution" ColumnMetadata="StartTime" />
Expand Down Expand Up @@ -995,6 +1038,47 @@
<Column Guid="c1054028-424a-59ba-e760-6d30abbd69c5" Name="Field 6" AggregationMode="Average" SortPriority="10" Width="80" IsVisible="true" />
</Columns>
</Preset>
<Preset Name="Randomascii Window Focus Events" BarGraphIntervalCount="50" GraphColumnCount="33" KeyColumnCount="6" LeftFrozenColumnCount="7" RightFrozenColumnCount="31" InitialFilterQuery="[Task Name]:=&quot;FocusChange&quot; OR [Task Name]:=&quot;FocusedProcessChange&quot;" InitialFilterShouldKeep="true" HelpText="{}{\rtf1\ansi\ansicpg1252\uc1\htmautsp\deff2{\fonttbl{\f0\fcharset0 Times New Roman;}{\f2\fcharset0 Segoe UI;}}{\colortbl\red0\green0\blue0;\red255\green255\blue255;}\loch\hich\dbch\pard\plain\ltrpar\itap0{\lang1033\fs18\f2\cf0 \cf0\ql{\f2 {\ltrch Groups all the events by provider, task, and opcode.}\li0\ri0\sa0\sb0\fi0\ql\par}&#xD;&#xA;}&#xD;&#xA;}">
<MetadataEntries>
<MetadataEntry Guid="edf01e5d-3644-4dbc-ab9d-f8954e6db6ea" Name="ThreadId" ColumnMetadata="EndThreadId" />
<MetadataEntry Guid="bbfc990a-b6c9-4dcd-858b-f040ab4a1efe" Name="Time" ColumnMetadata="StartTime" />
<MetadataEntry Guid="bbfc990a-b6c9-4dcd-858b-f040ab4a1efe" Name="Time" ColumnMetadata="EndTime" />
</MetadataEntries>
<HighlightEntries />
<Columns>
<Column Guid="8b4c40f8-0d99-437d-86ab-56ec200137dc" Name="Provider Name" SortPriority="19" Width="200" IsVisible="true" />
<Column Guid="2a23f9b1-65d6-46d2-87b2-72f3606b7f75" Name="Provider Id" SortPriority="24" Width="100" />
<Column Guid="5b51716b-b88f-443a-a396-c6316296d5f8" Name="Opcode Name" SortPriority="21" Width="80" />
<Column Guid="c72e1c5a-f6db-4c84-8c0b-85989e514075" Name="Id" SortPriority="22" Width="80" />
<Column Guid="d446a182-5203-4a29-aca1-4ab9bea0d1b5" Name="Version" SortPriority="1" Width="80" />
<Column Guid="7ee6a5ff-1faf-428a-a7c2-7d2cb2b5cf26" Name="Process" SortPriority="29" Width="150" />
<Column Guid="cb796d44-2927-5ac1-d231-4b71904c18f5" Name="Thread Name" SortPriority="2" Width="80" />
<Column Guid="82ddfdff-ee93-5f35-08ac-4705069618dc" Name="Thread Activity Tag" SortPriority="3" Width="80" />
<Column Guid="2818954f-2d30-5569-4510-dade0a5a605c" Name="Annotation" SortPriority="4" Width="80" />
<Column Guid="90fe0b49-e3bb-440f-b829-5813c42108a1" Name="Event Name" SortPriority="23" Width="100" />
<Column Guid="72892fbe-0f55-426a-9aa1-26b6baf09ffb" Name="Event Type" SortPriority="25" Width="100" />
<Column Guid="0734f1a4-fbd9-4ff6-aec0-cf43875c8253" Name="Message" SortPriority="26" Width="100" />
<Column Guid="3be8610c-babb-4154-9970-1b2210928024" Name="Cpu" SortPriority="27" Width="30" />
<Column Guid="edf01e5d-3644-4dbc-ab9d-f8954e6db6ea" Name="ThreadId" SortPriority="28" Width="50" />
<Column Guid="511777f7-30ef-4e86-bd0b-0facaf23a0d3" Name="Task Name" SortPriority="20" Width="143" IsVisible="true" />
<Column Guid="0c5cf8cd-9b9e-5798-1a5d-09d429f7fa3c" Name="Field 1" SortPriority="5" Width="127" IsVisible="true" />
<Column Guid="71badd11-26e5-56bc-44ec-12f4cc6a8f3e" Name="Field 2" SortPriority="6" Width="134" IsVisible="true" />
<Column Guid="411dba2d-5d6e-5272-8287-636d0841768c" Name="Field 3" SortPriority="7" Width="141" IsVisible="true" />
<Column Guid="048f5050-1f17-59b3-fa22-4b0781ee630b" Name="Field 4" SortPriority="8" Width="80" IsVisible="true" />
<Column Guid="94e48f22-d499-5227-bb04-be011b4159b0" Name="Field 5" SortPriority="9" Width="80" IsVisible="true" />
<Column Guid="c1054028-424a-59ba-e760-6d30abbd69c5" Name="Field 6" SortPriority="10" Width="80" IsVisible="true" />
<Column Guid="5cbc4b58-2de1-5449-55b2-4651d4edf90a" Name="Field 7" SortPriority="11" Width="80" />
<Column Guid="fc01e6c9-a43b-51a1-fd2e-112ba48aff65" Name="Field 8" SortPriority="12" Width="80" />
<Column Guid="e3dcf300-46e2-5c43-ef4b-2c3db489ec25" Name="Field 9" SortPriority="13" Width="80" />
<Column Guid="87c21ddb-4b29-58e3-5ddc-f114c5ca209a" Name="Field 10" SortPriority="14" Width="80" />
<Column Guid="65f8fe42-ad02-5016-3521-f93329c76227" Name="Field 11" SortPriority="15" Width="80" />
<Column Guid="03d48fd3-0fe4-57f5-a477-49beb0d70a1f" Name="Field 12" SortPriority="16" Width="80" />
<Column Guid="998f8e2d-0f5a-5a54-0133-226e2de62c0b" Name="Field 13" SortPriority="17" Width="80" />
<Column Guid="bb772c34-9600-5bf7-3f54-e6080f8a0611" Name="Field 14" SortPriority="18" Width="80" />
<Column Guid="342f7677-17b2-4c7e-b9ec-e89612c49792" Name="Count" AggregationMode="Sum" SortOrder="Descending" Width="80" IsVisible="true" />
<Column Guid="bbfc990a-b6c9-4dcd-858b-f040ab4a1efe" Name="Time" SortPriority="30" Width="80" IsVisible="true" />
</Columns>
</Preset>
</ModifiedPresets>
<PersistedPresets>
<Preset Name="Randomascii Chrome Events" BarGraphIntervalCount="50" GraphColumnCount="26" KeyColumnCount="8" LeftFrozenColumnCount="7" RightFrozenColumnCount="25" InitialFilterQuery="[Provider Name]:~&lt;&quot;Chrome&quot;" InitialFilterShouldKeep="true">
Expand Down

0 comments on commit 318a1eb

Please sign in to comment.