Member Function Documentation

passed as second argument to the function With this call the debugger is entered and the function specified is called with the execution state as the first argument. This makes it possible to get access to information otherwise not available during normal JavaScript execution e.g. details on stack frames. Receiver of the function call will be the debugger context global object, however this is a subject to change. The following example shows a JavaScript function which when passed to v8::Debug::Call will return the current line of JavaScript execution.

Debugger is running in its own context which is entered while debugger messages are being dispatched. This is an explicit getter for this debugger context. Note that the content of the debugger context is subject to change.

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.

V8 is running script; V8 will automatically interrupt and process all pending messages;

V8 is suspended on debug breakpoint; in this state V8 is dedicated to reading and processing debug messages;

V8 is not running at all or has called some long-working C++ function; by default it means that processing of all debug messages will be deferred until V8 gets control again; however, embedding application may improve this by manually calling this method.

Technically this method in many senses is equivalent to executing empty script:

It does nothing except for processing all pending debug messages.

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.