| Index: vm/debugger_api_impl.cc
|
| ===================================================================
|
| --- vm/debugger_api_impl.cc (revision 13083)
|
| +++ vm/debugger_api_impl.cc (working copy)
|
| @@ -102,18 +102,17 @@
|
|
|
| DART_EXPORT void Dart_SetBreakpointHandler(
|
| Dart_BreakpointHandler bp_handler) {
|
| - Isolate* isolate = Isolate::Current();
|
| - DARTSCOPE(isolate);
|
| BreakpointHandler* handler =
|
| reinterpret_cast<BreakpointHandler*>(bp_handler);
|
| -
|
| - isolate->debugger()->SetBreakpointHandler(handler);
|
| + Debugger::SetBreakpointHandler(handler);
|
| }
|
|
|
|
|
| static Dart_BreakpointResolvedHandler* bp_resolved_handler = NULL;
|
| static Dart_ExceptionThrownHandler* exc_thrown_handler = NULL;
|
| +static Dart_IsolateEventHandler* isolate_event_handler = NULL;
|
|
|
| +
|
| static void DebuggerEventHandler(Debugger::DebuggerEvent* event) {
|
| Isolate* isolate = Isolate::Current();
|
| ASSERT(isolate != NULL);
|
| @@ -133,6 +132,12 @@
|
| Dart_StackTrace trace =
|
| reinterpret_cast<Dart_StackTrace>(isolate->debugger()->StackTrace());
|
| (*exc_thrown_handler)(exception, trace);
|
| + } else if (event->type == Debugger::kIsolateCreated) {
|
| + (*isolate_event_handler)(Api::CastIsolate(event->isolate), kCreated);
|
| + } else if (event->type == Debugger::kIsolateInterrupted) {
|
| + (*isolate_event_handler)(Api::CastIsolate(event->isolate), kInterrupted);
|
| + } else if (event->type == Debugger::kIsolateShutdown) {
|
| + (*isolate_event_handler)(Api::CastIsolate(event->isolate), kShutdown);
|
| } else {
|
| UNIMPLEMENTED();
|
| }
|
| @@ -142,21 +147,23 @@
|
| DART_EXPORT void Dart_SetBreakpointResolvedHandler(
|
| Dart_BreakpointResolvedHandler handler) {
|
| bp_resolved_handler = handler;
|
| - Isolate* isolate = Isolate::Current();
|
| - DARTSCOPE(isolate);
|
| - isolate->debugger()->SetEventHandler(DebuggerEventHandler);
|
| + Debugger::SetEventHandler(DebuggerEventHandler);
|
| }
|
|
|
|
|
| DART_EXPORT void Dart_SetExceptionThrownHandler(
|
| Dart_ExceptionThrownHandler handler) {
|
| exc_thrown_handler = handler;
|
| - Isolate* isolate = Isolate::Current();
|
| - DARTSCOPE(isolate);
|
| - isolate->debugger()->SetEventHandler(DebuggerEventHandler);
|
| + Debugger::SetEventHandler(DebuggerEventHandler);
|
| }
|
|
|
|
|
| +DART_EXPORT void Dart_SetIsolateEventHandler(Dart_IsolateEventHandler handler) {
|
| + isolate_event_handler = handler;
|
| + Debugger::SetEventHandler(DebuggerEventHandler);
|
| +}
|
| +
|
| +
|
| DART_EXPORT Dart_Handle Dart_SetExceptionPauseInfo(
|
| Dart_ExceptionPauseInfo pause_info) {
|
| Isolate* isolate = Isolate::Current();
|
|
|