Comment #3 on issue 962 by [email protected]: Assert failure in debug
linux 32-bit Chrome with V8 3.0.0. In register allocator.
http://code.google.com/p/v8/issues/detail?id=962
Reproduces in the debugger on the same web site.
Here is the function in which the failure is occuring:
(gdb) print info->shared_info()
$3 = {location_ = 0xc7a8010}
(gdb) print *$
Attempt to take address of value not located in memory.
(gdb) print *($.location_)
$4 = (v8::internal::SharedFunctionInfo *) 0xf5a6a271
(gdb) print $4->Print()
0xf5a6a271: [SharedFunctionInfo]
- name: 0xf36bed01 <String[0]: >
- expected_nof_properties: 10
- instance class name = #Object
- code = 0xf5c80b01 <Code>
- source code = 0xf4027f01 <String[127]: (){var
f,d=arguments,e,b=this.listeners,g;for(e=0;e<b.length;e++){g=b[e];f=g.cb.apply(g.scope,d);if(f===false){break}}return
f}>
The stack trace is
#0 0xf7fdf430 in __kernel_vsyscall ()
#1 0xf6fa5921 in raise (sig=6)
at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#2 0xf6fa8d52 in abort () at abort.c:92
#3 0x0958f6f9 in v8::internal::OS::Abort () at v8/src/platform-linux.cc:296
#4 0x092d38ff in V8_Fatal (file=0xb792444 "v8/src/lithium-allocator.cc",
line=1498, format=0xb792008 "CHECK(%s) failed") at v8/src/checks.cc:58
#5 0x0938d131 in CheckHelper (file=0xb792444 "v8/src/lithium-allocator.cc",
line=1498,
source=0xb792b0c "!current->HasRegisterAssigned()
&& !current->IsSpilled()", condition=false) at v8/src/checks.h:59
#6 0x09392918 in v8::internal::LAllocator::AllocateRegisters
(this=0xffffbd10)
at v8/src/lithium-allocator.cc:1498
#7 0x09391b4f in v8::internal::LAllocator::AllocateGeneralRegisters (
this=0xffffbd10) at v8/src/lithium-allocator.cc:1265
#8 0x09390bf5 in v8::internal::LAllocator::Allocate (this=0xffffbd10,
chunk=0xc7b1dd4) at v8/src/lithium-allocator.cc:1015
#9 0x093436d7 in v8::internal::HGraph::Compile (this=0xc7ab598)
at v8/src/hydrogen.cc:706
#10 0x092d70cf in v8::internal::MakeCrankshaftCode (info=0xffffc118)
at v8/src/compiler.cc:257
#11 0x092d71f2 in v8::internal::MakeCode (info=0xffffc118)
at v8/src/compiler.cc:280
#12 0x092d7fec in v8::internal::Compiler::CompileLazy (info=0xffffc118)
---Type <return> to continue, or q <return> to quit---
at v8/src/compiler.cc:554
#13 0x0931c737 in v8::internal::CompileLazyHelper (info=0xffffc118,
flag=v8::internal::KEEP_EXCEPTION) at v8/src/handles.cc:802
1498 ASSERT(!current->HasRegisterAssigned()
&& !current->IsSpilled());
1499
1500 bool result = TryAllocateFreeReg(current);
1501 if (!result) {
1502 AllocateBlockedReg(current);
1503 }
1504
1505 if (current->HasRegisterAssigned()) {
1506 AddToActive(current);
1507 }
(gdb) print current
$6 = (v8::internal::LiveRange *) 0xd680c38
(gdb) print *current
$7 = {<v8::internal::ZoneObject> = {<No data fields>},
static kInvalidAssignment = 2147483647, id_ = 105, spilled_ = false,
assigned_double_ = false, assigned_register_ = 1,
last_interval_ = 0xd680c6c, first_interval_ = 0xd680c6c,
first_pos_ = 0xd67f814, parent_ = 0xd67e084, next_ = 0x0,
current_interval_ = 0xd680c6c, last_processed_use_ = 0xd67f814,
spill_operand_ = 0xd680c68, spill_start_index_ = 2147483647}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev