Status: Accepted
Owner: [email protected]
Labels: Type-Bug Priority-Medium
New issue 3280 by [email protected]: Crash when reifying scope in debugger
breakpoint
http://code.google.com/p/v8/issues/detail?id=3280
The attached test causes V8 to crash:
#
# Fatal error in ../src/runtime.cc, line 11485
# CHECK(!value->IsTheHole()) failed
#
#2 0x0000000000b903ae in
v8::internal::MaterializeStackLocalsWithFrameInspector (isolate=0x1c9f030,
target=Handle((v8::internal::JSObject *) 0x3106a60428d9),
function=Handle((v8::internal::JSFunction *) 0x1c863bc55cc1),
frame_inspector=0x7fffffffc450) at ../src/runtime.cc:11485
scope = {isolate_ = 0x1c9f030, prev_next_ = 0x1ce5ea0, prev_limit_
= 0x1ce7ad0}
value = Handle(the-hole)
name = Handle(0)
i = 0
shared = Handle((v8::internal::SharedFunctionInfo *) 0x1c863bc559d9)
scope_info = Handle((v8::internal::ScopeInfo *)
((v8::internal::FixedArray *) 0x1c863bc55dd1))
(gdb) p scope_info->ParameterName(i)
$1 = "a"
The reason is that the argument "a" does not get context-allocated, even
though we are in a generator, because "a" is unreferenced and thus unneeded.
I don't know exactly what to do here. It seems silly to force context
allocation of unused arguments to generators, on the off chance that
perhaps someone places a breakpoint that runs during the dynamic extent of
the generator. Statically detecting "debugger" statements is insufficient,
as a debugger can traverse the stack. On the other hand, perhaps
generators with unused arguments is a sufficiently rare case that we can
eat the needless cost.
Attachments:
test.js 2.0 KB
--
You received this message because this project is configured to send all
issue notifications to this address.
You may adjust your notification preferences at:
https://code.google.com/hosting/settings
--
--
v8-dev mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.