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
