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

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

Issue 17846009: Better single stepping in VM debugger (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 5 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/code_generator.cc ('k') | runtime/vm/debugger.h » ('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) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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/dart_entry.h" 5 #include "vm/dart_entry.h"
6 6
7 #include "vm/code_generator.h" 7 #include "vm/code_generator.h"
8 #include "vm/compiler.h" 8 #include "vm/compiler.h"
9 #include "vm/debugger.h"
9 #include "vm/object_store.h" 10 #include "vm/object_store.h"
10 #include "vm/resolver.h" 11 #include "vm/resolver.h"
11 #include "vm/simulator.h" 12 #include "vm/simulator.h"
12 #include "vm/stub_code.h" 13 #include "vm/stub_code.h"
13 #include "vm/symbols.h" 14 #include "vm/symbols.h"
14 15
15 namespace dart { 16 namespace dart {
16 17
17 // A cache of VM heap allocated arguments descriptors. 18 // A cache of VM heap allocated arguments descriptors.
18 RawArray* ArgumentsDescriptor::cached_args_descriptors_[kCachedDescriptorCount]; 19 RawArray* ArgumentsDescriptor::cached_args_descriptors_[kCachedDescriptorCount];
(...skipping 395 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 function_name, 415 function_name,
415 kNumArguments, 416 kNumArguments,
416 Object::empty_array(), 417 Object::empty_array(),
417 Resolver::kIsQualified); 418 Resolver::kIsQualified);
418 isolate->object_store()->set_handle_message_function(function); 419 isolate->object_store()->set_handle_message_function(function);
419 } 420 }
420 const Array& args = Array::Handle(isolate, Array::New(kNumArguments)); 421 const Array& args = Array::Handle(isolate, Array::New(kNumArguments));
421 args.SetAt(0, receive_port); 422 args.SetAt(0, receive_port);
422 args.SetAt(1, Integer::Handle(isolate, Integer::New(reply_port_id))); 423 args.SetAt(1, Integer::Handle(isolate, Integer::New(reply_port_id)));
423 args.SetAt(2, message); 424 args.SetAt(2, message);
425 if (isolate->debugger()->IsStepping()) {
426 // If the isolate is being debugged and the debugger was stepping
427 // through code, enable single stepping so debugger will stop
428 // at the first location the user is interested in.
429 isolate->debugger()->SetSingleStep();
430 }
424 const Object& result = 431 const Object& result =
425 Object::Handle(isolate, DartEntry::InvokeFunction(function, args)); 432 Object::Handle(isolate, DartEntry::InvokeFunction(function, args));
426 ASSERT(result.IsNull() || result.IsError()); 433 ASSERT(result.IsNull() || result.IsError());
427 return result.raw(); 434 return result.raw();
428 } 435 }
429 436
430 437
431 RawObject* DartLibraryCalls::NewSendPort(intptr_t port_id) { 438 RawObject* DartLibraryCalls::NewSendPort(intptr_t port_id) {
432 Library& isolate_lib = Library::Handle(Library::IsolateLibrary()); 439 Library& isolate_lib = Library::Handle(Library::IsolateLibrary());
433 ASSERT(!isolate_lib.IsNull()); 440 ASSERT(!isolate_lib.IsNull());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 String::Handle(Field::GetterName(Symbols::_id())))); 484 String::Handle(Field::GetterName(Symbols::_id()))));
478 const Function& func = Function::Handle(cls.LookupDynamicFunction(func_name)); 485 const Function& func = Function::Handle(cls.LookupDynamicFunction(func_name));
479 ASSERT(!func.IsNull()); 486 ASSERT(!func.IsNull());
480 const Array& args = Array::Handle(Array::New(1)); 487 const Array& args = Array::Handle(Array::New(1));
481 args.SetAt(0, port); 488 args.SetAt(0, port);
482 return DartEntry::InvokeFunction(func, args); 489 return DartEntry::InvokeFunction(func, args);
483 } 490 }
484 491
485 492
486 } // namespace dart 493 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/code_generator.cc ('k') | runtime/vm/debugger.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698