Skip to content

Commit ff73bc6

Browse files
authored
tp: add common_flags, query subcommand, and dispatcher (#5128)
## Summary - Shared infrastructure: common_flags.h/.cc (GlobalOptions, BuildConfig, SetupTraceProcessor, LoadTraceFile with symbolization/deobfuscation) - Query subcommand with -f, -c, -i, -W, -p flags - ClassicSubcommand: moves entire classic path into a Subcommand, uses shared infra - Thin dispatcher: finds subcommand or falls back to classic - Integration tests for query subcommand and classic backcompat Part 2/7 of the subcommand CLI implementation (RFC-0018). ## Stack 1. #5134 — SubcommandContext + GetLongOptions() interface 2. **#5128** ← this PR — common_flags + query + ClassicSubcommand + dispatcher 3. #5129 — repl + serve subcommands 4. #5130 — summarize + export subcommands 5. #5131 — metrics subcommand 6. #5132 — help system + file collision + classic edge case tests 7. #5133 — BUILD.gn consolidation
1 parent 637f1dc commit ff73bc6

File tree

13 files changed

+1055
-141
lines changed

13 files changed

+1055
-141
lines changed

Android.bp

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16811,6 +16811,8 @@ filegroup {
1681116811
filegroup {
1681216812
name: "perfetto_src_trace_processor_shell_subcommand",
1681316813
srcs: [
16814+
"src/trace_processor/shell/common_flags.cc",
16815+
"src/trace_processor/shell/query_subcommand.cc",
1681416816
"src/trace_processor/shell/subcommand.cc",
1681516817
],
1681616818
}
@@ -17154,6 +17156,7 @@ cc_library_static {
1715417156
":perfetto_src_trace_processor_shell_query",
1715517157
":perfetto_src_trace_processor_shell_shell_utils",
1715617158
":perfetto_src_trace_processor_shell_sql_packages",
17159+
":perfetto_src_trace_processor_shell_subcommand",
1715717160
":perfetto_src_trace_processor_sorter_sorter",
1715817161
":perfetto_src_trace_processor_sqlite_bindings_bindings",
1715917162
":perfetto_src_trace_processor_sqlite_sqlite",
@@ -19253,6 +19256,7 @@ cc_test {
1925319256
":perfetto_include_perfetto_ext_trace_processor_export_json",
1925419257
":perfetto_include_perfetto_ext_trace_processor_importers_memory_tracker_memory_tracker",
1925519258
":perfetto_include_perfetto_ext_trace_processor_rpc_query_result_serializer",
19259+
":perfetto_include_perfetto_ext_trace_processor_trace_processor_shell",
1925619260
":perfetto_include_perfetto_ext_traced_sys_stats_counters",
1925719261
":perfetto_include_perfetto_ext_traced_traced",
1925819262
":perfetto_include_perfetto_ext_tracing_core_core",
@@ -19598,6 +19602,10 @@ cc_test {
1959819602
":perfetto_src_trace_processor_perfetto_sql_tokenizer_unittests",
1959919603
":perfetto_src_trace_processor_rpc_rpc",
1960019604
":perfetto_src_trace_processor_rpc_unittests",
19605+
":perfetto_src_trace_processor_shell_metatrace",
19606+
":perfetto_src_trace_processor_shell_query",
19607+
":perfetto_src_trace_processor_shell_shell_utils",
19608+
":perfetto_src_trace_processor_shell_sql_packages",
1960119609
":perfetto_src_trace_processor_shell_subcommand",
1960219610
":perfetto_src_trace_processor_shell_unittests",
1960319611
":perfetto_src_trace_processor_sorter_sorter",
@@ -19642,6 +19650,7 @@ cc_test {
1964219650
":perfetto_src_trace_processor_util_simple_json_serializer",
1964319651
":perfetto_src_trace_processor_util_sql_argument",
1964419652
":perfetto_src_trace_processor_util_stdlib",
19653+
":perfetto_src_trace_processor_util_symbolizer_symbolize_database",
1964519654
":perfetto_src_trace_processor_util_symbolizer_symbolizer",
1964619655
":perfetto_src_trace_processor_util_symbolizer_unittests",
1964719656
":perfetto_src_trace_processor_util_tar_writer",

BUILD

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -648,6 +648,7 @@ perfetto_cc_library(
648648
":src_trace_processor_shell_query",
649649
":src_trace_processor_shell_shell_utils",
650650
":src_trace_processor_shell_sql_packages",
651+
":src_trace_processor_shell_subcommand",
651652
":src_trace_processor_sorter_sorter",
652653
":src_trace_processor_sqlite_bindings_bindings",
653654
":src_trace_processor_sqlite_sqlite",
@@ -4142,6 +4143,19 @@ perfetto_filegroup(
41424143
],
41434144
)
41444145

4146+
# GN target: //src/trace_processor/shell:subcommand
4147+
perfetto_filegroup(
4148+
name = "src_trace_processor_shell_subcommand",
4149+
srcs = [
4150+
"src/trace_processor/shell/common_flags.cc",
4151+
"src/trace_processor/shell/common_flags.h",
4152+
"src/trace_processor/shell/query_subcommand.cc",
4153+
"src/trace_processor/shell/query_subcommand.h",
4154+
"src/trace_processor/shell/subcommand.cc",
4155+
"src/trace_processor/shell/subcommand.h",
4156+
],
4157+
)
4158+
41454159
# GN target: //src/trace_processor/sorter:sorter
41464160
perfetto_filegroup(
41474161
name = "src_trace_processor_sorter_sorter",

src/trace_processor/BUILD.gn

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,6 +260,7 @@ if (enable_perfetto_trace_processor_sqlite) {
260260
"shell:query",
261261
"shell:shell_utils",
262262
"shell:sql_packages",
263+
"shell:subcommand",
263264
"sqlite",
264265
"trace_summary",
265266
"util:stdlib",

src/trace_processor/shell/BUILD.gn

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,27 @@ import("../../../gn/perfetto.gni")
1616

1717
source_set("subcommand") {
1818
sources = [
19+
"common_flags.cc",
20+
"common_flags.h",
21+
"query_subcommand.cc",
22+
"query_subcommand.h",
1923
"subcommand.cc",
2024
"subcommand.h",
2125
]
22-
deps = [ "../../../gn:default_deps" ]
26+
deps = [
27+
":metatrace",
28+
":query",
29+
":shell_utils",
30+
":sql_packages",
31+
"../../../gn:default_deps",
32+
"../../../include/perfetto/ext/trace_processor:trace_processor_shell",
33+
"../../../protos/perfetto/trace_processor:zero",
34+
"../../base",
35+
"../../base:version",
36+
"../util/deobfuscation:deobfuscator",
37+
"../util/symbolizer:symbolize_database",
38+
]
39+
public_deps = [ "../../../include/perfetto/trace_processor:trace_processor" ]
2340
}
2441

2542
source_set("interactive") {
@@ -112,5 +129,6 @@ source_set("unittests") {
112129
":subcommand",
113130
"../../../gn:default_deps",
114131
"../../../gn:gtest_and_gmock",
132+
"../../base",
115133
]
116134
}

0 commit comments

Comments
 (0)