Export trace proto content to SQL table
The feature is controlled by a new analyze_trace_proto_content Trace Processor Config field, and is disabled by default.
The new SQL table is experimental_proto_content (with the format being subject to arbitrary breaking changes for now), and it's effectively a mapping proto field path -> total size.
Once Perfetto UI supports arbitrary flamegraphs (b/227644078), we can change the SQL table format to make it flamegraph compatible.
Bug: b/238062136
Change-Id: I7e2b6921aba9e660f4c820de0047af7e00b5e9ee
diff --git a/Android.bp b/Android.bp
index 44a423b..56f9d47 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1917,6 +1917,7 @@
":perfetto_protos_perfetto_trace_translation_cpp_gen",
":perfetto_protos_perfetto_trace_translation_lite_gen",
":perfetto_protos_perfetto_trace_translation_zero_gen",
+ ":perfetto_protos_third_party_pprof_zero_gen",
":perfetto_protos_third_party_statsd_config_zero_gen",
":perfetto_src_android_internal_headers",
":perfetto_src_android_internal_lazy_library_loader",
@@ -1976,6 +1977,7 @@
":perfetto_src_trace_processor_util_descriptors",
":perfetto_src_trace_processor_util_gzip",
":perfetto_src_trace_processor_util_interned_message_view",
+ ":perfetto_src_trace_processor_util_proto_profiler",
":perfetto_src_trace_processor_util_proto_to_args_parser",
":perfetto_src_trace_processor_util_protozero_to_text",
":perfetto_src_trace_processor_util_stack_traces_util",
@@ -2144,11 +2146,13 @@
"perfetto_protos_perfetto_trace_translation_cpp_gen_headers",
"perfetto_protos_perfetto_trace_translation_lite_gen_headers",
"perfetto_protos_perfetto_trace_translation_zero_gen_headers",
+ "perfetto_protos_third_party_pprof_zero_gen_headers",
"perfetto_protos_third_party_statsd_config_zero_gen_headers",
"perfetto_src_base_version_gen_h",
"perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_statsd_atoms_descriptor",
+ "perfetto_src_trace_processor_importers_gen_cc_trace_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
"perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
"perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
@@ -9039,6 +9043,21 @@
],
}
+// GN: //src/trace_processor/importers:gen_cc_trace_descriptor
+genrule {
+ name: "perfetto_src_trace_processor_importers_gen_cc_trace_descriptor",
+ srcs: [
+ ":perfetto_protos_perfetto_trace_descriptor",
+ ],
+ cmd: "$(location tools/gen_cc_proto_descriptor.py) --gen_dir=$(genDir) --cpp_out=$(out) $(in)",
+ out: [
+ "src/trace_processor/importers/trace.descriptor.h",
+ ],
+ tool_files: [
+ "tools/gen_cc_proto_descriptor.py",
+ ],
+}
+
// GN: //src/trace_processor/importers:gen_cc_track_event_descriptor
genrule {
name: "perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
@@ -9391,6 +9410,7 @@
"src/trace_processor/importers/proto/android_probes_module.cc",
"src/trace_processor/importers/proto/android_probes_parser.cc",
"src/trace_processor/importers/proto/android_probes_tracker.cc",
+ "src/trace_processor/importers/proto/content_analyzer.cc",
"src/trace_processor/importers/proto/frame_timeline_event_parser.cc",
"src/trace_processor/importers/proto/gpu_event_parser.cc",
"src/trace_processor/importers/proto/graphics_event_module.cc",
@@ -11092,6 +11112,7 @@
"perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_statsd_atoms_descriptor",
+ "perfetto_src_trace_processor_importers_gen_cc_trace_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
"perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
"perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
@@ -11194,6 +11215,7 @@
":perfetto_protos_perfetto_trace_system_info_zero_gen",
":perfetto_protos_perfetto_trace_track_event_zero_gen",
":perfetto_protos_perfetto_trace_translation_zero_gen",
+ ":perfetto_protos_third_party_pprof_zero_gen",
":perfetto_src_base_base",
":perfetto_src_base_http_http",
":perfetto_src_base_unix_socket",
@@ -11230,6 +11252,7 @@
":perfetto_src_trace_processor_util_descriptors",
":perfetto_src_trace_processor_util_gzip",
":perfetto_src_trace_processor_util_interned_message_view",
+ ":perfetto_src_trace_processor_util_proto_profiler",
":perfetto_src_trace_processor_util_proto_to_args_parser",
":perfetto_src_trace_processor_util_protozero_to_text",
":perfetto_src_trace_processor_util_stack_traces_util",
@@ -11277,10 +11300,12 @@
"perfetto_protos_perfetto_trace_system_info_zero_gen_headers",
"perfetto_protos_perfetto_trace_track_event_zero_gen_headers",
"perfetto_protos_perfetto_trace_translation_zero_gen_headers",
+ "perfetto_protos_third_party_pprof_zero_gen_headers",
"perfetto_src_base_version_gen_h",
"perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_statsd_atoms_descriptor",
+ "perfetto_src_trace_processor_importers_gen_cc_trace_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
"perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
"perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",
@@ -11411,6 +11436,7 @@
":perfetto_src_trace_processor_util_descriptors",
":perfetto_src_trace_processor_util_gzip",
":perfetto_src_trace_processor_util_interned_message_view",
+ ":perfetto_src_trace_processor_util_proto_profiler",
":perfetto_src_trace_processor_util_proto_to_args_parser",
":perfetto_src_trace_processor_util_protozero_to_text",
":perfetto_src_trace_processor_util_stack_traces_util",
@@ -11467,6 +11493,7 @@
"perfetto_src_trace_processor_importers_gen_cc_chrome_track_event_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_config_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_statsd_atoms_descriptor",
+ "perfetto_src_trace_processor_importers_gen_cc_trace_descriptor",
"perfetto_src_trace_processor_importers_gen_cc_track_event_descriptor",
"perfetto_src_trace_processor_metrics_gen_cc_all_chrome_metrics_descriptor",
"perfetto_src_trace_processor_metrics_gen_cc_metrics_descriptor",