1syntax = "proto3"; 2 3option java_package = "com.android.server.os"; 4option java_outer_classname = "TombstoneProtos"; 5 6// NOTE TO OEMS: 7// If you add custom fields to this proto, do not use numbers in the reserved range. 8 9message Tombstone { 10 Architecture arch = 1; 11 string build_fingerprint = 2; 12 string revision = 3; 13 string timestamp = 4; 14 15 uint32 pid = 5; 16 uint32 tid = 6; 17 uint32 uid = 7; 18 string selinux_label = 8; 19 20 repeated string command_line = 9; 21 22 // Process uptime in seconds. 23 uint32 process_uptime = 20; 24 25 Signal signal_info = 10; 26 string abort_message = 14; 27 repeated Cause causes = 15; 28 29 map<uint32, Thread> threads = 16; 30 repeated MemoryMapping memory_mappings = 17; 31 repeated LogBuffer log_buffers = 18; 32 repeated FD open_fds = 19; 33 34 reserved 21 to 999; 35} 36 37enum Architecture { 38 ARM32 = 0; 39 ARM64 = 1; 40 X86 = 2; 41 X86_64 = 3; 42 43 reserved 4 to 999; 44} 45 46message Signal { 47 int32 number = 1; 48 string name = 2; 49 50 int32 code = 3; 51 string code_name = 4; 52 53 bool has_sender = 5; 54 int32 sender_uid = 6; 55 int32 sender_pid = 7; 56 57 bool has_fault_address = 8; 58 uint64 fault_address = 9; 59 // Note, may or may not contain the dump of the actual memory contents. Currently, on arm64, we 60 // only include metadata, and not the contents. 61 MemoryDump fault_adjacent_metadata = 10; 62 63 reserved 11 to 999; 64} 65 66message HeapObject { 67 uint64 address = 1; 68 uint64 size = 2; 69 70 uint64 allocation_tid = 3; 71 repeated BacktraceFrame allocation_backtrace = 4; 72 73 uint64 deallocation_tid = 5; 74 repeated BacktraceFrame deallocation_backtrace = 6; 75} 76 77message MemoryError { 78 enum Tool { 79 GWP_ASAN = 0; 80 SCUDO = 1; 81 82 reserved 2 to 999; 83 } 84 Tool tool = 1; 85 86 enum Type { 87 UNKNOWN = 0; 88 USE_AFTER_FREE = 1; 89 DOUBLE_FREE = 2; 90 INVALID_FREE = 3; 91 BUFFER_OVERFLOW = 4; 92 BUFFER_UNDERFLOW = 5; 93 94 reserved 6 to 999; 95 } 96 Type type = 2; 97 98 oneof location { 99 HeapObject heap = 3; 100 } 101 102 reserved 4 to 999; 103} 104 105message Cause { 106 string human_readable = 1; 107 oneof details { 108 MemoryError memory_error = 2; 109 } 110 111 reserved 3 to 999; 112} 113 114message Register { 115 string name = 1; 116 uint64 u64 = 2; 117 118 reserved 3 to 999; 119} 120 121message Thread { 122 int32 id = 1; 123 string name = 2; 124 repeated Register registers = 3; 125 repeated string backtrace_note = 7; 126 repeated string unreadable_elf_files = 9; 127 repeated BacktraceFrame current_backtrace = 4; 128 repeated MemoryDump memory_dump = 5; 129 int64 tagged_addr_ctrl = 6; 130 int64 pac_enabled_keys = 8; 131 132 reserved 10 to 999; 133} 134 135message BacktraceFrame { 136 uint64 rel_pc = 1; 137 uint64 pc = 2; 138 uint64 sp = 3; 139 140 string function_name = 4; 141 uint64 function_offset = 5; 142 143 string file_name = 6; 144 uint64 file_map_offset = 7; 145 string build_id = 8; 146 147 reserved 9 to 999; 148} 149 150message ArmMTEMetadata { 151 // One memory tag per granule (e.g. every 16 bytes) of regular memory. 152 bytes memory_tags = 1; 153 reserved 2 to 999; 154} 155 156message MemoryDump { 157 string register_name = 1; 158 string mapping_name = 2; 159 uint64 begin_address = 3; 160 bytes memory = 4; 161 oneof metadata { 162 ArmMTEMetadata arm_mte_metadata = 6; 163 } 164 165 reserved 5, 7 to 999; 166} 167 168message MemoryMapping { 169 uint64 begin_address = 1; 170 uint64 end_address = 2; 171 uint64 offset = 3; 172 173 bool read = 4; 174 bool write = 5; 175 bool execute = 6; 176 177 string mapping_name = 7; 178 string build_id = 8; 179 uint64 load_bias = 9; 180 181 reserved 10 to 999; 182} 183 184message FD { 185 int32 fd = 1; 186 string path = 2; 187 string owner = 3; 188 uint64 tag = 4; 189 190 reserved 5 to 999; 191} 192 193message LogBuffer { 194 string name = 1; 195 repeated LogMessage logs = 2; 196 197 reserved 3 to 999; 198} 199 200message LogMessage { 201 string timestamp = 1; 202 uint32 pid = 2; 203 uint32 tid = 3; 204 uint32 priority = 4; 205 string tag = 5; 206 string message = 6; 207 208 reserved 7 to 999; 209} 210