OLD | NEW |
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 #ifndef VM_DEBUGGER_H_ | 5 #ifndef VM_DEBUGGER_H_ |
6 #define VM_DEBUGGER_H_ | 6 #define VM_DEBUGGER_H_ |
7 | 7 |
8 #include "include/dart_debugger_api.h" | 8 #include "include/dart_debugger_api.h" |
9 | 9 |
10 #include "vm/object.h" | 10 #include "vm/object.h" |
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 public: | 247 public: |
248 enum EventType { | 248 enum EventType { |
249 kBreakpointReached = 1, | 249 kBreakpointReached = 1, |
250 kBreakpointResolved = 2, | 250 kBreakpointResolved = 2, |
251 kExceptionThrown = 3, | 251 kExceptionThrown = 3, |
252 kIsolateCreated = 4, | 252 kIsolateCreated = 4, |
253 kIsolateShutdown = 5, | 253 kIsolateShutdown = 5, |
254 kIsolateInterrupted = 6, | 254 kIsolateInterrupted = 6, |
255 }; | 255 }; |
256 struct DebuggerEvent { | 256 struct DebuggerEvent { |
| 257 explicit DebuggerEvent(EventType event_type) |
| 258 : type(event_type) { |
| 259 top_frame = NULL; |
| 260 breakpoint = NULL; |
| 261 exception = NULL; |
| 262 isolate_id = 0; |
| 263 } |
257 EventType type; | 264 EventType type; |
258 union { | 265 // type == kBreakpointReached. |
259 ActivationFrame* top_frame; | 266 ActivationFrame* top_frame; |
260 SourceBreakpoint* breakpoint; | 267 // type == kBreakpointResolved, kBreakpointReached. |
261 const Object* exception; | 268 SourceBreakpoint* breakpoint; |
262 Dart_Port isolate_id; | 269 // type == kExceptionThrown. |
263 }; | 270 const Object* exception; |
| 271 // type == kIsolate(Created|Shutdown|Interrupted). |
| 272 Dart_Port isolate_id; |
264 }; | 273 }; |
265 typedef void EventHandler(DebuggerEvent *event); | 274 typedef void EventHandler(DebuggerEvent *event); |
266 | 275 |
267 Debugger(); | 276 Debugger(); |
268 ~Debugger(); | 277 ~Debugger(); |
269 | 278 |
270 void Initialize(Isolate* isolate); | 279 void Initialize(Isolate* isolate); |
271 void Shutdown(); | 280 void Shutdown(); |
272 | 281 |
273 void NotifyCompilation(const Function& func); | 282 void NotifyCompilation(const Function& func); |
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 const Code& code, | 393 const Code& code, |
385 const Array& deopt_frame, | 394 const Array& deopt_frame, |
386 intptr_t deopt_frame_offset, | 395 intptr_t deopt_frame_offset, |
387 ActivationFrame* callee_activation, | 396 ActivationFrame* callee_activation, |
388 const Context& entry_ctx); | 397 const Context& entry_ctx); |
389 static RawArray* DeoptimizeToArray(Isolate* isolate, | 398 static RawArray* DeoptimizeToArray(Isolate* isolate, |
390 StackFrame* frame, | 399 StackFrame* frame, |
391 const Code& code); | 400 const Code& code); |
392 static DebuggerStackTrace* CollectStackTraceNew(); | 401 static DebuggerStackTrace* CollectStackTraceNew(); |
393 void SignalBpResolved(SourceBreakpoint *bpt); | 402 void SignalBpResolved(SourceBreakpoint *bpt); |
394 void SignalPausedEvent(ActivationFrame* top_frame); | 403 void SignalPausedEvent(ActivationFrame* top_frame, |
| 404 SourceBreakpoint* bpt); |
395 | 405 |
396 intptr_t nextId() { return next_id_++; } | 406 intptr_t nextId() { return next_id_++; } |
397 | 407 |
398 bool ShouldPauseOnException(DebuggerStackTrace* stack_trace, | 408 bool ShouldPauseOnException(DebuggerStackTrace* stack_trace, |
399 const Instance& exc); | 409 const Instance& exc); |
400 | 410 |
401 void CollectLibraryFields(const GrowableObjectArray& field_list, | 411 void CollectLibraryFields(const GrowableObjectArray& field_list, |
402 const Library& lib, | 412 const Library& lib, |
403 const String& prefix, | 413 const String& prefix, |
404 bool include_private_fields); | 414 bool include_private_fields); |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
436 | 446 |
437 friend class Isolate; | 447 friend class Isolate; |
438 friend class SourceBreakpoint; | 448 friend class SourceBreakpoint; |
439 DISALLOW_COPY_AND_ASSIGN(Debugger); | 449 DISALLOW_COPY_AND_ASSIGN(Debugger); |
440 }; | 450 }; |
441 | 451 |
442 | 452 |
443 } // namespace dart | 453 } // namespace dart |
444 | 454 |
445 #endif // VM_DEBUGGER_H_ | 455 #endif // VM_DEBUGGER_H_ |
OLD | NEW |