Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(272)

Side by Side Diff: runtime/vm/debugger_api_impl.cc

Issue 10869063: Add attributions so printf like functions can have their arguments checked. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: rebased Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « runtime/vm/debugger.cc ('k') | runtime/vm/debugger_api_impl_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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/dart_api_impl.h" 7 #include "vm/dart_api_impl.h"
8 #include "vm/dart_api_state.h" 8 #include "vm/dart_api_state.h"
9 #include "vm/debugger.h" 9 #include "vm/debugger.h"
10 #include "vm/isolate.h" 10 #include "vm/isolate.h"
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 return -1; 56 return -1;
57 } 57 }
58 return isolate->debugger()->CacheObject(obj); 58 return isolate->debugger()->CacheObject(obj);
59 } 59 }
60 60
61 61
62 DART_EXPORT Dart_Handle Dart_GetCachedObject(intptr_t obj_id) { 62 DART_EXPORT Dart_Handle Dart_GetCachedObject(intptr_t obj_id) {
63 Isolate* isolate = Isolate::Current(); 63 Isolate* isolate = Isolate::Current();
64 DARTSCOPE(isolate); 64 DARTSCOPE(isolate);
65 if (!isolate->debugger()->IsValidObjectId(obj_id)) { 65 if (!isolate->debugger()->IsValidObjectId(obj_id)) {
66 return Api::NewError("%s: object id %d is invalid", CURRENT_FUNC, obj_id); 66 return Api::NewError("%s: object id %"Pd" is invalid",
67 CURRENT_FUNC, obj_id);
67 } 68 }
68 return Api::NewHandle(isolate, isolate->debugger()->GetCachedObject(obj_id)); 69 return Api::NewHandle(isolate, isolate->debugger()->GetCachedObject(obj_id));
69 } 70 }
70 71
71 72
72 DART_EXPORT Dart_Handle Dart_StackTraceLength( 73 DART_EXPORT Dart_Handle Dart_StackTraceLength(
73 Dart_StackTrace trace, 74 Dart_StackTrace trace,
74 intptr_t* length) { 75 intptr_t* length) {
75 Isolate* isolate = Isolate::Current(); 76 Isolate* isolate = Isolate::Current();
76 DARTSCOPE(isolate); 77 DARTSCOPE(isolate);
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
213 Dart_Handle script_url_in, 214 Dart_Handle script_url_in,
214 intptr_t line_number) { 215 intptr_t line_number) {
215 Isolate* isolate = Isolate::Current(); 216 Isolate* isolate = Isolate::Current();
216 DARTSCOPE(isolate); 217 DARTSCOPE(isolate);
217 UNWRAP_AND_CHECK_PARAM(String, script_url, script_url_in); 218 UNWRAP_AND_CHECK_PARAM(String, script_url, script_url_in);
218 Debugger* debugger = isolate->debugger(); 219 Debugger* debugger = isolate->debugger();
219 ASSERT(debugger != NULL); 220 ASSERT(debugger != NULL);
220 SourceBreakpoint* bpt = 221 SourceBreakpoint* bpt =
221 debugger->SetBreakpointAtLine(script_url, line_number); 222 debugger->SetBreakpointAtLine(script_url, line_number);
222 if (bpt == NULL) { 223 if (bpt == NULL) {
223 return Api::NewError("%s: could not set breakpoint at line %d in '%s'", 224 return Api::NewError("%s: could not set breakpoint at line %"Pd" in '%s'",
224 CURRENT_FUNC, line_number, script_url.ToCString()); 225 CURRENT_FUNC, line_number, script_url.ToCString());
225 } 226 }
226 return Dart_NewInteger(bpt->id()); 227 return Dart_NewInteger(bpt->id());
227 } 228 }
228 229
229 230
230 // TODO(hausner): remove this function. 231 // TODO(hausner): remove this function.
231 DART_EXPORT Dart_Handle Dart_SetBreakpointAtLine( 232 DART_EXPORT Dart_Handle Dart_SetBreakpointAtLine(
232 Dart_Handle script_url_in, 233 Dart_Handle script_url_in,
233 Dart_Handle line_number_in, 234 Dart_Handle line_number_in,
234 Dart_Breakpoint* breakpoint) { 235 Dart_Breakpoint* breakpoint) {
235 Isolate* isolate = Isolate::Current(); 236 Isolate* isolate = Isolate::Current();
236 DARTSCOPE(isolate); 237 DARTSCOPE(isolate);
237 UNWRAP_AND_CHECK_PARAM(String, script_url, script_url_in); 238 UNWRAP_AND_CHECK_PARAM(String, script_url, script_url_in);
238 UNWRAP_AND_CHECK_PARAM(Integer, line_number, line_number_in); 239 UNWRAP_AND_CHECK_PARAM(Integer, line_number, line_number_in);
239 CHECK_NOT_NULL(breakpoint); 240 CHECK_NOT_NULL(breakpoint);
240 241
241 if (!line_number.IsSmi()) { 242 if (!line_number.IsSmi()) {
242 return Api::NewError("%s: line number out of range", CURRENT_FUNC); 243 return Api::NewError("%s: line number out of range", CURRENT_FUNC);
243 } 244 }
244 intptr_t line = line_number.AsInt64Value(); 245 intptr_t line = line_number.AsInt64Value();
245 246
246 const char* msg = CheckIsolateState(isolate); 247 const char* msg = CheckIsolateState(isolate);
247 if (msg != NULL) { 248 if (msg != NULL) {
248 return Api::NewError(msg); 249 return Api::NewError("%s", msg);
249 } 250 }
250 251
251 Dart_Handle result = Api::True(isolate); 252 Dart_Handle result = Api::True(isolate);
252 *breakpoint = NULL; 253 *breakpoint = NULL;
253 Debugger* debugger = isolate->debugger(); 254 Debugger* debugger = isolate->debugger();
254 ASSERT(debugger != NULL); 255 ASSERT(debugger != NULL);
255 SourceBreakpoint* bpt = 256 SourceBreakpoint* bpt =
256 debugger->SetBreakpointAtLine(script_url, line); 257 debugger->SetBreakpointAtLine(script_url, line);
257 if (bpt == NULL) { 258 if (bpt == NULL) {
258 result = Api::NewError("%s: could not set breakpoint at line %d of '%s'", 259 result = Api::NewError("%s: could not set breakpoint at line %"Pd" of '%s'",
259 CURRENT_FUNC, line, script_url.ToCString()); 260 CURRENT_FUNC, line, script_url.ToCString());
260 } else { 261 } else {
261 *breakpoint = reinterpret_cast<Dart_Breakpoint>(bpt); 262 *breakpoint = reinterpret_cast<Dart_Breakpoint>(bpt);
262 } 263 }
263 return result; 264 return result;
264 } 265 }
265 266
266 267
267 DART_EXPORT Dart_Handle Dart_GetBreakpointURL(intptr_t bp_id) { 268 DART_EXPORT Dart_Handle Dart_GetBreakpointURL(intptr_t bp_id) {
268 Isolate* isolate = Isolate::Current(); 269 Isolate* isolate = Isolate::Current();
269 DARTSCOPE(isolate); 270 DARTSCOPE(isolate);
270 Debugger* debugger = isolate->debugger(); 271 Debugger* debugger = isolate->debugger();
271 ASSERT(debugger != NULL); 272 ASSERT(debugger != NULL);
272 273
273 SourceBreakpoint* bpt = debugger->GetBreakpointById(bp_id); 274 SourceBreakpoint* bpt = debugger->GetBreakpointById(bp_id);
274 if (bpt == NULL) { 275 if (bpt == NULL) {
275 return Api::NewError("%s: breakpoint with id %d does not exist", 276 return Api::NewError("%s: breakpoint with id %"Pd" does not exist",
276 CURRENT_FUNC, bp_id); 277 CURRENT_FUNC, bp_id);
277 } 278 }
278 return Api::NewHandle(isolate, bpt->SourceUrl()); 279 return Api::NewHandle(isolate, bpt->SourceUrl());
279 } 280 }
280 281
281 282
282 DART_EXPORT Dart_Handle Dart_GetBreakpointLine(intptr_t bp_id) { 283 DART_EXPORT Dart_Handle Dart_GetBreakpointLine(intptr_t bp_id) {
283 Isolate* isolate = Isolate::Current(); 284 Isolate* isolate = Isolate::Current();
284 DARTSCOPE(isolate); 285 DARTSCOPE(isolate);
285 Debugger* debugger = isolate->debugger(); 286 Debugger* debugger = isolate->debugger();
286 ASSERT(debugger != NULL); 287 ASSERT(debugger != NULL);
287 288
288 SourceBreakpoint* bpt = debugger->GetBreakpointById(bp_id); 289 SourceBreakpoint* bpt = debugger->GetBreakpointById(bp_id);
289 if (bpt == NULL) { 290 if (bpt == NULL) {
290 return Api::NewError("%s: breakpoint with id %d does not exist", 291 return Api::NewError("%s: breakpoint with id %"Pd" does not exist",
291 CURRENT_FUNC, bp_id); 292 CURRENT_FUNC, bp_id);
292 } 293 }
293 return Dart_NewInteger(bpt->LineNumber()); 294 return Dart_NewInteger(bpt->LineNumber());
294 } 295 }
295 296
296 297
297 DART_EXPORT Dart_Handle Dart_SetBreakpointAtEntry( 298 DART_EXPORT Dart_Handle Dart_SetBreakpointAtEntry(
298 Dart_Handle library_in, 299 Dart_Handle library_in,
299 Dart_Handle class_name_in, 300 Dart_Handle class_name_in,
300 Dart_Handle function_name_in, 301 Dart_Handle function_name_in,
301 Dart_Breakpoint* breakpoint) { 302 Dart_Breakpoint* breakpoint) {
302 Isolate* isolate = Isolate::Current(); 303 Isolate* isolate = Isolate::Current();
303 DARTSCOPE(isolate); 304 DARTSCOPE(isolate);
304 UNWRAP_AND_CHECK_PARAM(Library, library, library_in); 305 UNWRAP_AND_CHECK_PARAM(Library, library, library_in);
305 UNWRAP_AND_CHECK_PARAM(String, class_name, class_name_in); 306 UNWRAP_AND_CHECK_PARAM(String, class_name, class_name_in);
306 UNWRAP_AND_CHECK_PARAM(String, function_name, function_name_in); 307 UNWRAP_AND_CHECK_PARAM(String, function_name, function_name_in);
307 CHECK_NOT_NULL(breakpoint); 308 CHECK_NOT_NULL(breakpoint);
308 309
309 const char* msg = CheckIsolateState(isolate); 310 const char* msg = CheckIsolateState(isolate);
310 if (msg != NULL) { 311 if (msg != NULL) {
311 return Api::NewError(msg); 312 return Api::NewError("%s", msg);
312 } 313 }
313 314
314 // Resolve the breakpoint target function. 315 // Resolve the breakpoint target function.
315 Debugger* debugger = isolate->debugger(); 316 Debugger* debugger = isolate->debugger();
316 const Function& bp_target = Function::Handle( 317 const Function& bp_target = Function::Handle(
317 debugger->ResolveFunction(library, class_name, function_name)); 318 debugger->ResolveFunction(library, class_name, function_name));
318 if (bp_target.IsNull()) { 319 if (bp_target.IsNull()) {
319 const bool toplevel = class_name.Length() == 0; 320 const bool toplevel = class_name.Length() == 0;
320 return Api::NewError("%s: could not find function '%s%s%s'", 321 return Api::NewError("%s: could not find function '%s%s%s'",
321 CURRENT_FUNC, 322 CURRENT_FUNC,
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 return Api::NewHandle(isolate, isolate->debugger()->GetStaticFields(cls)); 401 return Api::NewHandle(isolate, isolate->debugger()->GetStaticFields(cls));
401 } 402 }
402 403
403 404
404 DART_EXPORT Dart_Handle Dart_GetLibraryFields(intptr_t library_id) { 405 DART_EXPORT Dart_Handle Dart_GetLibraryFields(intptr_t library_id) {
405 Isolate* isolate = Isolate::Current(); 406 Isolate* isolate = Isolate::Current();
406 DARTSCOPE(isolate); 407 DARTSCOPE(isolate);
407 const Library& lib = 408 const Library& lib =
408 Library::Handle(isolate, Library::GetLibrary(library_id)); 409 Library::Handle(isolate, Library::GetLibrary(library_id));
409 if (lib.IsNull()) { 410 if (lib.IsNull()) {
410 return Api::NewError("%s: %d is not a valid library id", 411 return Api::NewError("%s: %"Pd" is not a valid library id",
411 CURRENT_FUNC, library_id); 412 CURRENT_FUNC, library_id);
412 } 413 }
413 return Api::NewHandle(isolate, isolate->debugger()->GetLibraryFields(lib)); 414 return Api::NewHandle(isolate, isolate->debugger()->GetLibraryFields(lib));
414 } 415 }
415 416
416 417
417 DART_EXPORT Dart_Handle Dart_GetGlobalVariables(intptr_t library_id) { 418 DART_EXPORT Dart_Handle Dart_GetGlobalVariables(intptr_t library_id) {
418 Isolate* isolate = Isolate::Current(); 419 Isolate* isolate = Isolate::Current();
419 ASSERT(isolate != NULL); 420 ASSERT(isolate != NULL);
420 DARTSCOPE(isolate); 421 DARTSCOPE(isolate);
421 const Library& lib = Library::Handle(Library::GetLibrary(library_id)); 422 const Library& lib = Library::Handle(Library::GetLibrary(library_id));
422 if (lib.IsNull()) { 423 if (lib.IsNull()) {
423 return Api::NewError("%s: %d is not a valid library id", 424 return Api::NewError("%s: %"Pd" is not a valid library id",
424 CURRENT_FUNC, library_id); 425 CURRENT_FUNC, library_id);
425 } 426 }
426 return Api::NewHandle(isolate, isolate->debugger()->GetGlobalFields(lib)); 427 return Api::NewHandle(isolate, isolate->debugger()->GetGlobalFields(lib));
427 } 428 }
428 429
429 430
430 DART_EXPORT Dart_Handle Dart_GetObjClass(Dart_Handle object_in) { 431 DART_EXPORT Dart_Handle Dart_GetObjClass(Dart_Handle object_in) {
431 Isolate* isolate = Isolate::Current(); 432 Isolate* isolate = Isolate::Current();
432 DARTSCOPE(isolate); 433 DARTSCOPE(isolate);
433 UNWRAP_AND_CHECK_PARAM(Instance, obj, object_in); 434 UNWRAP_AND_CHECK_PARAM(Instance, obj, object_in);
(...skipping 22 matching lines...) Expand all
456 457
457 DART_EXPORT Dart_Handle Dart_GetClassInfo( 458 DART_EXPORT Dart_Handle Dart_GetClassInfo(
458 intptr_t cls_id, 459 intptr_t cls_id,
459 Dart_Handle* class_name, 460 Dart_Handle* class_name,
460 intptr_t* library_id, 461 intptr_t* library_id,
461 intptr_t* super_class_id, 462 intptr_t* super_class_id,
462 Dart_Handle* static_fields) { 463 Dart_Handle* static_fields) {
463 Isolate* isolate = Isolate::Current(); 464 Isolate* isolate = Isolate::Current();
464 DARTSCOPE(isolate); 465 DARTSCOPE(isolate);
465 if (!isolate->class_table()->IsValidIndex(cls_id)) { 466 if (!isolate->class_table()->IsValidIndex(cls_id)) {
466 return Api::NewError("%s: %d is not a valid class id", 467 return Api::NewError("%s: %"Pd" is not a valid class id",
467 CURRENT_FUNC, cls_id); 468 CURRENT_FUNC, cls_id);
468 } 469 }
469 Class& cls = Class::Handle(isolate, isolate->class_table()->At(cls_id)); 470 Class& cls = Class::Handle(isolate, isolate->class_table()->At(cls_id));
470 if (class_name != NULL) { 471 if (class_name != NULL) {
471 *class_name = Api::NewHandle(isolate, cls.Name()); 472 *class_name = Api::NewHandle(isolate, cls.Name());
472 } 473 }
473 if (library_id != NULL) { 474 if (library_id != NULL) {
474 const Library& lib = Library::Handle(isolate, cls.library()); 475 const Library& lib = Library::Handle(isolate, cls.library());
475 *library_id = lib.index(); 476 *library_id = lib.index();
476 } 477 }
(...skipping 12 matching lines...) Expand all
489 } 490 }
490 491
491 492
492 DART_EXPORT Dart_Handle Dart_ScriptGetSource( 493 DART_EXPORT Dart_Handle Dart_ScriptGetSource(
493 intptr_t library_id, 494 intptr_t library_id,
494 Dart_Handle script_url_in) { 495 Dart_Handle script_url_in) {
495 Isolate* isolate = Isolate::Current(); 496 Isolate* isolate = Isolate::Current();
496 DARTSCOPE(isolate); 497 DARTSCOPE(isolate);
497 const Library& lib = Library::Handle(Library::GetLibrary(library_id)); 498 const Library& lib = Library::Handle(Library::GetLibrary(library_id));
498 if (lib.IsNull()) { 499 if (lib.IsNull()) {
499 return Api::NewError("%s: %d is not a valid library id", 500 return Api::NewError("%s: %"Pd" is not a valid library id",
500 CURRENT_FUNC, library_id); 501 CURRENT_FUNC, library_id);
501 } 502 }
502 UNWRAP_AND_CHECK_PARAM(String, script_url, script_url_in); 503 UNWRAP_AND_CHECK_PARAM(String, script_url, script_url_in);
503 const Script& script = Script::Handle(lib.LookupScript(script_url)); 504 const Script& script = Script::Handle(lib.LookupScript(script_url));
504 if (script.IsNull()) { 505 if (script.IsNull()) {
505 return Api::NewError("%s: script '%s' not found in library '%s'", 506 return Api::NewError("%s: script '%s' not found in library '%s'",
506 CURRENT_FUNC, script_url.ToCString(), 507 CURRENT_FUNC, script_url.ToCString(),
507 String::Handle(lib.url()).ToCString()); 508 String::Handle(lib.url()).ToCString());
508 } 509 }
509 return Api::NewHandle(isolate, script.Source()); 510 return Api::NewHandle(isolate, script.Source());
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 return Api::NewHandle(isolate, library_id_list.raw()); 582 return Api::NewHandle(isolate, library_id_list.raw());
582 } 583 }
583 584
584 585
585 DART_EXPORT Dart_Handle Dart_GetLibraryImports(intptr_t library_id) { 586 DART_EXPORT Dart_Handle Dart_GetLibraryImports(intptr_t library_id) {
586 Isolate* isolate = Isolate::Current(); 587 Isolate* isolate = Isolate::Current();
587 ASSERT(isolate != NULL); 588 ASSERT(isolate != NULL);
588 DARTSCOPE(isolate); 589 DARTSCOPE(isolate);
589 const Library& lib = Library::Handle(Library::GetLibrary(library_id)); 590 const Library& lib = Library::Handle(Library::GetLibrary(library_id));
590 if (lib.IsNull()) { 591 if (lib.IsNull()) {
591 return Api::NewError("%s: %d is not a valid library id", 592 return Api::NewError("%s: %"Pd" is not a valid library id",
592 CURRENT_FUNC, library_id); 593 CURRENT_FUNC, library_id);
593 } 594 }
594 const GrowableObjectArray& import_list = 595 const GrowableObjectArray& import_list =
595 GrowableObjectArray::Handle(GrowableObjectArray::New(8)); 596 GrowableObjectArray::Handle(GrowableObjectArray::New(8));
596 597
597 String& prefix_name = String::Handle(isolate); 598 String& prefix_name = String::Handle(isolate);
598 Library& imported = Library::Handle(isolate); 599 Library& imported = Library::Handle(isolate);
599 intptr_t num_imports = lib.num_imports(); 600 intptr_t num_imports = lib.num_imports();
600 for (int i = 0; i < num_imports; i++) { 601 for (int i = 0; i < num_imports; i++) {
601 import_list.Add(prefix_name); // Null prefix name means no prefix. 602 import_list.Add(prefix_name); // Null prefix name means no prefix.
(...skipping 19 matching lines...) Expand all
621 return Api::NewHandle(isolate, Array::MakeArray(import_list)); 622 return Api::NewHandle(isolate, Array::MakeArray(import_list));
622 } 623 }
623 624
624 625
625 DART_EXPORT Dart_Handle Dart_GetLibraryURL(intptr_t library_id) { 626 DART_EXPORT Dart_Handle Dart_GetLibraryURL(intptr_t library_id) {
626 Isolate* isolate = Isolate::Current(); 627 Isolate* isolate = Isolate::Current();
627 ASSERT(isolate != NULL); 628 ASSERT(isolate != NULL);
628 DARTSCOPE(isolate); 629 DARTSCOPE(isolate);
629 const Library& lib = Library::Handle(Library::GetLibrary(library_id)); 630 const Library& lib = Library::Handle(Library::GetLibrary(library_id));
630 if (lib.IsNull()) { 631 if (lib.IsNull()) {
631 return Api::NewError("%s: %d is not a valid library id", 632 return Api::NewError("%s: %"Pd" is not a valid library id",
632 CURRENT_FUNC, library_id); 633 CURRENT_FUNC, library_id);
633 } 634 }
634 return Api::NewHandle(isolate, lib.url()); 635 return Api::NewHandle(isolate, lib.url());
635 } 636 }
636 637
637 638
638 DART_EXPORT Dart_Handle Dart_GetLibraryURLs() { 639 DART_EXPORT Dart_Handle Dart_GetLibraryURLs() {
639 Isolate* isolate = Isolate::Current(); 640 Isolate* isolate = Isolate::Current();
640 ASSERT(isolate != NULL); 641 ASSERT(isolate != NULL);
641 DARTSCOPE(isolate); 642 DARTSCOPE(isolate);
(...skipping 17 matching lines...) Expand all
659 660
660 661
661 DART_EXPORT Dart_Handle Dart_GetLibraryDebuggable(intptr_t library_id, 662 DART_EXPORT Dart_Handle Dart_GetLibraryDebuggable(intptr_t library_id,
662 bool* is_debuggable) { 663 bool* is_debuggable) {
663 Isolate* isolate = Isolate::Current(); 664 Isolate* isolate = Isolate::Current();
664 ASSERT(isolate != NULL); 665 ASSERT(isolate != NULL);
665 DARTSCOPE(isolate); 666 DARTSCOPE(isolate);
666 CHECK_NOT_NULL(is_debuggable); 667 CHECK_NOT_NULL(is_debuggable);
667 const Library& lib = Library::Handle(Library::GetLibrary(library_id)); 668 const Library& lib = Library::Handle(Library::GetLibrary(library_id));
668 if (lib.IsNull()) { 669 if (lib.IsNull()) {
669 return Api::NewError("%s: %d is not a valid library id", 670 return Api::NewError("%s: %"Pd" is not a valid library id",
670 CURRENT_FUNC, library_id); 671 CURRENT_FUNC, library_id);
671 } 672 }
672 *is_debuggable = lib.IsDebuggable(); 673 *is_debuggable = lib.IsDebuggable();
673 return Api::True(isolate); 674 return Api::True(isolate);
674 } 675 }
675 676
676 677
677 DART_EXPORT Dart_Handle Dart_SetLibraryDebuggable(intptr_t library_id, 678 DART_EXPORT Dart_Handle Dart_SetLibraryDebuggable(intptr_t library_id,
678 bool is_debuggable) { 679 bool is_debuggable) {
679 Isolate* isolate = Isolate::Current(); 680 Isolate* isolate = Isolate::Current();
680 ASSERT(isolate != NULL); 681 ASSERT(isolate != NULL);
681 DARTSCOPE(isolate); 682 DARTSCOPE(isolate);
682 const Library& lib = Library::Handle(Library::GetLibrary(library_id)); 683 const Library& lib = Library::Handle(Library::GetLibrary(library_id));
683 if (lib.IsNull()) { 684 if (lib.IsNull()) {
684 return Api::NewError("%s: %d is not a valid library id", 685 return Api::NewError("%s: %"Pd" is not a valid library id",
685 CURRENT_FUNC, library_id); 686 CURRENT_FUNC, library_id);
686 } 687 }
687 lib.set_debuggable(is_debuggable); 688 lib.set_debuggable(is_debuggable);
688 return Api::True(isolate); 689 return Api::True(isolate);
689 } 690 }
690 691
691 692
692 } // namespace dart 693 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/debugger.cc ('k') | runtime/vm/debugger_api_impl_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698