• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Sequence 1 defaults to track for "t1".
2packet {
3  trusted_packet_sequence_id: 1
4  timestamp: 0
5  incremental_state_cleared: true
6  track_descriptor {
7    uuid: 1
8    parent_uuid: 10
9    thread {
10      pid: 5
11      tid: 1
12      thread_name: "t1"
13    }
14  }
15  trace_packet_defaults {
16    track_event_defaults {
17      track_uuid: 1
18    }
19  }
20}
21# Sequence 2 defaults to track for "t2".
22packet {
23  trusted_packet_sequence_id: 2
24  timestamp: 0
25  incremental_state_cleared: true
26  track_descriptor {
27    uuid: 2
28    parent_uuid: 10
29    thread {
30      pid: 5
31      tid: 2
32      thread_name: "t2"
33    }
34  }
35  trace_packet_defaults {
36    track_event_defaults {
37      track_uuid: 2
38    }
39  }
40}
41# Both thread tracks are nested underneath this process track.
42packet {
43  trusted_packet_sequence_id: 1
44  timestamp: 0
45  track_descriptor {
46    uuid: 10
47    process {
48      pid: 5
49      process_name: "p1"
50    }
51  }
52}
53# And we have an async track underneath the process too.
54packet {
55  trusted_packet_sequence_id: 1
56  timestamp: 0
57  track_descriptor {
58    uuid: 11
59    parent_uuid: 10
60    name: "async"
61  }
62}
63packet {
64  trusted_packet_sequence_id: 1
65  timestamp: 100
66  track_descriptor {
67    uuid: 12
68    parent_uuid: 10
69    name: "async2"
70  }
71}
72packet {
73  trusted_packet_sequence_id: 2
74  timestamp: 200
75  track_descriptor {
76    uuid: 12
77    parent_uuid: 10
78    name: "async2"
79  }
80}
81
82# Should appear on default track "t1".
83packet {
84  trusted_packet_sequence_id: 1
85  timestamp: 1000
86  track_event {
87    categories: "cat"
88    name: "event1_on_t1"
89    type: 3
90  }
91}
92# Should appear on default track "t2".
93packet {
94  trusted_packet_sequence_id: 2
95  timestamp: 2000
96  track_event {
97    categories: "cat"
98    name: "event1_on_t2"
99    type: 3
100  }
101}
102# Should appear on overridden track "t2".
103packet {
104  trusted_packet_sequence_id: 1
105  timestamp: 3000
106  track_event {
107    track_uuid: 2
108    categories: "cat"
109    name: "event2_on_t2"
110    type: 3
111  }
112}
113# Should appear on process track.
114packet {
115  trusted_packet_sequence_id: 1
116  timestamp: 4000
117  track_event {
118    track_uuid: 10
119    categories: "cat"
120    name: "event1_on_p1"
121    type: 3
122  }
123}
124# Should appear on async track.
125packet {
126  trusted_packet_sequence_id: 1
127  timestamp: 5000
128  track_event {
129    track_uuid: 11
130    categories: "cat"
131    name: "event1_on_async"
132    type: 3
133  }
134}
135# Event for the "async2" track starting on one thread and ending on another.
136packet {
137  trusted_packet_sequence_id: 1
138  timestamp: 5100
139  track_event {
140    track_uuid: 12
141    categories: "cat"
142    name: "event1_on_async2"
143    type: 1
144  }
145}
146packet {
147  trusted_packet_sequence_id: 2
148  timestamp: 5200
149  track_event {
150    track_uuid: 12
151    categories: "cat"
152    name: "event1_on_async2"
153    type: 2
154  }
155}
156
157# If we later see another track descriptor for tid 1, but with a different uuid,
158# we should detect tid reuse and start a new thread.
159packet {
160  trusted_packet_sequence_id: 3
161  timestamp: 10000
162  incremental_state_cleared: true
163  track_descriptor {
164    uuid: 3
165    parent_uuid: 10
166    thread {
167      pid: 5
168      tid: 1
169      thread_name: "t3"
170    }
171  }
172}
173# Should appear on t3.
174packet {
175  trusted_packet_sequence_id: 3
176  timestamp: 11000
177  track_event {
178    track_uuid: 3
179    categories: "cat"
180    name: "event1_on_t3"
181    type: 3
182  }
183}
184
185# If we later see another track descriptor for pid 5, but with a different uuid,
186# we should detect pid reuse and start a new process.
187packet {
188  trusted_packet_sequence_id: 4
189  timestamp: 20000
190  incremental_state_cleared: true
191  track_descriptor {
192    uuid: 20
193    process {
194      pid: 5
195      process_name: "p2"
196    }
197  }
198}
199# Should appear on p2.
200packet {
201  trusted_packet_sequence_id: 4
202  timestamp: 21000
203  track_event {
204    track_uuid: 20
205    categories: "cat"
206    name: "event1_on_p2"
207    type: 3
208  }
209}
210# Another thread t4 in the new process.
211packet {
212  trusted_packet_sequence_id: 4
213  timestamp: 22000
214  incremental_state_cleared: true
215  track_descriptor {
216    uuid: 21
217    parent_uuid: 20
218    thread {
219      pid: 5
220      tid: 4
221      thread_name: "t4"
222    }
223  }
224}
225# Should appear on t4.
226packet {
227  trusted_packet_sequence_id: 4
228  timestamp: 22000
229  track_event {
230    track_uuid: 21
231    categories: "cat"
232    name: "event1_on_t4"
233    type: 3
234  }
235}
236
237# Another packet for a thread track in the old process, badly sorted.
238packet {
239  trusted_packet_sequence_id: 2
240  timestamp: 6000
241  track_event {
242    track_uuid: 1
243    categories: "cat"
244    name: "event3_on_t1"
245    type: 3
246  }
247}
248
249# Override the track to the default descriptor track for an event with a
250# TrackEvent type. Should appear on the default descriptor track instead of
251# "t1".
252packet {
253  trusted_packet_sequence_id: 1
254  timestamp: 30000
255  track_event {
256    track_uuid: 0
257    categories: "cat"
258    name: "event1_on_t1"
259    type: 3
260  }
261}
262
263# But a legacy event without TrackEvent type falls back to legacy tracks (based
264# on ThreadDescriptor / async IDs / legacy instant scopes). This instant event
265# should appear on the process track "p2".
266packet {
267  trusted_packet_sequence_id: 1
268  timestamp: 31000
269  track_event {
270    track_uuid: 0
271    categories: "cat"
272    name: "event2_on_p2"
273    legacy_event {
274      phase: 73               # 'I'
275      instant_event_scope: 2  # Process scope
276    }
277  }
278}
279
280# And pid/tid overrides take effect even for TrackEvent type events.
281packet {
282  trusted_packet_sequence_id: 1
283  timestamp: 32000
284  track_event {
285    track_uuid: 0
286    categories: "cat"
287    name: "event2_on_t4"
288    type: 3
289    legacy_event {
290      pid_override: 5
291      tid_override: 4
292    }
293  }
294}
295