Index: src/d8-debug.h |
diff --git a/src/d8-debug.h b/src/d8-debug.h |
index c211be7590feca67ff9547ebca99843a80a2b6c4..ab274e9069642f6445ba6fd201646232f16ec263 100644 |
--- a/src/d8-debug.h |
+++ b/src/d8-debug.h |
@@ -8,125 +8,12 @@ |
#include "d8.h" |
#include "debug.h" |
-#include "platform/socket.h" |
namespace v8 { |
- |
void HandleDebugEvent(const Debug::EventDetails& event_details); |
-// Start the remove debugger connecting to a V8 debugger agent on the specified |
-// port. |
-void RunRemoteDebugger(Isolate* isolate, int port); |
- |
-// Forward declerations. |
-class RemoteDebuggerEvent; |
-class ReceiverThread; |
- |
- |
-// Remote debugging class. |
-class RemoteDebugger { |
- public: |
- explicit RemoteDebugger(Isolate* isolate, int port) |
- : isolate_(isolate), |
- port_(port), |
- event_available_(0), |
- head_(NULL), tail_(NULL) {} |
- void Run(); |
- |
- // Handle events from the subordinate threads. |
- void MessageReceived(i::SmartArrayPointer<char> message); |
- void KeyboardCommand(i::SmartArrayPointer<char> command); |
- void ConnectionClosed(); |
- |
- private: |
- // Add new debugger event to the list. |
- void AddEvent(RemoteDebuggerEvent* event); |
- // Read next debugger event from the list. |
- RemoteDebuggerEvent* GetEvent(); |
- |
- // Handle a message from the debugged V8. |
- void HandleMessageReceived(char* message); |
- // Handle a keyboard command. |
- void HandleKeyboardCommand(char* command); |
- |
- // Get connection to agent in debugged V8. |
- i::Socket* conn() { return conn_; } |
- |
- Isolate* isolate_; |
- int port_; // Port used to connect to debugger V8. |
- i::Socket* conn_; // Connection to debugger agent in debugged V8. |
- |
- // Linked list of events from debugged V8 and from keyboard input. Access to |
- // the list is guarded by a mutex and a semaphore signals new items in the |
- // list. |
- i::Mutex event_access_; |
- i::Semaphore event_available_; |
- RemoteDebuggerEvent* head_; |
- RemoteDebuggerEvent* tail_; |
- |
- friend class ReceiverThread; |
-}; |
- |
- |
-// Thread reading from debugged V8 instance. |
-class ReceiverThread: public i::Thread { |
- public: |
- explicit ReceiverThread(RemoteDebugger* remote_debugger) |
- : Thread("d8:ReceiverThrd"), |
- remote_debugger_(remote_debugger) {} |
- ~ReceiverThread() {} |
- |
- void Run(); |
- |
- private: |
- RemoteDebugger* remote_debugger_; |
-}; |
- |
- |
-// Thread reading keyboard input. |
-class KeyboardThread: public i::Thread { |
- public: |
- explicit KeyboardThread(RemoteDebugger* remote_debugger) |
- : Thread("d8:KeyboardThrd"), |
- remote_debugger_(remote_debugger) {} |
- ~KeyboardThread() {} |
- |
- void Run(); |
- |
- private: |
- RemoteDebugger* remote_debugger_; |
-}; |
- |
- |
-// Events processed by the main deubgger thread. |
-class RemoteDebuggerEvent { |
- public: |
- RemoteDebuggerEvent(int type, i::SmartArrayPointer<char> data) |
- : type_(type), data_(data), next_(NULL) { |
- ASSERT(type == kMessage || type == kKeyboard || type == kDisconnect); |
- } |
- |
- static const int kMessage = 1; |
- static const int kKeyboard = 2; |
- static const int kDisconnect = 3; |
- |
- int type() { return type_; } |
- char* data() { return data_.get(); } |
- |
- private: |
- void set_next(RemoteDebuggerEvent* event) { next_ = event; } |
- RemoteDebuggerEvent* next() { return next_; } |
- |
- int type_; |
- i::SmartArrayPointer<char> data_; |
- RemoteDebuggerEvent* next_; |
- |
- friend class RemoteDebugger; |
-}; |
- |
- |
} // namespace v8 |