Index: src/debug.cc |
diff --git a/src/debug.cc b/src/debug.cc |
index 2c4552effeabb5ab42abea5f91d97a9c7fe99329..fbe09391e27fabe4c9934adb79463a57288565ab 100644 |
--- a/src/debug.cc |
+++ b/src/debug.cc |
@@ -2483,7 +2483,24 @@ Handle<Object> Debugger::Call(Handle<JSFunction> fun, |
} |
-bool Debugger::StartAgent(const char* name, int port) { |
+static void StubMessageHandler2(const v8::Debug::Message& message) { |
+ // Simply ignore message. |
+} |
+ |
+ |
+bool Debugger::StartAgent(const char* name, int port, |
+ bool wait_for_connection) { |
+ if (wait_for_connection) { |
+ // Suspend V8 if it is already running or set V8 to suspend whenever |
+ // it starts. |
+ // Provide stub message handler; V8 auto-continues each suspend |
+ // when there is no message handler; we doesn't need it. |
+ // Once become suspended, V8 will stay so indefinitely long, until remote |
+ // debugger connects and issues "continue" command. |
+ Debugger::message_handler_ = StubMessageHandler2; |
+ v8::Debug::DebugBreak(); |
+ } |
+ |
if (Socket::Setup()) { |
agent_ = new DebuggerAgent(name, port); |
agent_->Start(); |