diff options
author | Devin Moore <devinmoore@google.com> | 2024-05-07 19:55:51 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2024-05-07 19:55:51 +0000 |
commit | 87ff7115ef98061c95f54d2d7039a2a2b4eb9f2d (patch) | |
tree | 7ba4a14f4667f46ffd2dfd21891e4a3420671b78 | |
parent | d6f6d0e6e3992d31cc9a049f60d0064a7210c9c5 (diff) | |
parent | 4647b6b3058fd8d17622e72beaea54e64db7afe3 (diff) | |
download | core-87ff7115ef98061c95f54d2d7039a2a2b4eb9f2d.tar.gz |
Merge "Add page size info to tombstone" into main
-rw-r--r-- | debuggerd/libdebuggerd/tombstone_proto.cpp | 3 | ||||
-rw-r--r-- | debuggerd/libdebuggerd/tombstone_proto_to_text.cpp | 7 | ||||
-rw-r--r-- | debuggerd/proto/tombstone.proto | 5 |
3 files changed, 14 insertions, 1 deletions
diff --git a/debuggerd/libdebuggerd/tombstone_proto.cpp b/debuggerd/libdebuggerd/tombstone_proto.cpp index 4cde98610..5546b7bcc 100644 --- a/debuggerd/libdebuggerd/tombstone_proto.cpp +++ b/debuggerd/libdebuggerd/tombstone_proto.cpp @@ -714,6 +714,9 @@ void engrave_tombstone_proto(Tombstone* tombstone, unwindstack::AndroidUnwinder* error.c_str()); } + result.set_page_size(getpagesize()); + result.set_has_been_16kb_mode(android::base::GetBoolProperty("ro.misctrl.16kb_before", false)); + auto cmd_line = result.mutable_command_line(); for (const auto& arg : target_thread.command_line) { *cmd_line->Add() = arg; diff --git a/debuggerd/libdebuggerd/tombstone_proto_to_text.cpp b/debuggerd/libdebuggerd/tombstone_proto_to_text.cpp index cefa2d62e..08c1cc0da 100644 --- a/debuggerd/libdebuggerd/tombstone_proto_to_text.cpp +++ b/debuggerd/libdebuggerd/tombstone_proto_to_text.cpp @@ -586,6 +586,13 @@ bool tombstone_proto_to_text(const Tombstone& tombstone, CallbackType callback) CBL("Timestamp: %s", tombstone.timestamp().c_str()); CBL("Process uptime: %ds", tombstone.process_uptime()); + // only print this info if the page size is not 4k or has been in 16k mode + if (tombstone.page_size() != 4096) { + CBL("Page size: %d bytes", tombstone.page_size()); + } else if (tombstone.has_been_16kb_mode()) { + CBL("Has been in 16kb mode: yes"); + } + // Process header const auto& threads = tombstone.threads(); auto main_thread_it = threads.find(tombstone.tid()); diff --git a/debuggerd/proto/tombstone.proto b/debuggerd/proto/tombstone.proto index 214cbfb46..e70d525ee 100644 --- a/debuggerd/proto/tombstone.proto +++ b/debuggerd/proto/tombstone.proto @@ -46,7 +46,10 @@ message Tombstone { repeated LogBuffer log_buffers = 18; repeated FD open_fds = 19; - reserved 22 to 999; + uint32 page_size = 22; + bool has_been_16kb_mode = 23; + + reserved 24 to 999; } enum Architecture { |