Hey Søren, thanks for your explanation, I was really looking forward to
your comments.

At this point, based in your and Yang answers, it seems like using
--expose_debug_as is not a good idea in order to implement a fully working
debugger backend for WebKit DevTools, using only javascript in nodejs.

Søren, Debug::DebugBreak() seems pretty straightforward from a user
standpoint. What about resuming the execution?

On Mon, May 7, 2012 at 3:03 AM, Søren Gjesse <[email protected]> wrote:

> There is a way to break the JS execution. In the C++ API
> (include/v8-debug.h) there is the function Debug::DebugBreak(). This
> function can be called from any thread. When --expose_debug_as=<name> is
> used that function can be called from JavaScript using
> <name>.Debug.breakExecution. Calling it from JavaScript is not that
> interesting as it is almost the same as inserting a debugger statement.
>
> The way Debug::DebugBreak() works is that it piggy-bags on the stack
> check. For each function call and backwards branch V8 performs a stack
> check. Debug::DebugBreak() artificially lowers the stack size so that these
> stack check always fail. The handling of a failing stack check can then see
> that the failing stack check is due to a debugger break and handle
> it accordingly.
>
> Regards,
> Søren
>
>
> On Sun, May 6, 2012 at 5:27 PM, Camilo Aguilar <[email protected]>wrote:
>
>> Yeah, I thought v8 was handling the thread under the hood keeping the
>> paused context and state available for us through the
>> JS Debug object. Karl, if you want to fork
>> https://github.com/c4milo/node-debugger and send pull requests that will
>> be awesome.
>>
>>
>> On Sun, May 6, 2012 at 4:36 AM, Karl Skomski <[email protected]> wrote:
>>
>>> Hi  Camilo,
>>>
>>> yeah I tried the same thing in my fork. :D But when you think about it
>>> twice it's pretty clear why you need a separate thread for the agent
>>> when you use the debugger.
>>> I consider to use the debugger agent from v8 or to implement my own
>>> C++ module that replicates some v8 debugger agent features but what
>>> better integrates with the rest of the module.
>>>
>>> Maybe we could collaborate on this.
>>>
>>> Kind regards,
>>>
>>> Karl Skomski
>>>
>>>
>>>
>>>
>>> ---------- Forwarded message ----------
>>> From: Camilo Aguilar <[email protected]>
>>> Date: Thu, May 3, 2012 at 11:30 PM
>>> Subject: [v8-users] about javascript debugger object exposed with
>>> --expose_debug_as=<name>
>>> To: v8-users <[email protected]>
>>>
>>>
>>>
>>> Hi there,
>>>
>>> I've been trying to use the javascript object exposed with
>>> --expose_debug_as=<name> and I got stuck trying to determine how to
>>> stop the main thread upon pause. Also I still can't find a function to
>>> continue the execution. This is the only black hole right now. The
>>> rest of the functionality is pretty straight forward, may anybody shed
>>> some light on this please?.
>>>
>>> Thanks in advance.
>>> Camilo
>>>
>>> --
>>> v8-users mailing list
>>> [email protected]
>>> http://groups.google.com/group/v8-users
>>>
>>
>>  --
>> v8-users mailing list
>> [email protected]
>> http://groups.google.com/group/v8-users
>>
>
>  --
> v8-users mailing list
> [email protected]
> http://groups.google.com/group/v8-users
>

-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users

Reply via email to