On 2013/09/13 09:47:56, Yang wrote:
I'm not entirely familiar with how frame restart works, so let me try to
understand:

When we restart frames, we find the ones we want to restart, clear the
corresponding range on the stack, and replace it with the frame dropper
builtin,
which calls the function to the bottom frame again for restart.

The problem we want to solve is that when an exception is thrown, the debugger becomes active through OnException. Live edit may restart frames in that time. When we return to throwing exception after the OnException call, the exception is set as pending exception, so that when we return to javascript through the
C
entry stub, the exception triggers the registered try-catch handler. You want
to
circumvent this by adding a check in the C entry stub. Right?

My question here is: by skipping the try-catch handler, where is that pending exception handled? I don't see it being cleared anywhere. So even though we
restarted the frame, the old exception is still pending?

Your description is very accurate, no corrections.

Maybe it's better is I reproduce my rationale for this design, for Andrey and for the records: I don't have tooling to fix the return address the C++ has, so C++ is determined to always return to CEntry frame. CEntry frame initiates stack
unwind routine, so I cannot let CEntry frame keep doing this.

As to your question, I don't have an answer right now. I remember that I was
under impression that someone must have already cleared pending exception
variable to that point, so exception is only being kept by a register. If this not a case, I guess there we should add an instruction that does so in the new
code.

https://codereview.chromium.org/22801003/

--
--
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to