Move deobfuscation proto to separate file.
This will be used for heap graphs, heap profiles and stack sampling
profiles.
Bug: 159987908
Change-Id: I204c0777dc9d2f8c9d2c5180058327a96c099510
diff --git a/Android.bp b/Android.bp
index 3c2fb31..96bd295 100644
--- a/Android.bp
+++ b/Android.bp
@@ -5137,6 +5137,7 @@
genrule {
name: "perfetto_protos_perfetto_trace_profiling_cpp_gen",
srcs: [
+ "protos/perfetto/trace/profiling/deobfuscation.proto",
"protos/perfetto/trace/profiling/heap_graph.proto",
"protos/perfetto/trace/profiling/profile_common.proto",
"protos/perfetto/trace/profiling/profile_packet.proto",
@@ -5148,6 +5149,7 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.gen.cc",
"external/perfetto/protos/perfetto/trace/profiling/heap_graph.gen.cc",
"external/perfetto/protos/perfetto/trace/profiling/profile_common.gen.cc",
"external/perfetto/protos/perfetto/trace/profiling/profile_packet.gen.cc",
@@ -5159,6 +5161,7 @@
genrule {
name: "perfetto_protos_perfetto_trace_profiling_cpp_gen_headers",
srcs: [
+ "protos/perfetto/trace/profiling/deobfuscation.proto",
"protos/perfetto/trace/profiling/heap_graph.proto",
"protos/perfetto/trace/profiling/profile_common.proto",
"protos/perfetto/trace/profiling/profile_packet.proto",
@@ -5170,6 +5173,7 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location perfetto_src_protozero_protoc_plugin_cppgen_plugin) --plugin_out=wrapper_namespace=gen:$(genDir)/external/perfetto/ $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.gen.h",
"external/perfetto/protos/perfetto/trace/profiling/heap_graph.gen.h",
"external/perfetto/protos/perfetto/trace/profiling/profile_common.gen.h",
"external/perfetto/protos/perfetto/trace/profiling/profile_packet.gen.h",
@@ -5185,6 +5189,7 @@
genrule {
name: "perfetto_protos_perfetto_trace_profiling_lite_gen",
srcs: [
+ "protos/perfetto/trace/profiling/deobfuscation.proto",
"protos/perfetto/trace/profiling/heap_graph.proto",
"protos/perfetto/trace/profiling/profile_common.proto",
"protos/perfetto/trace/profiling/profile_packet.proto",
@@ -5195,6 +5200,7 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pb.cc",
"external/perfetto/protos/perfetto/trace/profiling/heap_graph.pb.cc",
"external/perfetto/protos/perfetto/trace/profiling/profile_common.pb.cc",
"external/perfetto/protos/perfetto/trace/profiling/profile_packet.pb.cc",
@@ -5206,6 +5212,7 @@
genrule {
name: "perfetto_protos_perfetto_trace_profiling_lite_gen_headers",
srcs: [
+ "protos/perfetto/trace/profiling/deobfuscation.proto",
"protos/perfetto/trace/profiling/heap_graph.proto",
"protos/perfetto/trace/profiling/profile_common.proto",
"protos/perfetto/trace/profiling/profile_packet.proto",
@@ -5216,6 +5223,7 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --cpp_out=lite=true:$(genDir)/external/perfetto/ $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pb.h",
"external/perfetto/protos/perfetto/trace/profiling/heap_graph.pb.h",
"external/perfetto/protos/perfetto/trace/profiling/profile_common.pb.h",
"external/perfetto/protos/perfetto/trace/profiling/profile_packet.pb.h",
@@ -5231,6 +5239,7 @@
genrule {
name: "perfetto_protos_perfetto_trace_profiling_zero_gen",
srcs: [
+ "protos/perfetto/trace/profiling/deobfuscation.proto",
"protos/perfetto/trace/profiling/heap_graph.proto",
"protos/perfetto/trace/profiling/profile_common.proto",
"protos/perfetto/trace/profiling/profile_packet.proto",
@@ -5242,6 +5251,7 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pbzero.cc",
"external/perfetto/protos/perfetto/trace/profiling/heap_graph.pbzero.cc",
"external/perfetto/protos/perfetto/trace/profiling/profile_common.pbzero.cc",
"external/perfetto/protos/perfetto/trace/profiling/profile_packet.pbzero.cc",
@@ -5253,6 +5263,7 @@
genrule {
name: "perfetto_protos_perfetto_trace_profiling_zero_gen_headers",
srcs: [
+ "protos/perfetto/trace/profiling/deobfuscation.proto",
"protos/perfetto/trace/profiling/heap_graph.proto",
"protos/perfetto/trace/profiling/profile_common.proto",
"protos/perfetto/trace/profiling/profile_packet.proto",
@@ -5264,6 +5275,7 @@
],
cmd: "mkdir -p $(genDir)/external/perfetto/ && $(location aprotoc) --proto_path=external/perfetto --plugin=protoc-gen-plugin=$(location protozero_plugin) --plugin_out=wrapper_namespace=pbzero:$(genDir)/external/perfetto/ $(in)",
out: [
+ "external/perfetto/protos/perfetto/trace/profiling/deobfuscation.pbzero.h",
"external/perfetto/protos/perfetto/trace/profiling/heap_graph.pbzero.h",
"external/perfetto/protos/perfetto/trace/profiling/profile_common.pbzero.h",
"external/perfetto/protos/perfetto/trace/profiling/profile_packet.pbzero.h",
diff --git a/BUILD b/BUILD
index 8a10449..93176cb 100644
--- a/BUILD
+++ b/BUILD
@@ -2524,6 +2524,7 @@
perfetto_proto_library(
name = "protos_perfetto_trace_profiling_protos",
srcs = [
+ "protos/perfetto/trace/profiling/deobfuscation.proto",
"protos/perfetto/trace/profiling/heap_graph.proto",
"protos/perfetto/trace/profiling/profile_common.proto",
"protos/perfetto/trace/profiling/profile_packet.proto",
diff --git a/protos/perfetto/trace/perfetto_trace.proto b/protos/perfetto/trace/perfetto_trace.proto
index 9c5ec59..0dbf027 100644
--- a/protos/perfetto/trace/perfetto_trace.proto
+++ b/protos/perfetto/trace/perfetto_trace.proto
@@ -6583,7 +6583,7 @@
// End of protos/perfetto/trace/power/power_rails.proto
-// Begin of protos/perfetto/trace/profiling/heap_graph.proto
+// Begin of protos/perfetto/trace/profiling/deobfuscation.proto
message ObfuscatedMember {
// This is the obfuscated field name relative to the class containing the
@@ -6607,6 +6607,9 @@
optional int64 version_code = 2;
repeated ObfuscatedClass obfuscated_classes = 3;
}
+// End of protos/perfetto/trace/profiling/deobfuscation.proto
+
+// Begin of protos/perfetto/trace/profiling/heap_graph.proto
message HeapGraphRoot {
enum Type {
diff --git a/protos/perfetto/trace/profiling/BUILD.gn b/protos/perfetto/trace/profiling/BUILD.gn
index 3bf8905..3296bc1 100644
--- a/protos/perfetto/trace/profiling/BUILD.gn
+++ b/protos/perfetto/trace/profiling/BUILD.gn
@@ -16,6 +16,7 @@
perfetto_proto_library("@TYPE@") {
sources = [
+ "deobfuscation.proto",
"heap_graph.proto",
"profile_common.proto",
"profile_packet.proto",
diff --git a/protos/perfetto/trace/profiling/deobfuscation.proto b/protos/perfetto/trace/profiling/deobfuscation.proto
new file mode 100644
index 0000000..3ca8eb4
--- /dev/null
+++ b/protos/perfetto/trace/profiling/deobfuscation.proto
@@ -0,0 +1,42 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+syntax = "proto2";
+
+package perfetto.protos;
+
+message ObfuscatedMember {
+ // This is the obfuscated field name relative to the class containing the
+ // ObfuscatedMember.
+ optional string obfuscated_name = 1;
+ // If this is fully qualified (i.e. contains a '.') this is the deobfuscated
+ // field name including its class. Otherwise, this is this the unqualified
+ // deobfuscated field name relative to the class containing this
+ // ObfuscatedMember.
+ optional string deobfuscated_name = 2;
+}
+
+message ObfuscatedClass {
+ optional string obfuscated_name = 1;
+ optional string deobfuscated_name = 2;
+ repeated ObfuscatedMember obfuscated_members = 3;
+}
+
+message DeobfuscationMapping {
+ optional string package_name = 1;
+ optional int64 version_code = 2;
+ repeated ObfuscatedClass obfuscated_classes = 3;
+}
\ No newline at end of file
diff --git a/protos/perfetto/trace/profiling/heap_graph.proto b/protos/perfetto/trace/profiling/heap_graph.proto
index fa7ba8f..0645604 100644
--- a/protos/perfetto/trace/profiling/heap_graph.proto
+++ b/protos/perfetto/trace/profiling/heap_graph.proto
@@ -16,6 +16,9 @@
syntax = "proto2";
+// TODO(fmayer): Remove this import once clients are migrated to the new
+// location.
+import public "protos/perfetto/trace/profiling/deobfuscation.proto";
import "protos/perfetto/trace/profiling/profile_common.proto";
// These messages encode a graph of objects that retain one another. Currently
@@ -23,29 +26,6 @@
package perfetto.protos;
-message ObfuscatedMember {
- // This is the obfuscated field name relative to the class containing the
- // ObfuscatedMember.
- optional string obfuscated_name = 1;
- // If this is fully qualified (i.e. contains a '.') this is the deobfuscated
- // field name including its class. Otherwise, this is this the unqualified
- // deobfuscated field name relative to the class containing this
- // ObfuscatedMember.
- optional string deobfuscated_name = 2;
-}
-
-message ObfuscatedClass {
- optional string obfuscated_name = 1;
- optional string deobfuscated_name = 2;
- repeated ObfuscatedMember obfuscated_members = 3;
-}
-
-message DeobfuscationMapping {
- optional string package_name = 1;
- optional int64 version_code = 2;
- repeated ObfuscatedClass obfuscated_classes = 3;
-}
-
message HeapGraphRoot {
enum Type {
ROOT_UNKNOWN = 0;
diff --git a/protos/perfetto/trace/trace_packet.proto b/protos/perfetto/trace/trace_packet.proto
index 972460a..4c50704 100644
--- a/protos/perfetto/trace/trace_packet.proto
+++ b/protos/perfetto/trace/trace_packet.proto
@@ -42,6 +42,7 @@
import "protos/perfetto/trace/perfetto/tracing_service_event.proto";
import "protos/perfetto/trace/power/battery_counters.proto";
import "protos/perfetto/trace/power/power_rails.proto";
+import "protos/perfetto/trace/profiling/deobfuscation.proto";
import "protos/perfetto/trace/profiling/heap_graph.proto";
import "protos/perfetto/trace/profiling/profile_common.proto";
import "protos/perfetto/trace/profiling/profile_packet.proto";
diff --git a/src/trace_processor/importers/proto/heap_graph_module.cc b/src/trace_processor/importers/proto/heap_graph_module.cc
index a839e3a..184ea3b 100644
--- a/src/trace_processor/importers/proto/heap_graph_module.cc
+++ b/src/trace_processor/importers/proto/heap_graph_module.cc
@@ -21,6 +21,7 @@
#include "src/trace_processor/storage/trace_storage.h"
#include "src/trace_processor/types/trace_processor_context.h"
+#include "protos/perfetto/trace/profiling/deobfuscation.pbzero.h"
#include "protos/perfetto/trace/profiling/heap_graph.pbzero.h"
namespace perfetto {
diff --git a/src/trace_processor/importers/proto/heap_graph_module.h b/src/trace_processor/importers/proto/heap_graph_module.h
index b1816b0..76f4146 100644
--- a/src/trace_processor/importers/proto/heap_graph_module.h
+++ b/src/trace_processor/importers/proto/heap_graph_module.h
@@ -22,6 +22,7 @@
#include "src/trace_processor/importers/proto/proto_importer_module.h"
#include "src/trace_processor/timestamped_trace_piece.h"
+#include "protos/perfetto/trace/profiling/deobfuscation.pbzero.h"
#include "protos/perfetto/trace/trace_packet.pbzero.h"
namespace perfetto {
diff --git a/tools/trace_to_text/utils.cc b/tools/trace_to_text/utils.cc
index f85a421..588ac75 100644
--- a/tools/trace_to_text/utils.cc
+++ b/tools/trace_to_text/utils.cc
@@ -28,6 +28,7 @@
#include "perfetto/protozero/scattered_heap_buffer.h"
#include "perfetto/trace_processor/trace_processor.h"
+#include "protos/perfetto/trace/profiling/deobfuscation.pbzero.h"
#include "protos/perfetto/trace/profiling/heap_graph.pbzero.h"
#include "protos/perfetto/trace/profiling/profile_common.pbzero.h"
#include "protos/perfetto/trace/trace.pbzero.h"