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

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

Issue 1644793002: Replace intptr_t with TokenDescriptor (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 years, 10 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
« no previous file with comments | « runtime/vm/debugger.cc ('k') | runtime/vm/deopt_instructions.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_tools_api.h" 5 #include "include/dart_tools_api.h"
6 6
7 #include "vm/class_finalizer.h" 7 #include "vm/class_finalizer.h"
8 #include "vm/compiler.h" 8 #include "vm/compiler.h"
9 #include "vm/dart_api_impl.h" 9 #include "vm/dart_api_impl.h"
10 #include "vm/dart_api_state.h" 10 #include "vm/dart_api_state.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 ASSERT(isolate != NULL); 115 ASSERT(isolate != NULL);
116 Dart_EnterScope(); 116 Dart_EnterScope();
117 Dart_IsolateId isolate_id = isolate->debugger()->GetIsolateId(); 117 Dart_IsolateId isolate_id = isolate->debugger()->GetIsolateId();
118 if (event->type() == DebuggerEvent::kBreakpointReached) { 118 if (event->type() == DebuggerEvent::kBreakpointReached) {
119 if (paused_event_handler != NULL) { 119 if (paused_event_handler != NULL) {
120 Dart_CodeLocation location; 120 Dart_CodeLocation location;
121 ActivationFrame* top_frame = event->top_frame(); 121 ActivationFrame* top_frame = event->top_frame();
122 location.script_url = Api::NewHandle(thread, top_frame->SourceUrl()); 122 location.script_url = Api::NewHandle(thread, top_frame->SourceUrl());
123 const Library& lib = Library::Handle(top_frame->Library()); 123 const Library& lib = Library::Handle(top_frame->Library());
124 location.library_id = lib.index(); 124 location.library_id = lib.index();
125 location.token_pos = top_frame->TokenPos(); 125 location.token_pos = top_frame->TokenPos().Pos();
126 intptr_t bp_id = 0; 126 intptr_t bp_id = 0;
127 if (event->breakpoint() != NULL) { 127 if (event->breakpoint() != NULL) {
128 ASSERT(event->breakpoint()->id() != ILLEGAL_BREAKPOINT_ID); 128 ASSERT(event->breakpoint()->id() != ILLEGAL_BREAKPOINT_ID);
129 bp_id = event->breakpoint()->id(); 129 bp_id = event->breakpoint()->id();
130 } 130 }
131 (*paused_event_handler)(isolate_id, bp_id, location); 131 (*paused_event_handler)(isolate_id, bp_id, location);
132 } 132 }
133 } else if (event->type() == DebuggerEvent::kBreakpointResolved) { 133 } else if (event->type() == DebuggerEvent::kBreakpointResolved) {
134 if (bp_resolved_handler != NULL) { 134 if (bp_resolved_handler != NULL) {
135 Breakpoint* bpt = event->breakpoint(); 135 Breakpoint* bpt = event->breakpoint();
136 ASSERT(bpt != NULL); 136 ASSERT(bpt != NULL);
137 Dart_CodeLocation location; 137 Dart_CodeLocation location;
138 Zone* zone = thread->zone(); 138 Zone* zone = thread->zone();
139 Library& library = Library::Handle(zone); 139 Library& library = Library::Handle(zone);
140 Script& script = Script::Handle(zone); 140 Script& script = Script::Handle(zone);
141 intptr_t token_pos; 141 TokenPosition token_pos;
142 bpt->bpt_location()->GetCodeLocation(&library, &script, &token_pos); 142 bpt->bpt_location()->GetCodeLocation(&library, &script, &token_pos);
143 location.script_url = Api::NewHandle(thread, script.url()); 143 location.script_url = Api::NewHandle(thread, script.url());
144 location.library_id = library.index(); 144 location.library_id = library.index();
145 location.token_pos = token_pos; 145 location.token_pos = token_pos.Pos();
146 (*bp_resolved_handler)(isolate_id, bpt->id(), location); 146 (*bp_resolved_handler)(isolate_id, bpt->id(), location);
147 } 147 }
148 } else if (event->type() == DebuggerEvent::kExceptionThrown) { 148 } else if (event->type() == DebuggerEvent::kExceptionThrown) {
149 if (exc_thrown_handler != NULL) { 149 if (exc_thrown_handler != NULL) {
150 Dart_Handle exception = 150 Dart_Handle exception =
151 Api::NewHandle(thread, event->exception()->raw()); 151 Api::NewHandle(thread, event->exception()->raw());
152 Dart_StackTrace trace = 152 Dart_StackTrace trace =
153 reinterpret_cast<Dart_StackTrace>(isolate->debugger()->StackTrace()); 153 reinterpret_cast<Dart_StackTrace>(isolate->debugger()->StackTrace());
154 (*exc_thrown_handler)(isolate_id, exception, trace); 154 (*exc_thrown_handler)(isolate_id, exception, trace);
155 } 155 }
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 *function_name = Api::NewHandle(T, frame->QualifiedFunctionName()); 285 *function_name = Api::NewHandle(T, frame->QualifiedFunctionName());
286 } 286 }
287 if (function != NULL) { 287 if (function != NULL) {
288 *function = Api::NewHandle(T, frame->function().raw()); 288 *function = Api::NewHandle(T, frame->function().raw());
289 } 289 }
290 290
291 if (location != NULL) { 291 if (location != NULL) {
292 location->script_url = Api::NewHandle(T, frame->SourceUrl()); 292 location->script_url = Api::NewHandle(T, frame->SourceUrl());
293 const Library& lib = Library::Handle(Z, frame->Library()); 293 const Library& lib = Library::Handle(Z, frame->Library());
294 location->library_id = lib.index(); 294 location->library_id = lib.index();
295 location->token_pos = frame->TokenPos(); 295 location->token_pos = frame->TokenPos().Pos();
296 } 296 }
297 return Api::Success(); 297 return Api::Success();
298 } 298 }
299 299
300 DART_EXPORT Dart_Handle Dart_ActivationFrameGetFramePointer( 300 DART_EXPORT Dart_Handle Dart_ActivationFrameGetFramePointer(
301 Dart_ActivationFrame activation_frame, 301 Dart_ActivationFrame activation_frame,
302 uintptr_t* frame_pointer) { 302 uintptr_t* frame_pointer) {
303 DARTSCOPE(Thread::Current()); 303 DARTSCOPE(Thread::Current());
304 CHECK_AND_CAST(ActivationFrame, frame, activation_frame); 304 CHECK_AND_CAST(ActivationFrame, frame, activation_frame);
305 305
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after
645 super_type_args_array = TypeArguments::New(num_expected_type_arguments); 645 super_type_args_array = TypeArguments::New(num_expected_type_arguments);
646 AbstractType& type_arg = AbstractType::Handle(); 646 AbstractType& type_arg = AbstractType::Handle();
647 for (intptr_t i = 0; i < num_expected_type_arguments; i++) { 647 for (intptr_t i = 0; i < num_expected_type_arguments; i++) {
648 type_arg ^= type_args_array.TypeAt(i); 648 type_arg ^= type_args_array.TypeAt(i);
649 super_type_args_array.SetTypeAt(i, type_arg); 649 super_type_args_array.SetTypeAt(i, type_arg);
650 } 650 }
651 } 651 }
652 652
653 // Construct the super type object, canonicalize it and return. 653 // Construct the super type object, canonicalize it and return.
654 Type& instantiated_type = Type::Handle( 654 Type& instantiated_type = Type::Handle(
655 Type::New(super_cls, super_type_args_array, Token::kNoSourcePos)); 655 Type::New(super_cls, super_type_args_array, TokenPosition::kNoSource));
656 ASSERT(!instantiated_type.IsNull()); 656 ASSERT(!instantiated_type.IsNull());
657 instantiated_type.SetIsFinalized(); 657 instantiated_type.SetIsFinalized();
658 return Api::NewHandle(T, instantiated_type.Canonicalize()); 658 return Api::NewHandle(T, instantiated_type.Canonicalize());
659 } 659 }
660 660
661 661
662 DART_EXPORT Dart_Handle Dart_GetClosureInfo( 662 DART_EXPORT Dart_Handle Dart_GetClosureInfo(
663 Dart_Handle closure, 663 Dart_Handle closure,
664 Dart_Handle* name, 664 Dart_Handle* name,
665 Dart_Handle* signature, 665 Dart_Handle* signature,
666 Dart_CodeLocation* location) { 666 Dart_CodeLocation* location) {
667 DARTSCOPE(Thread::Current()); 667 DARTSCOPE(Thread::Current());
668 UNWRAP_AND_CHECK_PARAM(Instance, instance, closure); 668 UNWRAP_AND_CHECK_PARAM(Instance, instance, closure);
669 CHECK_NOT_NULL(location); 669 CHECK_NOT_NULL(location);
670 670
671 if (!instance.IsClosure()) { 671 if (!instance.IsClosure()) {
672 return Api::NewError("%s: parameter 0 is not a closure", CURRENT_FUNC); 672 return Api::NewError("%s: parameter 0 is not a closure", CURRENT_FUNC);
673 } 673 }
674 const Function& func = Function::Handle(Closure::Cast(instance).function()); 674 const Function& func = Function::Handle(Closure::Cast(instance).function());
675 ASSERT(!func.IsNull()); 675 ASSERT(!func.IsNull());
676 if (name != NULL) { 676 if (name != NULL) {
677 *name = Api::NewHandle(T, func.QualifiedUserVisibleName()); 677 *name = Api::NewHandle(T, func.QualifiedUserVisibleName());
678 } 678 }
679 if (signature != NULL) { 679 if (signature != NULL) {
680 *signature = Api::NewHandle(T, func.UserVisibleSignature()); 680 *signature = Api::NewHandle(T, func.UserVisibleSignature());
681 } 681 }
682 682
683 if (location != NULL) { 683 if (location != NULL) {
684 if (func.token_pos() >= 0) { 684 if (func.token_pos().IsReal()) {
685 const Class& cls = Class::Handle(Z, func.origin()); 685 const Class& cls = Class::Handle(Z, func.origin());
686 ASSERT(!cls.IsNull()); 686 ASSERT(!cls.IsNull());
687 const Library& lib = Library::Handle(Z, cls.library()); 687 const Library& lib = Library::Handle(Z, cls.library());
688 ASSERT(!lib.IsNull()); 688 ASSERT(!lib.IsNull());
689 // Note func.script() is not the same as cls.script() for eval functions. 689 // Note func.script() is not the same as cls.script() for eval functions.
690 const Script& script = Script::Handle(Z, func.script()); 690 const Script& script = Script::Handle(Z, func.script());
691 ASSERT(!script.IsNull()); 691 ASSERT(!script.IsNull());
692 location->script_url = Api::NewHandle(T, script.url()); 692 location->script_url = Api::NewHandle(T, script.url());
693 location->library_id = lib.index(); 693 location->library_id = lib.index();
694 location->token_pos = func.token_pos(); 694 location->token_pos = func.token_pos().Pos();
695 } else { 695 } else {
696 location->script_url = Api::NewHandle(T, String::null()); 696 location->script_url = Api::NewHandle(T, String::null());
697 location->library_id = -1; 697 location->library_id = -1;
698 location->token_pos = -1; 698 location->token_pos = -1;
699 } 699 }
700 } 700 }
701 return Api::True(); 701 return Api::True();
702 } 702 }
703 703
704 704
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
954 return Api::CastIsolate(isolate); 954 return Api::CastIsolate(isolate);
955 } 955 }
956 956
957 957
958 DART_EXPORT Dart_IsolateId Dart_GetIsolateId(Dart_Isolate dart_isolate) { 958 DART_EXPORT Dart_IsolateId Dart_GetIsolateId(Dart_Isolate dart_isolate) {
959 Isolate* isolate = reinterpret_cast<Isolate*>(dart_isolate); 959 Isolate* isolate = reinterpret_cast<Isolate*>(dart_isolate);
960 return isolate->debugger()->GetIsolateId(); 960 return isolate->debugger()->GetIsolateId();
961 } 961 }
962 962
963 } // namespace dart 963 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/debugger.cc ('k') | runtime/vm/deopt_instructions.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698