https://codereview.chromium.org/271873003/diff/1/src/debug.cc
File src/debug.cc (right):

https://codereview.chromium.org/271873003/diff/1/src/debug.cc#newcode2041
src/debug.cc:2041: if (function->code()->kind() != Code::FUNCTION ||
On 2014/05/08 14:28:09, Yang wrote:
Like I said in the reland CL, this is incorrect. In this function we
want to
make sure that the function code is unoptimized with debug break
slots. If the
code type is optimized code or builtin, we want to replace that by
recompiling
it.
We can only skip this if the code is already unoptimized with debug
break slots.
So it should be

if (function->code()->kind() == Code::FUNCTION &&
function->code()->has_debug_break_slots())

Sorry I missed that comment.  This doesn't work - I get the following
ASSERT failure with that change:

# Fatal error in ../src/compiler.cc, line 717
# CHECK(!old_code->has_debug_break_slots()) failed

==== C stack trace ===============================
v8::internal::Compiler::GetCodeForDebugging(v8::internal::Handle<v8::internal::JSFunction>)
 3:
v8::internal::Debug::MaybeRecompileFunctionForDebugging(v8::internal::Handle<v8::internal::JSFunction>)

Should it be:
if (function->shared()->code()->kind() == Code::FUNCTION &&
    function->shared()->code()->has_debug_break_slots()) return;

instead? That seems to work.

https://codereview.chromium.org/271873003/

--
--
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/d/optout.

Reply via email to