OLD | NEW |
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #include "vm/service_event.h" | 5 #include "vm/service_event.h" |
6 | 6 |
7 #include "vm/message_handler.h" | 7 #include "vm/message_handler.h" |
8 | 8 |
9 namespace dart { | 9 namespace dart { |
10 | 10 |
(...skipping 22 matching lines...) Expand all Loading... |
33 } | 33 } |
34 | 34 |
35 | 35 |
36 ServiceEvent::ServiceEvent(Isolate* isolate, EventKind event_kind) | 36 ServiceEvent::ServiceEvent(Isolate* isolate, EventKind event_kind) |
37 : isolate_(isolate), | 37 : isolate_(isolate), |
38 kind_(event_kind), | 38 kind_(event_kind), |
39 embedder_kind_(NULL), | 39 embedder_kind_(NULL), |
40 embedder_stream_id_(NULL), | 40 embedder_stream_id_(NULL), |
41 breakpoint_(NULL), | 41 breakpoint_(NULL), |
42 top_frame_(NULL), | 42 top_frame_(NULL), |
| 43 extension_rpc_(NULL), |
43 exception_(NULL), | 44 exception_(NULL), |
44 async_continuation_(NULL), | 45 async_continuation_(NULL), |
45 at_async_jump_(false), | 46 at_async_jump_(false), |
46 inspectee_(NULL), | 47 inspectee_(NULL), |
47 gc_stats_(NULL), | 48 gc_stats_(NULL), |
48 bytes_(NULL), | 49 bytes_(NULL), |
49 bytes_length_(0), | 50 bytes_length_(0), |
50 timestamp_(OS::GetCurrentTimeMillis()) { | 51 timestamp_(OS::GetCurrentTimeMillis()) { |
51 if ((event_kind == ServiceEvent::kPauseStart) || | 52 if ((event_kind == ServiceEvent::kPauseStart) || |
52 (event_kind == ServiceEvent::kPauseExit)) { | 53 (event_kind == ServiceEvent::kPauseExit)) { |
53 timestamp_ = isolate->message_handler()->paused_timestamp(); | 54 timestamp_ = isolate->message_handler()->paused_timestamp(); |
54 } else if (event_kind == ServiceEvent::kResume) { | 55 } else if (event_kind == ServiceEvent::kResume) { |
55 timestamp_ = isolate->last_resume_timestamp(); | 56 timestamp_ = isolate->last_resume_timestamp(); |
56 } | 57 } |
57 } | 58 } |
58 | 59 |
59 | 60 |
60 ServiceEvent::ServiceEvent(const DebuggerEvent* debugger_event) | 61 ServiceEvent::ServiceEvent(const DebuggerEvent* debugger_event) |
61 : isolate_(debugger_event->isolate()), | 62 : isolate_(debugger_event->isolate()), |
62 kind_(TranslateEventKind(debugger_event->type())), | 63 kind_(TranslateEventKind(debugger_event->type())), |
63 breakpoint_(NULL), | 64 breakpoint_(NULL), |
64 top_frame_(NULL), | 65 top_frame_(NULL), |
| 66 extension_rpc_(NULL), |
65 exception_(NULL), | 67 exception_(NULL), |
66 async_continuation_(NULL), | 68 async_continuation_(NULL), |
67 inspectee_(NULL), | 69 inspectee_(NULL), |
68 gc_stats_(NULL), | 70 gc_stats_(NULL), |
69 bytes_(NULL), | 71 bytes_(NULL), |
70 bytes_length_(0), | 72 bytes_length_(0), |
71 timestamp_(OS::GetCurrentTimeMillis()) { | 73 timestamp_(OS::GetCurrentTimeMillis()) { |
72 DebuggerEvent::EventType type = debugger_event->type(); | 74 DebuggerEvent::EventType type = debugger_event->type(); |
73 if (type == DebuggerEvent::kBreakpointReached) { | 75 if (type == DebuggerEvent::kBreakpointReached) { |
74 set_breakpoint(debugger_event->breakpoint()); | 76 set_breakpoint(debugger_event->breakpoint()); |
(...skipping 19 matching lines...) Expand all Loading... |
94 case kVMUpdate: | 96 case kVMUpdate: |
95 return "VMUpdate"; | 97 return "VMUpdate"; |
96 case kIsolateStart: | 98 case kIsolateStart: |
97 return "IsolateStart"; | 99 return "IsolateStart"; |
98 case kIsolateRunnable: | 100 case kIsolateRunnable: |
99 return "IsolateRunnable"; | 101 return "IsolateRunnable"; |
100 case kIsolateExit: | 102 case kIsolateExit: |
101 return "IsolateExit"; | 103 return "IsolateExit"; |
102 case kIsolateUpdate: | 104 case kIsolateUpdate: |
103 return "IsolateUpdate"; | 105 return "IsolateUpdate"; |
| 106 case kServiceExtensionAdded: |
| 107 return "ServiceExtensionAdded"; |
104 case kPauseStart: | 108 case kPauseStart: |
105 return "PauseStart"; | 109 return "PauseStart"; |
106 case kPauseExit: | 110 case kPauseExit: |
107 return "PauseExit"; | 111 return "PauseExit"; |
108 case kPauseBreakpoint: | 112 case kPauseBreakpoint: |
109 return "PauseBreakpoint"; | 113 return "PauseBreakpoint"; |
110 case kPauseInterrupted: | 114 case kPauseInterrupted: |
111 return "PauseInterrupted"; | 115 return "PauseInterrupted"; |
112 case kPauseException: | 116 case kPauseException: |
113 return "PauseException"; | 117 return "PauseException"; |
(...skipping 26 matching lines...) Expand all Loading... |
140 | 144 |
141 const char* ServiceEvent::stream_id() const { | 145 const char* ServiceEvent::stream_id() const { |
142 switch (kind()) { | 146 switch (kind()) { |
143 case kVMUpdate: | 147 case kVMUpdate: |
144 return Service::vm_stream.id(); | 148 return Service::vm_stream.id(); |
145 | 149 |
146 case kIsolateStart: | 150 case kIsolateStart: |
147 case kIsolateRunnable: | 151 case kIsolateRunnable: |
148 case kIsolateExit: | 152 case kIsolateExit: |
149 case kIsolateUpdate: | 153 case kIsolateUpdate: |
| 154 case kServiceExtensionAdded: |
150 return Service::isolate_stream.id(); | 155 return Service::isolate_stream.id(); |
151 | 156 |
152 case kPauseStart: | 157 case kPauseStart: |
153 case kPauseExit: | 158 case kPauseExit: |
154 case kPauseBreakpoint: | 159 case kPauseBreakpoint: |
155 case kPauseInterrupted: | 160 case kPauseInterrupted: |
156 case kPauseException: | 161 case kPauseException: |
157 case kResume: | 162 case kResume: |
158 case kBreakpointAdded: | 163 case kBreakpointAdded: |
159 case kBreakpointResolved: | 164 case kBreakpointResolved: |
(...skipping 14 matching lines...) Expand all Loading... |
174 default: | 179 default: |
175 UNREACHABLE(); | 180 UNREACHABLE(); |
176 return NULL; | 181 return NULL; |
177 } | 182 } |
178 } | 183 } |
179 | 184 |
180 | 185 |
181 void ServiceEvent::PrintJSON(JSONStream* js) const { | 186 void ServiceEvent::PrintJSON(JSONStream* js) const { |
182 JSONObject jsobj(js); | 187 JSONObject jsobj(js); |
183 PrintJSONHeader(&jsobj); | 188 PrintJSONHeader(&jsobj); |
| 189 if (kind() == kServiceExtensionAdded) { |
| 190 ASSERT(extension_rpc_ != NULL); |
| 191 jsobj.AddProperty("extensionRPC", extension_rpc_->ToCString()); |
| 192 } |
184 if (kind() == kPauseBreakpoint) { | 193 if (kind() == kPauseBreakpoint) { |
185 JSONArray jsarr(&jsobj, "pauseBreakpoints"); | 194 JSONArray jsarr(&jsobj, "pauseBreakpoints"); |
186 // TODO(rmacnak): If we are paused at more than one breakpoint, | 195 // TODO(rmacnak): If we are paused at more than one breakpoint, |
187 // provide it here. | 196 // provide it here. |
188 if (breakpoint() != NULL) { | 197 if (breakpoint() != NULL) { |
189 jsarr.AddValue(breakpoint()); | 198 jsarr.AddValue(breakpoint()); |
190 } | 199 } |
191 } else { | 200 } else { |
192 if (breakpoint() != NULL) { | 201 if (breakpoint() != NULL) { |
193 jsobj.AddProperty("breakpoint", breakpoint()); | 202 jsobj.AddProperty("breakpoint", breakpoint()); |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
242 if (kind() == kVMUpdate) { | 251 if (kind() == kVMUpdate) { |
243 jsobj->AddPropertyVM("vm"); | 252 jsobj->AddPropertyVM("vm"); |
244 } else { | 253 } else { |
245 jsobj->AddProperty("isolate", isolate()); | 254 jsobj->AddProperty("isolate", isolate()); |
246 } | 255 } |
247 ASSERT(timestamp_ != -1); | 256 ASSERT(timestamp_ != -1); |
248 jsobj->AddPropertyTimeMillis("timestamp", timestamp_); | 257 jsobj->AddPropertyTimeMillis("timestamp", timestamp_); |
249 } | 258 } |
250 | 259 |
251 } // namespace dart | 260 } // namespace dart |
OLD | NEW |