blob: aff50bd54f5c7dcf82fb6bbd8e62de022122fcf5 [file] [log] [blame]
Josh Gao76e1e302021-01-26 15:53:11 -08001syntax = "proto3";
2
3message Tombstone {
4 Architecture arch = 1;
5 string build_fingerprint = 2;
6 string revision = 3;
7 string timestamp = 4;
8
9 uint32 pid = 5;
10 uint32 tid = 6;
11 uint32 uid = 7;
12 string selinux_label = 8;
13
14 string process_name = 9;
15
16 Signal signal_info = 10;
17 string abort_message = 14;
18 Cause cause = 15;
19
20 map<uint32, Thread> threads = 16;
21 repeated MemoryMapping memory_mappings = 17;
22 repeated LogBuffer log_buffers = 18;
23 repeated FD open_fds = 19;
24}
25
26enum Architecture {
27 ARM32 = 0;
28 ARM64 = 1;
29 X86 = 2;
30 X86_64 = 3;
31}
32
33message Signal {
34 int32 number = 1;
35 string name = 2;
36
37 int32 code = 3;
38 string code_name = 4;
39
40 bool has_sender = 5;
41 int32 sender_uid = 6;
42 int32 sender_pid = 7;
43
44 bool has_fault_address = 8;
45 uint64 fault_address = 9;
46}
47
48message Cause {
49 string human_readable = 1;
50}
51
52message Register {
53 string name = 1;
54 uint64 u64 = 2;
55}
56
57message Thread {
58 int32 id = 1;
59 string name = 2;
60 repeated Register registers = 3;
61 repeated BacktraceFrame current_backtrace = 4;
62 repeated MemoryDump memory_dump = 5;
63}
64
65message BacktraceFrame {
66 uint64 rel_pc = 1;
67 uint64 pc = 2;
68 uint64 sp = 3;
69
70 string function_name = 4;
71 uint64 function_offset = 5;
72
73 string file_name = 6;
74 uint64 file_map_offset = 7;
75 string build_id = 8;
76}
77
78message MemoryDump {
79 string register_name = 1;
80 string mapping_name = 2;
81 uint64 begin_address = 3;
82 bytes memory = 4;
83}
84
85message MemoryMapping {
86 uint64 begin_address = 1;
87 uint64 end_address = 2;
88 uint64 offset = 3;
89
90 bool read = 4;
91 bool write = 5;
92 bool execute = 6;
93
94 string mapping_name = 7;
95 string build_id = 8;
96 uint64 load_bias = 9;
97}
98
99message FD {
100 int32 fd = 1;
101 string path = 2;
102 string owner = 3;
103 uint64 tag = 4;
104}
105
106message LogBuffer {
107 string name = 1;
108 repeated LogMessage logs = 2;
109}
110
111message LogMessage {
112 string timestamp = 1;
113 uint32 pid = 2;
114 uint32 tid = 3;
115 uint32 priority = 4;
116 string tag = 5;
117 string message = 6;
118}