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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
42 // specific version and build of the associated debug file. This may be | 42 // specific version and build of the associated debug file. This may be |
43 // the same as code_identifier when the debug_file and code_file are | 43 // the same as code_identifier when the debug_file and code_file are |
44 // identical or when the same identifier is used to identify distinct | 44 // identical or when the same identifier is used to identify distinct |
45 // debug and code files. | 45 // debug and code files. |
46 optional string debug_identifier = 6; | 46 optional string debug_identifier = 6; |
47 | 47 |
48 // A human-readable representation of the code module's version. | 48 // A human-readable representation of the code module's version. |
49 optional string version = 7; | 49 optional string version = 7; |
50 } | 50 } |
51 | 51 |
52 // An activity represents information about something of interest on a thread. | |
53 // Next id: 9 | |
54 message Activity { | |
55 enum Type { | |
56 NONE = 0; | |
57 ACT_TASK_RUN = 1; | |
58 ACT_LOCK_ACQUIRE = 2; | |
59 ACT_EVENT_WAIT = 3; | |
60 ACT_THREAD_JOIN = 4; | |
61 ACT_PROCESS_WAIT = 5; | |
62 } | |
63 | |
64 // Identifies the type of the activity (and specifies which fields are | |
65 // relevant). | |
66 optional Type type = 1; | |
67 | |
68 // Creation time of the activity. | |
69 optional int64 time = 2; | |
70 | |
71 // The address that is the origin of the activity. | |
72 // Expected for ACT_TASK_* | |
73 optional uint64 origin_address = 3; | |
74 | |
75 // The sequence identifier of the posted task. | |
76 // Expected for ACT_TASK_* | |
77 optional uint64 task_sequence_id = 4; | |
78 | |
79 // The memory address of the lock object. | |
80 optional uint64 lock_address = 5; | |
81 | |
82 // The memory address of the event object. | |
83 optional uint64 event_address = 6; | |
bcwhite
2016/11/02 16:52:37
What about the (optional) call_stack on ASAN build
manzagop (departed)
2016/11/02 20:15:23
I'm keeping it for a subsequent CL as current focu
| |
84 | |
85 // A unique identifier for a thread within a process. | |
86 optional int64 thread_id = 7; | |
87 | |
88 // A unique identifier for a process. | |
89 optional int64 process_id = 8; | |
90 } | |
91 | |
52 // The state of a thread. | 92 // The state of a thread. |
93 // Next id: 5 | |
53 message ThreadState { | 94 message ThreadState { |
95 // The name of the thread, up to a maxiumum length. | |
54 optional string thread_name = 1; | 96 optional string thread_name = 1; |
55 // TODO(manzagop): flesh out. | 97 |
98 // The identifier of the thread. | |
99 optional int64 thread_id = 2; | |
100 | |
101 // The activity stack. |activity_cnt| specifies the number of activities on | |
102 // stack and |activities| holds the base of the stack (up to a maximum size). | |
103 optional int32 activity_cnt = 3; | |
bcwhite
2016/11/02 16:52:37
Is it typical to use abbreviated "cnt" for a count
manzagop (departed)
2016/11/02 20:15:23
A rapid chromium code search seems to say no. Done
| |
104 repeated Activity activities = 4; | |
56 } | 105 } |
57 | 106 |
58 // The state of a process. | 107 // The state of a process. |
108 // Next id: 4 | |
59 message ProcessState { | 109 message ProcessState { |
110 // The identifier of the process. | |
111 optional int64 process_id = 3; | |
112 | |
60 // Note: likely only a subset of modules of interest (e.g. Chromium's own | 113 // Note: likely only a subset of modules of interest (e.g. Chromium's own |
61 // modules). | 114 // modules). |
62 repeated CodeModule modules = 1; | 115 repeated CodeModule modules = 1; |
63 repeated ThreadState threads = 2; | 116 repeated ThreadState threads = 2; |
64 // TODO(manzagop): add experiment state. | 117 // TODO(manzagop): add experiment state. |
65 } | 118 } |
66 | 119 |
67 // A stability report contains information pertaining to the execution of a | 120 // A stability report contains information pertaining to the execution of a |
68 // single logical instance of a "chrome browser". It is comprised of information | 121 // single logical instance of a "chrome browser". It is comprised of information |
69 // about the system state and about the chrome browser's processes. | 122 // about the system state and about the chrome browser's processes. |
70 message StabilityReport { | 123 message StabilityReport { |
71 optional SystemState system_state = 1; | 124 optional SystemState system_state = 1; |
72 // TODO(manzagop): revisit whether a single repeated field should contain all | 125 // TODO(manzagop): revisit whether a single repeated field should contain all |
73 // processes, or whether it's preferable to have separate fields per type. | 126 // processes, or whether it's preferable to have separate fields per type. |
74 // TODO(manzagop): add information about the type of process, pid, process | 127 // TODO(manzagop): add information about the type of process, pid, process |
75 // times (e.g. start time), hierarchical relationships (e.g. parent pid), | 128 // times (e.g. start time), hierarchical relationships (e.g. parent pid), |
76 // command line, etc. | 129 // command line, etc. |
77 repeated ProcessState process_states = 2; | 130 repeated ProcessState process_states = 2; |
78 } | 131 } |
OLD | NEW |