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

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

Issue 3004563003: Refactor Isolate name format, storage and log (Closed)
Patch Set: Make Dart_DebugName unique again Created 3 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
« no previous file with comments | « runtime/vm/message_handler.cc ('k') | runtime/vm/timeline_analysis.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) 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 896 matching lines...) Expand 10 before | Expand all | Expand 10 after
907 const char* event_type, 907 const char* event_type,
908 uint8_t* bytes, 908 uint8_t* bytes,
909 intptr_t bytes_length) { 909 intptr_t bytes_length) {
910 Thread* thread = Thread::Current(); 910 Thread* thread = Thread::Current();
911 Isolate* isolate = thread->isolate(); 911 Isolate* isolate = thread->isolate();
912 ASSERT(isolate != NULL); 912 ASSERT(isolate != NULL);
913 ASSERT(!ServiceIsolate::IsServiceIsolateDescendant(isolate)); 913 ASSERT(!ServiceIsolate::IsServiceIsolateDescendant(isolate));
914 914
915 if (FLAG_trace_service) { 915 if (FLAG_trace_service) {
916 OS::PrintErr( 916 OS::PrintErr(
917 "vm-service: Pushing ServiceEvent(isolate='%s', kind='%s'," 917 "vm-service: Pushing ServiceEvent(isolate='%s', "
918 "isolateId='" ISOLATE_SERVICE_ID_FORMAT_STRING
919 "', kind='%s',"
918 " len=%" Pd ") to stream %s\n", 920 " len=%" Pd ") to stream %s\n",
919 isolate->name(), event_type, bytes_length, stream_id); 921 isolate->name(), static_cast<int64_t>(isolate->main_port()), event_type,
922 bytes_length, stream_id);
920 } 923 }
921 924
922 bool result; 925 bool result;
923 { 926 {
924 TransitionVMToNative transition(thread); 927 TransitionVMToNative transition(thread);
925 Dart_CObject cbytes; 928 Dart_CObject cbytes;
926 cbytes.type = Dart_CObject_kExternalTypedData; 929 cbytes.type = Dart_CObject_kExternalTypedData;
927 cbytes.value.as_external_typed_data.type = Dart_TypedData_kUint8; 930 cbytes.value.as_external_typed_data.type = Dart_TypedData_kUint8;
928 cbytes.value.as_external_typed_data.length = bytes_length; 931 cbytes.value.as_external_typed_data.length = bytes_length;
929 cbytes.value.as_external_typed_data.data = bytes; 932 cbytes.value.as_external_typed_data.data = bytes;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 978
976 // Data. 979 // Data.
977 memmove(&message[offset], data, data_size); 980 memmove(&message[offset], data, data_size);
978 offset += data_size; 981 offset += data_size;
979 982
980 ASSERT(offset == total_bytes); 983 ASSERT(offset == total_bytes);
981 SendEvent(stream_id, event_type, message, total_bytes); 984 SendEvent(stream_id, event_type, message, total_bytes);
982 } 985 }
983 986
984 static void ReportPauseOnConsole(ServiceEvent* event) { 987 static void ReportPauseOnConsole(ServiceEvent* event) {
985 const char* name = event->isolate()->debugger_name(); 988 const char* name = event->isolate()->name();
989 const int64_t main_port = static_cast<int64_t>(event->isolate()->main_port());
986 switch (event->kind()) { 990 switch (event->kind()) {
987 case ServiceEvent::kPauseStart: 991 case ServiceEvent::kPauseStart:
988 OS::PrintErr( 992 OS::PrintErr("vm-service: isolate(%" Pd64
989 "vm-service: isolate '%s' has no debugger attached and is paused at " 993 ") '%s' has no debugger attached and is paused at start.",
990 "start.", 994 main_port, name);
991 name);
992 break; 995 break;
993 case ServiceEvent::kPauseExit: 996 case ServiceEvent::kPauseExit:
994 OS::PrintErr( 997 OS::PrintErr("vm-service: isolate(%" Pd64
995 "vm-service: isolate '%s' has no debugger attached and is paused at " 998 ") '%s' has no debugger attached and is paused at exit.",
996 "exit.", 999 main_port, name);
997 name);
998 break; 1000 break;
999 case ServiceEvent::kPauseException: 1001 case ServiceEvent::kPauseException:
1000 OS::PrintErr( 1002 OS::PrintErr(
1001 "vm-service: isolate '%s' has no debugger attached and is paused due " 1003 "vm-service: isolate (%" Pd64
1002 "to exception.", 1004 ") '%s' has no debugger attached and is paused due to exception.",
1003 name); 1005 main_port, name);
1004 break; 1006 break;
1005 case ServiceEvent::kPauseInterrupted: 1007 case ServiceEvent::kPauseInterrupted:
1006 OS::PrintErr( 1008 OS::PrintErr(
1007 "vm-service: isolate '%s' has no debugger attached and is paused due " 1009 "vm-service: isolate (%" Pd64
1008 "to interrupt.", 1010 ") '%s' has no debugger attached and is paused due to interrupt.",
1009 name); 1011 main_port, name);
1010 break; 1012 break;
1011 case ServiceEvent::kPauseBreakpoint: 1013 case ServiceEvent::kPauseBreakpoint:
1012 OS::PrintErr( 1014 OS::PrintErr("vm-service: isolate (%" Pd64
1013 "vm-service: isolate '%s' has no debugger attached and is paused.", 1015 ") '%s' has no debugger attached and is paused.",
1014 name); 1016 main_port, name);
1015 break; 1017 break;
1016 case ServiceEvent::kPausePostRequest: 1018 case ServiceEvent::kPausePostRequest:
1017 OS::PrintErr( 1019 OS::PrintErr("vm-service: isolate (%" Pd64
1018 "vm-service: isolate '%s' has no debugger attached and is paused " 1020 ") '%s' has no debugger attached and is paused post reload.",
1019 "post reload.", 1021 main_port, name);
1020 name);
1021 break; 1022 break;
1022 default: 1023 default:
1023 UNREACHABLE(); 1024 UNREACHABLE();
1024 break; 1025 break;
1025 } 1026 }
1026 if (!ServiceIsolate::IsRunning()) { 1027 if (!ServiceIsolate::IsRunning()) {
1027 OS::PrintErr(" Start the vm-service to debug.\n"); 1028 OS::PrintErr(" Start the vm-service to debug.\n");
1028 } else if (ServiceIsolate::server_address() == NULL) { 1029 } else if (ServiceIsolate::server_address() == NULL) {
1029 OS::PrintErr(" Connect to Observatory to debug.\n"); 1030 OS::PrintErr(" Connect to Observatory to debug.\n");
1030 } else { 1031 } else {
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
1087 stream_id_cobj.type = Dart_CObject_kString; 1088 stream_id_cobj.type = Dart_CObject_kString;
1088 stream_id_cobj.value.as_string = const_cast<char*>(stream_id); 1089 stream_id_cobj.value.as_string = const_cast<char*>(stream_id);
1089 list_values[0] = &stream_id_cobj; 1090 list_values[0] = &stream_id_cobj;
1090 1091
1091 Dart_CObject json_cobj; 1092 Dart_CObject json_cobj;
1092 json_cobj.type = Dart_CObject_kString; 1093 json_cobj.type = Dart_CObject_kString;
1093 json_cobj.value.as_string = const_cast<char*>(event->ToCString()); 1094 json_cobj.value.as_string = const_cast<char*>(event->ToCString());
1094 list_values[1] = &json_cobj; 1095 list_values[1] = &json_cobj;
1095 1096
1096 if (FLAG_trace_service) { 1097 if (FLAG_trace_service) {
1097 const char* isolate_name = "<no current isolate>";
1098 if (isolate != NULL) { 1098 if (isolate != NULL) {
1099 isolate_name = isolate->name(); 1099 OS::PrintErr(
1100 "vm-service: Pushing ServiceEvent(isolate='%s', "
1101 "isolateId='" ISOLATE_SERVICE_ID_FORMAT_STRING
1102 "', kind='%s') to stream %s\n",
1103 isolate->name(), static_cast<int64_t>(isolate->main_port()), kind,
1104 stream_id);
1105 } else {
1106 OS::PrintErr(
1107 "vm-service: Pushing ServiceEvent(isolate='<no current isolate>', "
1108 "kind='%s') to stream %s\n",
1109 kind, stream_id);
1100 } 1110 }
1101 OS::PrintErr(
1102 "vm-service: Pushing ServiceEvent(isolate='%s', kind='%s') "
1103 "to stream %s\n",
1104 isolate_name, kind, stream_id);
1105 } 1111 }
1106 1112
1107 Dart_PostCObject(ServiceIsolate::Port(), &list_cobj); 1113 Dart_PostCObject(ServiceIsolate::Port(), &list_cobj);
1108 } 1114 }
1109 1115
1110 class EmbedderServiceHandler { 1116 class EmbedderServiceHandler {
1111 public: 1117 public:
1112 explicit EmbedderServiceHandler(const char* name) 1118 explicit EmbedderServiceHandler(const char* name)
1113 : name_(NULL), callback_(NULL), user_data_(NULL), next_(NULL) { 1119 : name_(NULL), callback_(NULL), user_data_(NULL), next_(NULL) {
1114 ASSERT(name != NULL); 1120 ASSERT(name != NULL);
(...skipping 2896 matching lines...) Expand 10 before | Expand all | Expand 10 after
4011 PrintInvalidParamError(js, "libraryId"); 4017 PrintInvalidParamError(js, "libraryId");
4012 return true; 4018 return true;
4013 } 4019 }
4014 4020
4015 static const MethodParameter* set_name_params[] = { 4021 static const MethodParameter* set_name_params[] = {
4016 ISOLATE_PARAMETER, new MethodParameter("name", true), NULL, 4022 ISOLATE_PARAMETER, new MethodParameter("name", true), NULL,
4017 }; 4023 };
4018 4024
4019 static bool SetName(Thread* thread, JSONStream* js) { 4025 static bool SetName(Thread* thread, JSONStream* js) {
4020 Isolate* isolate = thread->isolate(); 4026 Isolate* isolate = thread->isolate();
4021 isolate->set_debugger_name(js->LookupParam("name")); 4027 isolate->set_name(js->LookupParam("name"));
4022 if (Service::isolate_stream.enabled()) { 4028 if (Service::isolate_stream.enabled()) {
4023 ServiceEvent event(isolate, ServiceEvent::kIsolateUpdate); 4029 ServiceEvent event(isolate, ServiceEvent::kIsolateUpdate);
4024 Service::HandleEvent(&event); 4030 Service::HandleEvent(&event);
4025 } 4031 }
4026 PrintSuccess(js); 4032 PrintSuccess(js);
4027 return true; 4033 return true;
4028 } 4034 }
4029 4035
4030 static const MethodParameter* set_vm_name_params[] = { 4036 static const MethodParameter* set_vm_name_params[] = {
4031 NO_ISOLATE_PARAMETER, new MethodParameter("name", true), NULL, 4037 NO_ISOLATE_PARAMETER, new MethodParameter("name", true), NULL,
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
4200 if (strcmp(method_name, method.name) == 0) { 4206 if (strcmp(method_name, method.name) == 0) {
4201 return &method; 4207 return &method;
4202 } 4208 }
4203 } 4209 }
4204 return NULL; 4210 return NULL;
4205 } 4211 }
4206 4212
4207 #endif // !PRODUCT 4213 #endif // !PRODUCT
4208 4214
4209 } // namespace dart 4215 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/message_handler.cc ('k') | runtime/vm/timeline_analysis.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698