Hello V8 gurus!

I have a V8 application that exposes a large object model for
scripting. All access to host properties is via interceptors. This
application is multithreaded and uses multiple V8 contexts; each
context lives within its own V8 isolate.

I recently added debugging support as described in the Wiki, and I'm
using Eclipse to debug script code. It works amazingly well for the
tiny amount of work I had to do, but there are some issues:

1. Intercepted properties cannot be inspected in the debugger. The
debugger lists them by name but cannot evaluate them, and displays
each as "undefined". The DebugLookupResultValue function in runtime.cc
seems to govern this behavior, but I'm not sure.

2. SetDebugMessageDispatchHandler should take an opaque pointer or
something similar that could be passed to the handler. In a multi-
isolate environment the handler needs to know which isolate needs
debug message processing. If the debug agent could simply pass its
isolate to the handler, that would be even better.

3. I'm still a bit puzzled as to what the correct usage pattern is for
the debug message dispatch handler. If I'm stopped at a script
breakpoint, the handler is invoked every time I inspect something in
the debugger. It jumps off the debug agent's thread and onto another
one as perscribed by the Wiki, only to get stuck trying to enter the
isolate that's owned by the suspended script thread. Surprisingly this
doesn't end up deadlocking everything, but it just feels like I'm
doing something wrong.

Thanks for any help you can provide!

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

Reply via email to