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

Reply via email to