Comment #3 on issue 825 by [email protected]: LiveEdit: stack manipulation does not work with function without local variables
http://code.google.com/p/v8/issues/detail?id=825

LiveEdit stack manipulation brief description.

In LiveEdit action several stack frames may get compromised, because their functions are patched and their execution is canceled. The user stack should be cleared down to the last compromised frame. The last (the most bottom one) frame must be restarted (started from the first statement).

LiveEdit itself with all other debugger code sits on top of the same stack at this very moment. This means that immediately above user JavaScript stack frames internal stack frames goes. This way the stack manipulations are done in a limited stack space.

LiveEdit implementation wipes out user frames all from the top one down to the last compromised. It replaces them with a single auxiliary frame called "Frame Dropper". LiveEdit cannot set up a true JavaScript frame paused on the first statement, becuase it's very hard. Additionally, new frame may require more stack space than we have from the old one. The protocol requires that the client debugger issues a regular "step in" command to finally set execution to the first statement of the restarted function.

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

Reply via email to