Add suport for TAR files
Changes in this cl:
* Tar file reader
* Move all archive related importers to a common dir
* Tar files also need to sort trace files prior to sendind data to the
sorting stage (same as ZIP) so this cl extracts that logic to its own
class: CombinedTraceParser
* Simplified a bit the tracking of trace_files
* The TraceFileTable now tracks all files detected during parsing and
explicitly shows the order in which they were parsed.
* Add an efficient way of extracting multiple TraceBlobView spans from a
TraceBlobViewReader (avoiding the copy to a contiguous buffer).
Change-Id: I09f32c9304fcfec4853d0c3e8cb1d955df3a641a
diff --git a/Android.bp b/Android.bp
index 4db773b..d0729b4 100644
--- a/Android.bp
+++ b/Android.bp
@@ -2467,6 +2467,7 @@
":perfetto_src_trace_processor_export_json",
":perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
+ ":perfetto_src_trace_processor_importers_archive_archive",
":perfetto_src_trace_processor_importers_art_method_art_method",
":perfetto_src_trace_processor_importers_art_method_art_method_event",
":perfetto_src_trace_processor_importers_common_common",
@@ -2481,7 +2482,6 @@
":perfetto_src_trace_processor_importers_fuchsia_full",
":perfetto_src_trace_processor_importers_fuchsia_minimal",
":perfetto_src_trace_processor_importers_gecko_gecko_event",
- ":perfetto_src_trace_processor_importers_gzip_full",
":perfetto_src_trace_processor_importers_i2c_full",
":perfetto_src_trace_processor_importers_instruments_instruments",
":perfetto_src_trace_processor_importers_instruments_row",
@@ -2504,7 +2504,6 @@
":perfetto_src_trace_processor_importers_systrace_full",
":perfetto_src_trace_processor_importers_systrace_systrace_line",
":perfetto_src_trace_processor_importers_systrace_systrace_parser",
- ":perfetto_src_trace_processor_importers_zip_full",
":perfetto_src_trace_processor_lib",
":perfetto_src_trace_processor_metatrace",
":perfetto_src_trace_processor_metrics_metrics",
@@ -12399,6 +12398,17 @@
],
}
+// GN: //src/trace_processor/importers/archive:archive
+filegroup {
+ name: "perfetto_src_trace_processor_importers_archive_archive",
+ srcs: [
+ "src/trace_processor/importers/archive/archive_entry.cc",
+ "src/trace_processor/importers/archive/gzip_trace_parser.cc",
+ "src/trace_processor/importers/archive/tar_trace_reader.cc",
+ "src/trace_processor/importers/archive/zip_trace_reader.cc",
+ ],
+}
+
// GN: //src/trace_processor/importers/art_method:art_method
filegroup {
name: "perfetto_src_trace_processor_importers_art_method_art_method",
@@ -12435,7 +12445,6 @@
"src/trace_processor/importers/common/process_track_translation_table.cc",
"src/trace_processor/importers/common/process_tracker.cc",
"src/trace_processor/importers/common/sched_event_tracker.cc",
- "src/trace_processor/importers/common/scoped_active_trace_file.cc",
"src/trace_processor/importers/common/slice_tracker.cc",
"src/trace_processor/importers/common/slice_translation_table.cc",
"src/trace_processor/importers/common/stack_profile_tracker.cc",
@@ -12581,14 +12590,6 @@
name: "perfetto_src_trace_processor_importers_gecko_gecko_event",
}
-// GN: //src/trace_processor/importers/gzip:full
-filegroup {
- name: "perfetto_src_trace_processor_importers_gzip_full",
- srcs: [
- "src/trace_processor/importers/gzip/gzip_trace_parser.cc",
- ],
-}
-
// GN: //src/trace_processor/importers/i2c:full
filegroup {
name: "perfetto_src_trace_processor_importers_i2c_full",
@@ -12996,14 +12997,6 @@
],
}
-// GN: //src/trace_processor/importers/zip:full
-filegroup {
- name: "perfetto_src_trace_processor_importers_zip_full",
- srcs: [
- "src/trace_processor/importers/zip/zip_trace_reader.cc",
- ],
-}
-
// GN: //src/trace_processor:lib
filegroup {
name: "perfetto_src_trace_processor_lib",
@@ -15626,6 +15619,7 @@
":perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
":perfetto_src_trace_processor_importers_android_bugreport_unittests",
+ ":perfetto_src_trace_processor_importers_archive_archive",
":perfetto_src_trace_processor_importers_art_method_art_method",
":perfetto_src_trace_processor_importers_art_method_art_method_event",
":perfetto_src_trace_processor_importers_common_common",
@@ -15643,7 +15637,6 @@
":perfetto_src_trace_processor_importers_fuchsia_minimal",
":perfetto_src_trace_processor_importers_fuchsia_unittests",
":perfetto_src_trace_processor_importers_gecko_gecko_event",
- ":perfetto_src_trace_processor_importers_gzip_full",
":perfetto_src_trace_processor_importers_i2c_full",
":perfetto_src_trace_processor_importers_instruments_instruments",
":perfetto_src_trace_processor_importers_instruments_row",
@@ -15671,7 +15664,6 @@
":perfetto_src_trace_processor_importers_systrace_systrace_line",
":perfetto_src_trace_processor_importers_systrace_systrace_parser",
":perfetto_src_trace_processor_importers_systrace_unittests",
- ":perfetto_src_trace_processor_importers_zip_full",
":perfetto_src_trace_processor_lib",
":perfetto_src_trace_processor_metatrace",
":perfetto_src_trace_processor_metrics_metrics",
@@ -16701,6 +16693,7 @@
":perfetto_src_trace_processor_export_json",
":perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
+ ":perfetto_src_trace_processor_importers_archive_archive",
":perfetto_src_trace_processor_importers_art_method_art_method",
":perfetto_src_trace_processor_importers_art_method_art_method_event",
":perfetto_src_trace_processor_importers_common_common",
@@ -16715,7 +16708,6 @@
":perfetto_src_trace_processor_importers_fuchsia_full",
":perfetto_src_trace_processor_importers_fuchsia_minimal",
":perfetto_src_trace_processor_importers_gecko_gecko_event",
- ":perfetto_src_trace_processor_importers_gzip_full",
":perfetto_src_trace_processor_importers_i2c_full",
":perfetto_src_trace_processor_importers_instruments_instruments",
":perfetto_src_trace_processor_importers_instruments_row",
@@ -16738,7 +16730,6 @@
":perfetto_src_trace_processor_importers_systrace_full",
":perfetto_src_trace_processor_importers_systrace_systrace_line",
":perfetto_src_trace_processor_importers_systrace_systrace_parser",
- ":perfetto_src_trace_processor_importers_zip_full",
":perfetto_src_trace_processor_lib",
":perfetto_src_trace_processor_metatrace",
":perfetto_src_trace_processor_metrics_metrics",
@@ -17128,6 +17119,7 @@
":perfetto_src_trace_processor_export_json",
":perfetto_src_trace_processor_importers_android_bugreport_android_bugreport",
":perfetto_src_trace_processor_importers_android_bugreport_android_log_event",
+ ":perfetto_src_trace_processor_importers_archive_archive",
":perfetto_src_trace_processor_importers_art_method_art_method",
":perfetto_src_trace_processor_importers_art_method_art_method_event",
":perfetto_src_trace_processor_importers_common_common",
@@ -17142,7 +17134,6 @@
":perfetto_src_trace_processor_importers_fuchsia_full",
":perfetto_src_trace_processor_importers_fuchsia_minimal",
":perfetto_src_trace_processor_importers_gecko_gecko_event",
- ":perfetto_src_trace_processor_importers_gzip_full",
":perfetto_src_trace_processor_importers_i2c_full",
":perfetto_src_trace_processor_importers_instruments_instruments",
":perfetto_src_trace_processor_importers_instruments_row",
@@ -17165,7 +17156,6 @@
":perfetto_src_trace_processor_importers_systrace_full",
":perfetto_src_trace_processor_importers_systrace_systrace_line",
":perfetto_src_trace_processor_importers_systrace_systrace_parser",
- ":perfetto_src_trace_processor_importers_zip_full",
":perfetto_src_trace_processor_lib",
":perfetto_src_trace_processor_metatrace",
":perfetto_src_trace_processor_metrics_metrics",