| Index: include/v8-debug.h
|
| diff --git a/include/v8-debug.h b/include/v8-debug.h
|
| index 10b41e2368f34f8e87f2c5ee41cbb8231f2387bf..ff3182ca989a699b3d3f358aa3b582501c4d816e 100644
|
| --- a/include/v8-debug.h
|
| +++ b/include/v8-debug.h
|
| @@ -263,6 +263,43 @@ class EXPORT Debug {
|
| */
|
| static bool EnableAgent(const char* name, int port,
|
| bool wait_for_connection = false);
|
| +
|
| + /**
|
| + * Makes V8 process all pending debug messages.
|
| + *
|
| + * From V8 point of view all debug messages come asynchronously (e.g. from
|
| + * remote debugger) but they all must be handled synchronously: V8 cannot
|
| + * do 2 things at one time so normal script execution must be interrupted
|
| + * for a while.
|
| + *
|
| + * Generally when message arrives V8 may be in one of 3 states:
|
| + * 1. V8 is running script; V8 will automatically interrupt and process all
|
| + * pending messages (however auto_break flag should be enabled);
|
| + * 2. V8 is suspended on debug breakpoint; in this state V8 is dedicated
|
| + * to reading and processing debug messages;
|
| + * 3. V8 is not running at all or has called some long-working C++ function;
|
| + * by default it means that processing of all debug message will be deferred
|
| + * until V8 gets control again; however, embedding application may improve
|
| + * this by manually calling this method.
|
| + *
|
| + * It makes sense to call this method whenever a new debug message arrived and
|
| + * V8 is not already running. Method v8::Debug::SetDebugMessageDispatchHandler
|
| + * should help with the former condition.
|
| + *
|
| + * Technically this method in many senses is equivalent to executing empty
|
| + * script:
|
| + * 1. It does nothing except for processing all pending debug messages.
|
| + * 2. It should be invoked with the same precautions and from the same context
|
| + * as V8 script would be invoked from, because:
|
| + * a. with "evaluate" command it can do whatever normal script can do,
|
| + * including all native calls;
|
| + * b. no other thread should call V8 while this method is running
|
| + * (v8::Locker may be used here).
|
| + *
|
| + * "Evaluate" debug command behavior currently is not specified in scope
|
| + * of this method.
|
| + */
|
| + static void ProcessDebugMessages();
|
| };
|
|
|
|
|
|
|