OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 syntax = "proto2"; | 5 syntax = "proto2"; |
6 | 6 |
7 option optimize_for = LITE_RUNTIME; | 7 option optimize_for = LITE_RUNTIME; |
8 | 8 |
9 package browser_watcher; | 9 package browser_watcher; |
10 | 10 |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
44 // specific version and build of the associated debug file. This may be | 44 // specific version and build of the associated debug file. This may be |
45 // the same as code_identifier when the debug_file and code_file are | 45 // the same as code_identifier when the debug_file and code_file are |
46 // identical or when the same identifier is used to identify distinct | 46 // identical or when the same identifier is used to identify distinct |
47 // debug and code files. | 47 // debug and code files. |
48 optional string debug_identifier = 6; | 48 optional string debug_identifier = 6; |
49 | 49 |
50 // A human-readable representation of the code module's version. | 50 // A human-readable representation of the code module's version. |
51 optional string version = 7; | 51 optional string version = 7; |
52 } | 52 } |
53 | 53 |
54 // A typed value holds values of interest or references to such values. | |
55 // Next id: 9 | |
56 message TypedValue { | |
57 // A reference to a value of interest. | |
58 message Reference { | |
59 optional uint64 address = 1; | |
60 optional int64 size = 2; | |
61 } | |
62 | |
63 oneof value { | |
64 bytes bytes_value = 1; | |
65 Reference bytes_reference = 2; | |
66 string string_value = 3; | |
67 Reference string_reference = 4; | |
68 string char_value = 5; | |
69 bool bool_value = 6; | |
70 int64 signed_value = 7; | |
71 int64 unsigned_value = 8; | |
bcwhite
2016/12/22 17:21:58
Unsigned?
manzagop (departed)
2017/01/10 14:11:22
Done.
| |
72 } | |
73 } | |
74 | |
54 // An activity represents information about something of interest on a thread. | 75 // An activity represents information about something of interest on a thread. |
55 // Next id: 9 | 76 // Next id: 10 |
56 message Activity { | 77 message Activity { |
57 enum Type { | 78 enum Type { |
58 UNKNOWN = 0; | 79 UNKNOWN = 0; |
59 ACT_TASK_RUN = 1; | 80 ACT_TASK_RUN = 1; |
60 ACT_LOCK_ACQUIRE = 2; | 81 ACT_LOCK_ACQUIRE = 2; |
61 ACT_EVENT_WAIT = 3; | 82 ACT_EVENT_WAIT = 3; |
62 ACT_THREAD_JOIN = 4; | 83 ACT_THREAD_JOIN = 4; |
63 ACT_PROCESS_WAIT = 5; | 84 ACT_PROCESS_WAIT = 5; |
64 } | 85 } |
65 | 86 |
(...skipping 16 matching lines...) Expand all Loading... | |
82 optional uint64 lock_address = 5; | 103 optional uint64 lock_address = 5; |
83 | 104 |
84 // The memory address of the event object. | 105 // The memory address of the event object. |
85 optional uint64 event_address = 6; | 106 optional uint64 event_address = 6; |
86 | 107 |
87 // A unique identifier for a thread within a process. | 108 // A unique identifier for a thread within a process. |
88 optional int64 thread_id = 7; | 109 optional int64 thread_id = 7; |
89 | 110 |
90 // A unique identifier for a process. | 111 // A unique identifier for a process. |
91 optional int64 process_id = 8; | 112 optional int64 process_id = 8; |
113 | |
114 // A key-value store. | |
115 map<string, TypedValue> user_data = 9; | |
92 } | 116 } |
93 | 117 |
94 // The state of a thread. | 118 // The state of a thread. |
95 // Next id: 5 | 119 // Next id: 5 |
96 message ThreadState { | 120 message ThreadState { |
97 // The name of the thread, up to a maxiumum length. | 121 // The name of the thread, up to a maxiumum length. |
98 optional string thread_name = 1; | 122 optional string thread_name = 1; |
99 | 123 |
100 // The identifier of the thread. | 124 // The identifier of the thread. |
101 optional int64 thread_id = 2; | 125 optional int64 thread_id = 2; |
(...skipping 13 matching lines...) Expand all Loading... | |
115 // Note: likely only a subset of modules of interest (e.g. Chromium's own | 139 // Note: likely only a subset of modules of interest (e.g. Chromium's own |
116 // modules). | 140 // modules). |
117 repeated CodeModule modules = 1; | 141 repeated CodeModule modules = 1; |
118 repeated ThreadState threads = 2; | 142 repeated ThreadState threads = 2; |
119 // TODO(manzagop): add experiment state. | 143 // TODO(manzagop): add experiment state. |
120 } | 144 } |
121 | 145 |
122 // A stability report contains information pertaining to the execution of a | 146 // A stability report contains information pertaining to the execution of a |
123 // single logical instance of a "chrome browser". It is comprised of information | 147 // single logical instance of a "chrome browser". It is comprised of information |
124 // about the system state and about the chrome browser's processes. | 148 // about the system state and about the chrome browser's processes. |
125 // Next id: 4 | 149 // Next id: 5 |
126 message StabilityReport { | 150 message StabilityReport { |
127 optional SystemState system_state = 1; | 151 optional SystemState system_state = 1; |
128 // TODO(manzagop): revisit whether a single repeated field should contain all | 152 // TODO(manzagop): revisit whether a single repeated field should contain all |
129 // processes, or whether it's preferable to have separate fields per type. | 153 // processes, or whether it's preferable to have separate fields per type. |
130 // TODO(manzagop): add information about the type of process, pid, process | 154 // TODO(manzagop): add information about the type of process, pid, process |
131 // times (e.g. start time), hierarchical relationships (e.g. parent pid), | 155 // times (e.g. start time), hierarchical relationships (e.g. parent pid), |
132 // command line, etc. | 156 // command line, etc. |
133 repeated ProcessState process_states = 2; | 157 repeated ProcessState process_states = 2; |
134 // TODO(manzagop): if/when reports contain multiple processes, attribute and | 158 // TODO(manzagop): if/when reports contain multiple processes, attribute and |
135 // relocate these to their process (and perhaps thread). | 159 // relocate these to their process (and perhaps thread). |
136 repeated string log_messages = 3; | 160 repeated string log_messages = 3; |
161 map<string, TypedValue> global_data = 4; | |
137 } | 162 } |
OLD | NEW |