| OLD | NEW |
| 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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/service.h" | 5 #include "vm/service.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "include/dart_native_api.h" | 8 #include "include/dart_native_api.h" |
| 9 #include "platform/globals.h" | 9 #include "platform/globals.h" |
| 10 | 10 |
| (...skipping 2940 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2951 | 2951 |
| 2952 static const MethodParameter* resume_params[] = { | 2952 static const MethodParameter* resume_params[] = { |
| 2953 RUNNABLE_ISOLATE_PARAMETER, | 2953 RUNNABLE_ISOLATE_PARAMETER, |
| 2954 NULL, | 2954 NULL, |
| 2955 }; | 2955 }; |
| 2956 | 2956 |
| 2957 | 2957 |
| 2958 static bool Resume(Thread* thread, JSONStream* js) { | 2958 static bool Resume(Thread* thread, JSONStream* js) { |
| 2959 const char* step_param = js->LookupParam("step"); | 2959 const char* step_param = js->LookupParam("step"); |
| 2960 Isolate* isolate = thread->isolate(); | 2960 Isolate* isolate = thread->isolate(); |
| 2961 if (isolate->message_handler()->paused_on_start()) { | 2961 if (isolate->message_handler()->is_paused_on_start()) { |
| 2962 // If the user is issuing a 'Over' or an 'Out' step, that is the | 2962 // If the user is issuing a 'Over' or an 'Out' step, that is the |
| 2963 // same as a regular resume request. | 2963 // same as a regular resume request. |
| 2964 if ((step_param != NULL) && (strcmp(step_param, "Into") == 0)) { | 2964 if ((step_param != NULL) && (strcmp(step_param, "Into") == 0)) { |
| 2965 isolate->debugger()->EnterSingleStepMode(); | 2965 isolate->debugger()->EnterSingleStepMode(); |
| 2966 } | 2966 } |
| 2967 isolate->message_handler()->set_pause_on_start(false); | 2967 isolate->message_handler()->set_should_pause_on_start(false); |
| 2968 isolate->set_last_resume_timestamp(); | 2968 isolate->SetResumeRequest(); |
| 2969 if (Service::debug_stream.enabled()) { | 2969 if (Service::debug_stream.enabled()) { |
| 2970 ServiceEvent event(isolate, ServiceEvent::kResume); | 2970 ServiceEvent event(isolate, ServiceEvent::kResume); |
| 2971 Service::HandleEvent(&event); | 2971 Service::HandleEvent(&event); |
| 2972 } | 2972 } |
| 2973 PrintSuccess(js); | 2973 PrintSuccess(js); |
| 2974 return true; | 2974 return true; |
| 2975 } | 2975 } |
| 2976 if (isolate->message_handler()->paused_on_exit()) { | 2976 if (isolate->message_handler()->is_paused_on_exit()) { |
| 2977 isolate->message_handler()->set_pause_on_exit(false); | 2977 isolate->message_handler()->set_should_pause_on_exit(false); |
| 2978 isolate->SetResumeRequest(); |
| 2978 // We don't send a resume event because we will be exiting. | 2979 // We don't send a resume event because we will be exiting. |
| 2979 PrintSuccess(js); | 2980 PrintSuccess(js); |
| 2980 return true; | 2981 return true; |
| 2981 } | 2982 } |
| 2982 if (isolate->debugger()->PauseEvent() != NULL) { | 2983 if (isolate->debugger()->PauseEvent() != NULL) { |
| 2983 if (step_param != NULL) { | 2984 if (step_param != NULL) { |
| 2984 if (strcmp(step_param, "Into") == 0) { | 2985 if (strcmp(step_param, "Into") == 0) { |
| 2985 isolate->debugger()->SetSingleStep(); | 2986 isolate->debugger()->SetSingleStep(); |
| 2986 } else if (strcmp(step_param, "Over") == 0) { | 2987 } else if (strcmp(step_param, "Over") == 0) { |
| 2987 isolate->debugger()->SetStepOver(); | 2988 isolate->debugger()->SetStepOver(); |
| 2988 } else if (strcmp(step_param, "Out") == 0) { | 2989 } else if (strcmp(step_param, "Out") == 0) { |
| 2989 isolate->debugger()->SetStepOut(); | 2990 isolate->debugger()->SetStepOut(); |
| 2990 } else { | 2991 } else { |
| 2991 PrintInvalidParamError(js, "step"); | 2992 PrintInvalidParamError(js, "step"); |
| 2992 return true; | 2993 return true; |
| 2993 } | 2994 } |
| 2994 } | 2995 } |
| 2995 isolate->Resume(); | 2996 isolate->SetResumeRequest(); |
| 2996 PrintSuccess(js); | 2997 PrintSuccess(js); |
| 2997 return true; | 2998 return true; |
| 2998 } | 2999 } |
| 2999 | 3000 |
| 3000 js->PrintError(kVMMustBePaused, NULL); | 3001 js->PrintError(kVMMustBePaused, NULL); |
| 3001 return true; | 3002 return true; |
| 3002 } | 3003 } |
| 3003 | 3004 |
| 3004 | 3005 |
| 3005 static const MethodParameter* pause_params[] = { | 3006 static const MethodParameter* pause_params[] = { |
| (...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3952 const ServiceMethodDescriptor& method = service_methods_[i]; | 3953 const ServiceMethodDescriptor& method = service_methods_[i]; |
| 3953 if (strcmp(method_name, method.name) == 0) { | 3954 if (strcmp(method_name, method.name) == 0) { |
| 3954 return &method; | 3955 return &method; |
| 3955 } | 3956 } |
| 3956 } | 3957 } |
| 3957 return NULL; | 3958 return NULL; |
| 3958 } | 3959 } |
| 3959 | 3960 |
| 3960 | 3961 |
| 3961 } // namespace dart | 3962 } // namespace dart |
| OLD | NEW |