Hi Yang
  Unfortunately this needs to work on the v8 included in node-0.10.32.

  Looks like I will try again once the node-v0.12 release is out.

Thanks
Evan.

On Monday, November 24, 2014 7:46:58 AM UTC-8, Yang Guo wrote:
>
> Can you provide the V8 version you are using? Having a debug event 
> listener should no longer cause significant performance regression. 
>
> You can use an interrupt (v8::Isolate::RequestInterrupt) to interrupt V8 
> to install a DebugEventListener.
>
> Yang
>
> On Tuesday, November 18, 2014 7:49:03 PM UTC+1, Evan Torrie wrote:
>>
>>
>>
>> On Thursday, October 30, 2014 5:29:13 AM UTC-7, Ben Noordhuis wrote:
>>>
>>>
>>> You can interrupt a running script by calling v8::Debug::DebugBreak() 
>>> from another thread.  It's de facto async signal-safe if, perhaps, not 
>>> de jure; that is, I don't know whether V8 guarantees that it's async 
>>> signal-safe but the current implementation is. 
>>>
>>> You can do more advanced things programmatically with 
>>> v8::Debug::SetDebugEventListener() and v8::Debug::SetMessageHandler(). 
>>> See test/cctest/test-debug.cc for more details. 
>>>
>>
>> This is useful info. I have a follow-up question.
>>
>> It appears as though SetDebugEventListener(), unlike DebugBreak(),  must 
>> be called in a thread-safe manner (i.e. it must enter the appropriate 
>> isolate that it wants to install the DebugEventListener on).  I say this 
>> because looking at the v8 internal code, it appears to be creating handles, 
>> scopes etc when installing the DebugEventListener callback.
>>
>> In my case, I'd like to install a DebugEventListener only in response to 
>> a signal sent to the running process -- the reason being that installing a 
>> DebugEventListener from the very beginning of the code appears to result in 
>> a fairly major decrease in v8 Javascript performance (a factor of 3x 
>> slowdown in my test application).
>>
>> So, I have a main thread running with the  v8 isolate, and a separate 
>> monitor thread running which is waiting for the SIGHUP.  After setting a 
>> hupFired flag, I want to then  install the DebugEventListener from the 
>> separate monitor thread - while the main thread may still be running its 
>> code.  After installing the DebugEventListener, I then want to fire a 
>> DebugBreak event (so I can capture the stack trace of where the main v8 
>> thread is running).
>>
>> So far, I've been fairly unsuccessful in doing so -- in fact, I'm 
>> wondering if this is even possible if the main v8 Javascript code is in an 
>> infinite loop (the use case for which I want to interrupt it).  I can 
>> certainly send a DebugBreak event, but unless I have a DebugEventListener 
>> installed, then I won't be able to get a callback to my own code.  Or am I 
>> missing something?
>>
>> Thanks for any help.
>>
>>  
>>
>>>
>>> V8 used to have an embedded debug agent that created a TCP listen 
>>> socket for clients to connect to.  That was removed recently, you have 
>>> to implement your own now. 
>>>
>>

-- 
-- 
v8-users mailing list
[email protected]
http://groups.google.com/group/v8-users
--- 
You received this message because you are subscribed to the Google Groups 
"v8-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to