libdebuggerd: add protobuf implementation.
This commit implements protobuf output for tombstones, along with a
translator that should emit bytewise identical output to the existing
tombstone dumping code, except for ancillary data from GWP-ASan and
Scudo, which haven't been implemented yet.
Test: setprop debug.debuggerd.translate.translate_proto_to_text 1 &&
/data/nativetest64/debuggerd_test/debuggerd_test
Test: for TOMBSTONE in /data/tombstones/tombstone_??; do
pbtombstone $TOMBSTONE.pb | diff $TOMBSTONE -
done
Change-Id: Ieeece6e6d1c26eb608b00ec24e2e725e161c8c92
diff --git a/debuggerd/Android.bp b/debuggerd/Android.bp
index fd62392..2390d79 100644
--- a/debuggerd/Android.bp
+++ b/debuggerd/Android.bp
@@ -176,6 +176,8 @@
"libdebuggerd/open_files_list.cpp",
"libdebuggerd/scudo.cpp",
"libdebuggerd/tombstone.cpp",
+ "libdebuggerd/tombstone_proto.cpp",
+ "libdebuggerd/tombstone_proto_to_text.cpp",
"libdebuggerd/utility.cpp",
],
@@ -206,6 +208,8 @@
whole_static_libs: [
"gwp_asan_crash_handler",
"libscudo",
+ "libtombstone_proto",
+ "libprotobuf-cpp-lite",
],
target: {
@@ -228,6 +232,20 @@
},
}
+cc_binary {
+ name: "pbtombstone",
+ defaults: ["debuggerd_defaults"],
+ srcs: ["pbtombstone.cpp"],
+ static_libs: [
+ "libbase",
+ "libdebuggerd",
+ "liblog",
+ "libprotobuf-cpp-lite",
+ "libtombstone_proto",
+ "libunwindstack",
+ ],
+}
+
cc_test {
name: "debuggerd_test",
defaults: ["debuggerd_defaults"],
@@ -332,6 +350,9 @@
"libtombstoned_client_static",
"libdebuggerd",
"libcutils",
+
+ "libtombstone_proto",
+ "libprotobuf-cpp-lite",
],
shared_libs: [