Sorry that it took this long to reply.

>From what I can see, StackGuard::ResumeExecution() also causes an assertion
to fail. The TERMINATE-bit has already been cleared as soon as the
interrupt is being handled by Execution::HandleStackGuardInterrupt. The
assert in StackGuard::ResumeExecution() is therefore bogus, as it expects
the bit to be set.

I think that setting external_caught_exception_ to false should be safe.
However, I stumbled upon the fields in v8::TryCatch. After resuming
execution, shouldn't the has_terminated_ be set to false again? And does
can_continue_ even have the correct meaning if we can continue with
ResumeExecution anyways? I suggest renameing it to
RevokeTerminateExecution, UnterminateExecution or something similar, since
that makes clear that calling it explicitly revokes TerminateExecution.

Regards,

Yang




On Fri, Dec 14, 2012 at 5:54 PM, Andrew Paprocki <[email protected]> wrote:

> When is isolate->thread_local_top_->external_caught_exception_ supposed to
> be set to false when a C++ TryCatch has caught the exception?
>
> I found the issue, but it seems that once my C++ TryCatch has caught the
> termination exception, it is the isolate scheduled exception and
> external_caught_exception_ is true. After calling ResumeExection() in the
> test case, an assert is hit when trying to run another script because this
> value is still true. I thought I only needed to set it to false if the
> termination exception was the pending exception.. If I make
> ResumeExecution() always set external_caught_exception_ to false,
> everything works, but I'm not sure if that is the correct thing to do.
>
> -Andrew
>
>
> On Fri, Dec 14, 2012 at 3:03 AM, Sven Panne <[email protected]>wrote:
>
>> On Thu, Dec 13, 2012 at 10:57 PM, Andrew Paprocki <[email protected]>wrote:
>>
>>> Is there any way I can see the log of the failure? I'll boot up a vm and
>>> see if I can track it down in the meantime.
>>
>>
>> Looking at out build bots, firing up a VM is not even necessary, v8's own
>> test suite fails in debug mode on Linux with the CL.
>>
>>
>
>

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

Reply via email to