TrackEvent: Add support for tracks
Track events are recorded on a timeline track, which can be attached to a
process (ProcessTrack) or a thread (ThreadTrack). Custom timelines can be
created using asynchronous tracks (see AsyncTrack), which can also optionally
be scoped to a thread or a process.
A track is represented by a uuid, which must be unique across the entire
recorded trace.
Async event example:
TRACE_EVENT_BEGIN("category", "AsyncEvent", perfetto::AsyncTrack(8086));
...
TRACE_EVENT_END("category", perfetto::AsyncTrack(8086));
Tracks can also be annotated with metadata:
perfetto::TrackEvent::SetAsyncTrackDescriptor(
track, [](perfetto::protos::gen::TrackDescriptor* desc) {
desc->set_name("MyAsyncTrack");
});
Bug: 132678367
Change-Id: I83c5300fe48ae2e9612942b2f73237fd67f948d3
diff --git a/Android.bp b/Android.bp
index 35cec9e..76fb7b1 100644
--- a/Android.bp
+++ b/Android.bp
@@ -6229,6 +6229,7 @@
"src/tracing/internal/track_event_internal.cc",
"src/tracing/platform.cc",
"src/tracing/tracing.cc",
+ "src/tracing/track.cc",
"src/tracing/track_event_category_registry.cc",
"src/tracing/virtual_destructors.cc",
],