| Index: include/v8-debug.h
|
| ===================================================================
|
| --- include/v8-debug.h (revision 1753)
|
| +++ include/v8-debug.h (working copy)
|
| @@ -79,48 +79,60 @@
|
| };
|
|
|
|
|
| -/**
|
| - * Debug event callback function.
|
| - *
|
| - * \param event the type of the debug event that triggered the callback
|
| - * (enum DebugEvent)
|
| - * \param exec_state execution state (JavaScript object)
|
| - * \param event_data event specific data (JavaScript object)
|
| - * \param data value passed by the user to SetDebugEventListener
|
| - */
|
| -typedef void (*DebugEventCallback)(DebugEvent event,
|
| - Handle<Object> exec_state,
|
| - Handle<Object> event_data,
|
| - Handle<Value> data);
|
| +class EXPORT Debug {
|
| + public:
|
| + /**
|
| + * A client object passed to the v8 debugger whose ownership will be taken by
|
| + * it. v8 is always responsible for deleting the object.
|
| + */
|
| + class ClientData {
|
| + public:
|
| + virtual ~ClientData() {}
|
| + };
|
|
|
|
|
| -/**
|
| - * Debug message callback function.
|
| - *
|
| - * \param message the debug message
|
| - * \param length length of the message
|
| - * \param data the data value passed when registering the message handler
|
| - * A DebugMessageHandler does not take posession of the message string,
|
| - * and must not rely on the data persisting after the handler returns.
|
| - */
|
| -typedef void (*DebugMessageHandler)(const uint16_t* message, int length,
|
| - void* data);
|
| + /**
|
| + * Debug event callback function.
|
| + *
|
| + * \param event the type of the debug event that triggered the callback
|
| + * (enum DebugEvent)
|
| + * \param exec_state execution state (JavaScript object)
|
| + * \param event_data event specific data (JavaScript object)
|
| + * \param data value passed by the user to SetDebugEventListener
|
| + */
|
| + typedef void (*EventCallback)(DebugEvent event,
|
| + Handle<Object> exec_state,
|
| + Handle<Object> event_data,
|
| + Handle<Value> data);
|
|
|
| -/**
|
| - * Debug host dispatch callback function.
|
| - *
|
| - * \param dispatch the dispatch value
|
| - * \param data the data value passed when registering the dispatch handler
|
| - */
|
| -typedef void (*DebugHostDispatchHandler)(void* dispatch,
|
| - void* data);
|
|
|
| + /**
|
| + * Debug message callback function.
|
| + *
|
| + * \param message the debug message
|
| + * \param length length of the message
|
| + * \param data the data value passed when registering the message handler
|
| + * \param client_data the data value passed into Debug::SendCommand along
|
| + * with the request that led to the message or NULL if the message is an
|
| + * asynchronous event. The debugger takes ownership of the data and will
|
| + * delete it before dying even if there is no message handler.
|
| + * A MessageHandler does not take posession of the message string,
|
| + * and must not rely on the data persisting after the handler returns.
|
| + */
|
| + typedef void (*MessageHandler)(const uint16_t* message, int length,
|
| + ClientData* client_data);
|
|
|
| + /**
|
| + * Debug host dispatch callback function.
|
| + *
|
| + * \param dispatch the dispatch value
|
| + * \param data the data value passed when registering the dispatch handler
|
| + */
|
| + typedef void (*HostDispatchHandler)(ClientData* dispatch);
|
|
|
| -class EXPORT Debug {
|
| - public:
|
| +
|
| // Set a C debug event listener.
|
| - static bool SetDebugEventListener(DebugEventCallback that,
|
| + static bool SetDebugEventListener(EventCallback that,
|
| Handle<Value> data = Handle<Value>());
|
|
|
| // Set a JavaScript debug event listener.
|
| @@ -131,14 +143,14 @@
|
| static void DebugBreak();
|
|
|
| // Message based interface. The message protocol is JSON.
|
| - static void SetMessageHandler(DebugMessageHandler handler, void* data = NULL,
|
| + static void SetMessageHandler(MessageHandler handler,
|
| bool message_handler_thread = true);
|
| - static void SendCommand(const uint16_t* command, int length);
|
| + static void SendCommand(const uint16_t* command, int length,
|
| + ClientData* client_data = NULL);
|
|
|
| // Dispatch interface.
|
| - static void SetHostDispatchHandler(DebugHostDispatchHandler handler,
|
| - void* data = NULL);
|
| - static void SendHostDispatch(void* dispatch);
|
| + static void SetHostDispatchHandler(HostDispatchHandler handler);
|
| + static void SendHostDispatch(ClientData* dispatch);
|
|
|
| /**
|
| * Run a JavaScript function in the debugger.
|
|
|