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

Side by Side Diff: runtime/bin/dbg_message.cc

Issue 14298002: Deprecate old debugger breakpoint handler (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 8 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/bin/dbg_message.h ('k') | runtime/include/dart_debugger_api.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) 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 "bin/dbg_connection.h" 5 #include "bin/dbg_connection.h"
6 #include "bin/dbg_message.h" 6 #include "bin/dbg_message.h"
7 #include "bin/dartutils.h" 7 #include "bin/dartutils.h"
8 #include "bin/thread.h" 8 #include "bin/thread.h"
9 #include "bin/utils.h" 9 #include "bin/utils.h"
10 10
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after
972 972
973 973
974 void DbgMsgQueue::SendQueuedMsgs() { 974 void DbgMsgQueue::SendQueuedMsgs() {
975 if (queued_output_messages_.length() > 0) { 975 if (queued_output_messages_.length() > 0) {
976 DebuggerConnectionHandler::BroadcastMsg(&queued_output_messages_); 976 DebuggerConnectionHandler::BroadcastMsg(&queued_output_messages_);
977 queued_output_messages_.Clear(); 977 queued_output_messages_.Clear();
978 } 978 }
979 } 979 }
980 980
981 981
982 // TODO(hausner): Remove stack trace parameter once we remove the stack 982 void DbgMsgQueue::SendBreakpointEvent(const Dart_CodeLocation& location) {
983 // trace from the paused event in the wire protocol.
984 void DbgMsgQueue::SendBreakpointEvent(Dart_StackTrace trace) {
985 dart::TextBuffer msg(128); 983 dart::TextBuffer msg(128);
986 msg.Printf("{ \"event\": \"paused\", \"params\": { "); 984 msg.Printf("{ \"event\": \"paused\", \"params\": { ");
987 msg.Printf("\"reason\": \"breakpoint\", "); 985 msg.Printf("\"reason\": \"breakpoint\", ");
988 msg.Printf("\"isolateId\": %"Pd64"", isolate_id_); 986 msg.Printf("\"isolateId\": %"Pd64"", isolate_id_);
989 FormatLocationFromTrace(&msg, trace, ", "); 987 if (!Dart_IsNull(location.script_url)) {
988 ASSERT(Dart_IsString(location.script_url));
989 msg.Printf(",\"location\": { \"url\":");
990 FormatEncodedString(&msg, location.script_url);
991 msg.Printf(",\"libraryId\":%d,", location.library_id);
992 msg.Printf("\"tokenOffset\":%d}", location.token_pos);
993 }
990 msg.Printf("}}"); 994 msg.Printf("}}");
991 DebuggerConnectionHandler::BroadcastMsg(&msg); 995 DebuggerConnectionHandler::BroadcastMsg(&msg);
992 } 996 }
993 997
994 998
995 // TODO(hausner): Remove stack trace parameter once we remove the stack 999 // TODO(hausner): Remove stack trace parameter once we remove the stack
996 // trace from the paused event in the wire protocol. 1000 // trace from the paused event in the wire protocol.
997 void DbgMsgQueue::SendExceptionEvent(Dart_Handle exception, 1001 void DbgMsgQueue::SendExceptionEvent(Dart_Handle exception,
998 Dart_StackTrace stack_trace) { 1002 Dart_StackTrace stack_trace) {
999 intptr_t exception_id = Dart_CacheObject(exception); 1003 intptr_t exception_id = Dart_CacheObject(exception);
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1040 1044
1041 1045
1042 DbgMsgQueue* DbgMsgQueueList::list_ = NULL; 1046 DbgMsgQueue* DbgMsgQueueList::list_ = NULL;
1043 dart::Mutex DbgMsgQueueList::msg_queue_list_lock_; 1047 dart::Mutex DbgMsgQueueList::msg_queue_list_lock_;
1044 1048
1045 1049
1046 void DbgMsgQueueList::Initialize() { 1050 void DbgMsgQueueList::Initialize() {
1047 // Setup handlers for isolate events, breakpoints, exceptions and 1051 // Setup handlers for isolate events, breakpoints, exceptions and
1048 // delayed breakpoints. 1052 // delayed breakpoints.
1049 Dart_SetIsolateEventHandler(IsolateEventHandler); 1053 Dart_SetIsolateEventHandler(IsolateEventHandler);
1050 Dart_SetBreakpointHandler(BreakpointHandler); 1054 Dart_SetPausedEventHandler(PausedEventHandler);
1051 Dart_SetBreakpointResolvedHandler(BptResolvedHandler); 1055 Dart_SetBreakpointResolvedHandler(BptResolvedHandler);
1052 Dart_SetExceptionThrownHandler(ExceptionThrownHandler); 1056 Dart_SetExceptionThrownHandler(ExceptionThrownHandler);
1053 } 1057 }
1054 1058
1055 1059
1056 int32_t DbgMsgQueueList::LookupIsolateCommand(const char* buf, 1060 int32_t DbgMsgQueueList::LookupIsolateCommand(const char* buf,
1057 int32_t buflen) { 1061 int32_t buflen) {
1058 // Check if we have a isolate specific debugger command. 1062 // Check if we have a isolate specific debugger command.
1059 int32_t i = 0; 1063 int32_t i = 0;
1060 while (debugger_commands[i].cmd_string != NULL) { 1064 while (debugger_commands[i].cmd_string != NULL) {
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
1161 msg.Printf("\"breakpointId\": %"Pd", \"url\":", bp_id); 1165 msg.Printf("\"breakpointId\": %"Pd", \"url\":", bp_id);
1162 FormatEncodedString(&msg, url); 1166 FormatEncodedString(&msg, url);
1163 msg.Printf(",\"line\": %"Pd" }}", line_number); 1167 msg.Printf(",\"line\": %"Pd" }}", line_number);
1164 DbgMsgQueue* msg_queue = GetIsolateMsgQueue(isolate_id); 1168 DbgMsgQueue* msg_queue = GetIsolateMsgQueue(isolate_id);
1165 ASSERT(msg_queue != NULL); 1169 ASSERT(msg_queue != NULL);
1166 msg_queue->QueueOutputMsg(&msg); 1170 msg_queue->QueueOutputMsg(&msg);
1167 Dart_ExitScope(); 1171 Dart_ExitScope();
1168 } 1172 }
1169 1173
1170 1174
1171 void DbgMsgQueueList::BreakpointHandler(Dart_IsolateId isolate_id, 1175 void DbgMsgQueueList::PausedEventHandler(Dart_IsolateId isolate_id,
1172 Dart_Breakpoint bpt, 1176 const Dart_CodeLocation& loc) {
1173 Dart_StackTrace trace) {
1174 DebuggerConnectionHandler::WaitForConnection(); 1177 DebuggerConnectionHandler::WaitForConnection();
1175 Dart_EnterScope(); 1178 Dart_EnterScope();
1176 DbgMsgQueue* msg_queue = GetIsolateMsgQueue(isolate_id); 1179 DbgMsgQueue* msg_queue = GetIsolateMsgQueue(isolate_id);
1177 ASSERT(msg_queue != NULL); 1180 ASSERT(msg_queue != NULL);
1178 msg_queue->SendQueuedMsgs(); 1181 msg_queue->SendQueuedMsgs();
1179 msg_queue->SendBreakpointEvent(trace); 1182 msg_queue->SendBreakpointEvent(loc);
1180 msg_queue->HandleMessages(); 1183 msg_queue->HandleMessages();
1181 Dart_ExitScope(); 1184 Dart_ExitScope();
1182 } 1185 }
1183 1186
1184 1187
1185 void DbgMsgQueueList::ExceptionThrownHandler(Dart_IsolateId isolate_id, 1188 void DbgMsgQueueList::ExceptionThrownHandler(Dart_IsolateId isolate_id,
1186 Dart_Handle exception, 1189 Dart_Handle exception,
1187 Dart_StackTrace stack_trace) { 1190 Dart_StackTrace stack_trace) {
1188 DebuggerConnectionHandler::WaitForConnection(); 1191 DebuggerConnectionHandler::WaitForConnection();
1189 Dart_EnterScope(); 1192 Dart_EnterScope();
(...skipping 20 matching lines...) Expand all
1210 msg_queue->SendIsolateEvent(isolate_id, kind); 1213 msg_queue->SendIsolateEvent(isolate_id, kind);
1211 if (kind == kInterrupted) { 1214 if (kind == kInterrupted) {
1212 msg_queue->HandleMessages(); 1215 msg_queue->HandleMessages();
1213 } else { 1216 } else {
1214 ASSERT(kind == kShutdown); 1217 ASSERT(kind == kShutdown);
1215 RemoveIsolateMsgQueue(isolate_id); 1218 RemoveIsolateMsgQueue(isolate_id);
1216 } 1219 }
1217 } 1220 }
1218 Dart_ExitScope(); 1221 Dart_ExitScope();
1219 } 1222 }
OLDNEW
« no previous file with comments | « runtime/bin/dbg_message.h ('k') | runtime/include/dart_debugger_api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698