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

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

Issue 369023002: Fix debugging module(replace int with intptr_t) so it works on Windows x64. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 6 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/bin/dbg_connection_win.cc ('k') | runtime/bin/dbg_message.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 #ifndef BIN_DBG_MESSAGE_H_ 5 #ifndef BIN_DBG_MESSAGE_H_
6 #define BIN_DBG_MESSAGE_H_ 6 #define BIN_DBG_MESSAGE_H_
7 7
8 #include "bin/builtin.h" 8 #include "bin/builtin.h"
9 #include "bin/utils.h" 9 #include "bin/utils.h"
10 10
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 int buf_length_; 56 int buf_length_;
57 57
58 DISALLOW_COPY_AND_ASSIGN(MessageParser); 58 DISALLOW_COPY_AND_ASSIGN(MessageParser);
59 }; 59 };
60 60
61 61
62 // Class which represents a debug command message and handles it. 62 // Class which represents a debug command message and handles it.
63 class DbgMessage { 63 class DbgMessage {
64 public: 64 public:
65 DbgMessage(int32_t cmd_idx, const char* start, 65 DbgMessage(int32_t cmd_idx, const char* start,
66 const char* end, int debug_fd) 66 const char* end, intptr_t debug_fd)
67 : next_(NULL), cmd_idx_(cmd_idx), 67 : next_(NULL), cmd_idx_(cmd_idx),
68 buffer_(NULL), buffer_len_(end - start), 68 buffer_(NULL), buffer_len_(end - start),
69 debug_fd_(debug_fd) { 69 debug_fd_(debug_fd) {
70 buffer_ = reinterpret_cast<char*>(malloc(buffer_len_)); 70 buffer_ = reinterpret_cast<char*>(malloc(buffer_len_));
71 ASSERT(buffer_ != NULL); 71 ASSERT(buffer_ != NULL);
72 memmove(buffer_, start, buffer_len_); 72 memmove(buffer_, start, buffer_len_);
73 } 73 }
74 ~DbgMessage() { 74 ~DbgMessage() {
75 next_ = NULL; 75 next_ = NULL;
76 free(buffer_); 76 free(buffer_);
77 } 77 }
78 78
79 // Accessors. 79 // Accessors.
80 DbgMessage* next() const { return next_; } 80 DbgMessage* next() const { return next_; }
81 void set_next(DbgMessage* next) { next_ = next; } 81 void set_next(DbgMessage* next) { next_ = next; }
82 char* buffer() const { return buffer_; } 82 char* buffer() const { return buffer_; }
83 int32_t buffer_len() const { return buffer_len_; } 83 int32_t buffer_len() const { return buffer_len_; }
84 int debug_fd() const { return debug_fd_; } 84 intptr_t debug_fd() const { return debug_fd_; }
85 85
86 // Handle debugger command message. 86 // Handle debugger command message.
87 // Returns true if the execution needs to resume after this message is 87 // Returns true if the execution needs to resume after this message is
88 // handled, false otherwise. 88 // handled, false otherwise.
89 bool HandleMessage(); 89 bool HandleMessage();
90 90
91 // Send reply after successful handling of command. 91 // Send reply after successful handling of command.
92 void SendReply(dart::TextBuffer* msg); 92 void SendReply(dart::TextBuffer* msg);
93 93
94 // Reply error returned by the command handler. 94 // Reply error returned by the command handler.
(...skipping 19 matching lines...) Expand all
114 static bool HandleGetStackTraceCmd(DbgMessage* msg); 114 static bool HandleGetStackTraceCmd(DbgMessage* msg);
115 static bool HandlePauseOnExcCmd(DbgMessage* msg); 115 static bool HandlePauseOnExcCmd(DbgMessage* msg);
116 static bool HandleSetBpCmd(DbgMessage* msg); 116 static bool HandleSetBpCmd(DbgMessage* msg);
117 static bool HandleRemBpCmd(DbgMessage* msg); 117 static bool HandleRemBpCmd(DbgMessage* msg);
118 118
119 private: 119 private:
120 DbgMessage* next_; // Next message in the queue. 120 DbgMessage* next_; // Next message in the queue.
121 int32_t cmd_idx_; // Isolate specific debugger command index. 121 int32_t cmd_idx_; // Isolate specific debugger command index.
122 char* buffer_; // Debugger command message. 122 char* buffer_; // Debugger command message.
123 int32_t buffer_len_; // Length of the debugger command message. 123 int32_t buffer_len_; // Length of the debugger command message.
124 int debug_fd_; // Debugger connection on which replies are to be sent. 124 intptr_t debug_fd_; // Debugger connection on which replies are to be sent.
125 125
126 DISALLOW_IMPLICIT_CONSTRUCTORS(DbgMessage); 126 DISALLOW_IMPLICIT_CONSTRUCTORS(DbgMessage);
127 }; 127 };
128 128
129 129
130 // Class which represents a queue of debug command messages sent to an isolate. 130 // Class which represents a queue of debug command messages sent to an isolate.
131 class DbgMsgQueue { 131 class DbgMsgQueue {
132 public: 132 public:
133 DbgMsgQueue(Dart_IsolateId isolate_id, DbgMsgQueue* next) 133 DbgMsgQueue(Dart_IsolateId isolate_id, DbgMsgQueue* next)
134 : is_running_(true), 134 : is_running_(true),
(...skipping 18 matching lines...) Expand all
153 153
154 // Accessors. 154 // Accessors.
155 Dart_IsolateId isolate_id() const { return isolate_id_; } 155 Dart_IsolateId isolate_id() const { return isolate_id_; }
156 DbgMsgQueue* next() const { return next_; } 156 DbgMsgQueue* next() const { return next_; }
157 void set_next(DbgMsgQueue* next) { next_ = next; } 157 void set_next(DbgMsgQueue* next) { next_ = next; }
158 158
159 // Add specified debug command message to the queue. 159 // Add specified debug command message to the queue.
160 void AddMessage(int32_t cmd_idx, 160 void AddMessage(int32_t cmd_idx,
161 const char* start, 161 const char* start,
162 const char* end, 162 const char* end,
163 int debug_fd); 163 intptr_t debug_fd);
164 164
165 // Notify an isolate of a pending vmservice message. 165 // Notify an isolate of a pending vmservice message.
166 void Notify(); 166 void Notify();
167 167
168 // Run a message loop which handles messages as they arrive until 168 // Run a message loop which handles messages as they arrive until
169 // normal program execution resumes. 169 // normal program execution resumes.
170 void MessageLoop(); 170 void MessageLoop();
171 171
172 // Handle any pending debug command messages in the queue. Return 172 // Handle any pending debug command messages in the queue. Return
173 // value indicates whether a resume has been requested. 173 // value indicates whether a resume has been requested.
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 // Parses the input message and returns the command index if the message 225 // Parses the input message and returns the command index if the message
226 // contains a valid isolate specific command. 226 // contains a valid isolate specific command.
227 // It returns kInvalidCommand otherwise. 227 // It returns kInvalidCommand otherwise.
228 static int32_t LookupIsolateCommand(const char* buf, int32_t buflen); 228 static int32_t LookupIsolateCommand(const char* buf, int32_t buflen);
229 229
230 // Queue debugger message targetted for the isolate. 230 // Queue debugger message targetted for the isolate.
231 static bool AddIsolateMessage(Dart_IsolateId isolate_id, 231 static bool AddIsolateMessage(Dart_IsolateId isolate_id,
232 int32_t cmd_idx, 232 int32_t cmd_idx,
233 const char* start, 233 const char* start,
234 const char* end, 234 const char* end,
235 int debug_fd); 235 intptr_t debug_fd);
236 236
237 // Notify an isolate of a pending vmservice message. 237 // Notify an isolate of a pending vmservice message.
238 static void NotifyIsolate(Dart_Isolate isolate); 238 static void NotifyIsolate(Dart_Isolate isolate);
239 239
240 // Interrupt isolate. 240 // Interrupt isolate.
241 static bool InterruptIsolate(Dart_IsolateId isolate_id); 241 static bool InterruptIsolate(Dart_IsolateId isolate_id);
242 242
243 // Add Debugger Message Queue corresponding to the Isolate. 243 // Add Debugger Message Queue corresponding to the Isolate.
244 static DbgMsgQueue* AddIsolateMsgQueue(Dart_IsolateId isolate_id); 244 static DbgMsgQueue* AddIsolateMsgQueue(Dart_IsolateId isolate_id);
245 245
(...skipping 27 matching lines...) Expand all
273 static dart::Mutex* msg_queue_list_lock_; 273 static dart::Mutex* msg_queue_list_lock_;
274 274
275 DISALLOW_ALLOCATION(); 275 DISALLOW_ALLOCATION();
276 DISALLOW_IMPLICIT_CONSTRUCTORS(DbgMsgQueueList); 276 DISALLOW_IMPLICIT_CONSTRUCTORS(DbgMsgQueueList);
277 }; 277 };
278 278
279 } // namespace bin 279 } // namespace bin
280 } // namespace dart 280 } // namespace dart
281 281
282 #endif // BIN_DBG_MESSAGE_H_ 282 #endif // BIN_DBG_MESSAGE_H_
OLDNEW
« no previous file with comments | « runtime/bin/dbg_connection_win.cc ('k') | runtime/bin/dbg_message.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698