Thanks a lot Yury,

It was really exhaustive explanation.

Can I rephrase it in the following way:

1. Debugger protocol is not quite context-aware.

2. V8 does not provide real context separation (objects are not
attributed to a particular contexts, one object may well be reachable
from several contexts).

3. V8/Debugger does not list existing contexts, there is not regular
way for reaching all of them from debugger. However debugger always
see one context, but cannot choose it.

4. Evaluate command may not specify context. It is only allowed to
select a frame of current stack.


Does it look like a reasonable summary?

However I don't really understand if debugger protocol should be
scoped to a particular context or not.

>From your explanations and my summary it appears that it's not really
scoped to a context.

On the other hand Chrome debugger is obviously scoped to a particular
tab ergo scoped to V8 context.

And I don't quite see how V8 handles several tabs inside one instance:

A. What if I open 2 connections to 2 tabs which happened to be in one
instance of V8. Will V8 handle 2 remote debuggers simultaneously?
B. When debugging a particular tab I expect to suspend inside context
of my tab only. What happens when V8 suspend in context of different
tab?
C. If we support evaluate command when V8 is idle, can we make sure we
evaluate our expression inside a proper context?

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

Reply via email to