| 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 #include "include/dart_debugger_api.h" | 5 #include "include/dart_debugger_api.h" |
| 6 | 6 |
| 7 #include "vm/class_finalizer.h" | 7 #include "vm/class_finalizer.h" |
| 8 #include "vm/compiler.h" |
| 8 #include "vm/dart_api_impl.h" | 9 #include "vm/dart_api_impl.h" |
| 9 #include "vm/dart_api_state.h" | 10 #include "vm/dart_api_state.h" |
| 10 #include "vm/debugger.h" | 11 #include "vm/debugger.h" |
| 11 #include "vm/isolate.h" | 12 #include "vm/isolate.h" |
| 12 #include "vm/object_store.h" | 13 #include "vm/object_store.h" |
| 13 #include "vm/symbols.h" | 14 #include "vm/symbols.h" |
| 14 | 15 |
| 15 namespace dart { | 16 namespace dart { |
| 16 | 17 |
| 17 #define UNWRAP_AND_CHECK_PARAM(type, var, param) \ | 18 #define UNWRAP_AND_CHECK_PARAM(type, var, param) \ |
| (...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 return Api::NewHandle(isolate, frame->GetLocalVariables()); | 283 return Api::NewHandle(isolate, frame->GetLocalVariables()); |
| 283 } | 284 } |
| 284 | 285 |
| 285 | 286 |
| 286 DART_EXPORT Dart_Handle Dart_SetBreakpoint( | 287 DART_EXPORT Dart_Handle Dart_SetBreakpoint( |
| 287 Dart_Handle script_url_in, | 288 Dart_Handle script_url_in, |
| 288 intptr_t line_number) { | 289 intptr_t line_number) { |
| 289 Isolate* isolate = Isolate::Current(); | 290 Isolate* isolate = Isolate::Current(); |
| 290 DARTSCOPE(isolate); | 291 DARTSCOPE(isolate); |
| 291 UNWRAP_AND_CHECK_PARAM(String, script_url, script_url_in); | 292 UNWRAP_AND_CHECK_PARAM(String, script_url, script_url_in); |
| 293 |
| 294 Dart_Handle state = Api::CheckIsolateState(isolate); |
| 295 if (::Dart_IsError(state)) { |
| 296 return state; |
| 297 } |
| 298 |
| 292 Debugger* debugger = isolate->debugger(); | 299 Debugger* debugger = isolate->debugger(); |
| 293 ASSERT(debugger != NULL); | 300 ASSERT(debugger != NULL); |
| 294 SourceBreakpoint* bpt = | 301 SourceBreakpoint* bpt = |
| 295 debugger->SetBreakpointAtLine(script_url, line_number); | 302 debugger->SetBreakpointAtLine(script_url, line_number); |
| 296 if (bpt == NULL) { | 303 if (bpt == NULL) { |
| 297 return Api::NewError("%s: could not set breakpoint at line %"Pd" in '%s'", | 304 return Api::NewError("%s: could not set breakpoint at line %"Pd" in '%s'", |
| 298 CURRENT_FUNC, line_number, script_url.ToCString()); | 305 CURRENT_FUNC, line_number, script_url.ToCString()); |
| 299 } | 306 } |
| 300 return Dart_NewInteger(bpt->id()); | 307 return Dart_NewInteger(bpt->id()); |
| 301 } | 308 } |
| (...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 484 DARTSCOPE(isolate); | 491 DARTSCOPE(isolate); |
| 485 const Library& lib = Library::Handle(Library::GetLibrary(library_id)); | 492 const Library& lib = Library::Handle(Library::GetLibrary(library_id)); |
| 486 if (lib.IsNull()) { | 493 if (lib.IsNull()) { |
| 487 return Api::NewError("%s: %"Pd" is not a valid library id", | 494 return Api::NewError("%s: %"Pd" is not a valid library id", |
| 488 CURRENT_FUNC, library_id); | 495 CURRENT_FUNC, library_id); |
| 489 } | 496 } |
| 490 return Api::NewHandle(isolate, isolate->debugger()->GetGlobalFields(lib)); | 497 return Api::NewHandle(isolate, isolate->debugger()->GetGlobalFields(lib)); |
| 491 } | 498 } |
| 492 | 499 |
| 493 | 500 |
| 501 DART_EXPORT Dart_Handle Dart_EvaluateExpr(Dart_Handle target, |
| 502 Dart_Handle expr_in) { |
| 503 Isolate* isolate = Isolate::Current(); |
| 504 DARTSCOPE(isolate); |
| 505 UNWRAP_AND_CHECK_PARAM(Instance, obj, target); |
| 506 UNWRAP_AND_CHECK_PARAM(String, expr, expr_in); |
| 507 return Api::NewHandle(isolate, obj.Evaluate(expr)); |
| 508 } |
| 509 |
| 510 |
| 494 DART_EXPORT Dart_Handle Dart_GetObjClass(Dart_Handle object_in) { | 511 DART_EXPORT Dart_Handle Dart_GetObjClass(Dart_Handle object_in) { |
| 495 Isolate* isolate = Isolate::Current(); | 512 Isolate* isolate = Isolate::Current(); |
| 496 DARTSCOPE(isolate); | 513 DARTSCOPE(isolate); |
| 497 UNWRAP_AND_CHECK_PARAM(Instance, obj, object_in); | 514 UNWRAP_AND_CHECK_PARAM(Instance, obj, object_in); |
| 498 return Api::NewHandle(isolate, obj.clazz()); | 515 return Api::NewHandle(isolate, obj.clazz()); |
| 499 } | 516 } |
| 500 | 517 |
| 501 | 518 |
| 502 DART_EXPORT Dart_Handle Dart_GetObjClassId(Dart_Handle object_in, | 519 DART_EXPORT Dart_Handle Dart_GetObjClassId(Dart_Handle object_in, |
| 503 intptr_t* class_id) { | 520 intptr_t* class_id) { |
| (...skipping 329 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 833 | 850 |
| 834 | 851 |
| 835 DART_EXPORT char* Dart_GetVmStatus(const char* request) { | 852 DART_EXPORT char* Dart_GetVmStatus(const char* request) { |
| 836 if (strncmp(request, "/isolate/", 9) == 0) { | 853 if (strncmp(request, "/isolate/", 9) == 0) { |
| 837 return Isolate::GetStatus(request); | 854 return Isolate::GetStatus(request); |
| 838 } | 855 } |
| 839 return NULL; | 856 return NULL; |
| 840 } | 857 } |
| 841 | 858 |
| 842 } // namespace dart | 859 } // namespace dart |
| OLD | NEW |