Repository navigation
Segfault in v8.2.1 #14567
Description
Activity
Updated to fix formatting of details block
Just got another more interesting version:
core_dump.node.20212.myitcv-virtual-machine.1501589446
(gdb) where
#0 0x0000000001019c91 in v8::internal::String::ComputeAndSetHash() ()
#1 0x000000000101b8a9 in v8::internal::String::SlowAsArrayIndex(unsigned int*) ()
#2 0x0000000000febf1b in v8::internal::LookupIterator::PropertyOrElement(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, bool*, v8::internal::LookupIterator::Configuration) ()
#3 0x000000000114d461 in v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*) ()
#4 0x0000172e225840bd in ?? ()
#5 0x0000172e22819775 in ?? ()
#6 0x0000172e22584001 in ?? ()
#7 0x00007fffcea191d0 in ?? ()
#8 0x0000000000000006 in ?? ()
#9 0x00007fffcea193b0 in ?? ()
#10 0x0000172e22f313fe in ?? ()
#11 0x0000080c36065b99 in ?? ()
#12 0x000029c581af0ab9 in ?? ()
#13 0x0000000000000000 in ?? ()
(gdb) bt full
#0 0x0000000001019c91 in v8::internal::String::ComputeAndSetHash() ()
No symbol table info available.
#1 0x000000000101b8a9 in v8::internal::String::SlowAsArrayIndex(unsigned int*) ()
No symbol table info available.
#2 0x0000000000febf1b in v8::internal::LookupIterator::PropertyOrElement(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, bool*, v8::internal::LookupIterator::Configuration) ()
No symbol table info available.
#3 0x000000000114d461 in v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*) ()
No symbol table info available.
#4 0x0000172e225840bd in ?? ()
No symbol table info available.
#5 0x0000172e22819775 in ?? ()
No symbol table info available.
#6 0x0000172e22584001 in ?? ()
No symbol table info available.
#7 0x00007fffcea191d0 in ?? ()
No symbol table info available.
#8 0x0000000000000006 in ?? ()
No symbol table info available.
#9 0x00007fffcea193b0 in ?? ()
No symbol table info available.
#10 0x0000172e22f313fe in ?? ()
No symbol table info available.
#11 0x0000080c36065b99 in ?? ()
No symbol table info available.
#12 0x000029c581af0ab9 in ?? ()
No symbol table info available.
#13 0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) info registers
rax 0x80c36000000 8848538599424
rbx 0x80c36065b99 8848539016089
rcx 0x7fffcea19200 140736660083200
rdx 0x3 3
rsi 0x7fffcea19060 140736660082784
rdi 0x80c36065b99 8848539016089
rbp 0x7fffcea19010 0x7fffcea19010
rsp 0x7fffcea19000 0x7fffcea19000
r8 0x7fffcea19120 140736660082976
r9 0x3 3
r10 0x80c36065b99 8848539016089
r11 0x3 3
r12 0x7fffcea19208 140736660083208
r13 0x7fffcea19200 140736660083200
r14 0x3 3
r15 0x2458640 38110784
rip 0x1019c91 0x1019c91 <v8::internal::String::ComputeAndSetHash()+17>
eflags 0x10206 [ PF IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb) disassemble
Dump of assembler code for function _ZN2v88internal6String17ComputeAndSetHashEv:
0x0000000001019c80 <+0>: push %rbp
0x0000000001019c81 <+1>: mov %rdi,%rax
0x0000000001019c84 <+4>: and $0xfffffffffff80000,%rax
0x0000000001019c8a <+10>: mov %rsp,%rbp
0x0000000001019c8d <+13>: push %r15
0x0000000001019c8f <+15>: push %r14
=> 0x0000000001019c91 <+17>: push %r13
0x0000000001019c93 <+19>: push %r12
0x0000000001019c95 <+21>: mov %rdi,%r12
0x0000000001019c98 <+24>: push %rbx
0x0000000001019c99 <+25>: sub $0x18,%rsp
0x0000000001019c9d <+29>: movslq 0x13(%rdi),%rbx
0x0000000001019ca1 <+33>: mov 0x38(%rax),%rax
0x0000000001019ca5 <+37>: movl $0x0,-0x38(%rbp)
0x0000000001019cac <+44>: movb $0x1,-0x33(%rbp)
0x0000000001019cb0 <+48>: movslq 0xd34(%rax),%rax
0x0000000001019cb7 <+55>: lea -0x1(%rbx),%r13d
0x0000000001019cbb <+59>: mov %ebx,-0x40(%rbp)
0x0000000001019cbe <+62>: cmp $0x9,%r13d
0x0000000001019cc2 <+66>: setbe -0x34(%rbp)
0x0000000001019cc6 <+70>: cmp $0x3fff,%ebx
0x0000000001019ccc <+76>: mov %eax,-0x3c(%rbp)
0x0000000001019ccf <+79>: jle 0x1019d00 <_ZN2v88internal6String17ComputeAndSetHashEv+128>
0x0000000001019cd1 <+81>: lea 0x2(,%rbx,4),%ebx
0x0000000001019cd8 <+88>: mov %ebx,%eax
0x0000000001019cda <+90>: shr $0x2,%eax
0x0000000001019cdd <+93>: mov %ebx,0x7(%r12)
0x0000000001019ce2 <+98>: movl $0x0,0xb(%r12)
0x0000000001019ceb <+107>: add $0x18,%rsp
0x0000000001019cef <+111>: pop %rbx
0x0000000001019cf0 <+112>: pop %r12
0x0000000001019cf2 <+114>: pop %r13
0x0000000001019cf4 <+116>: pop %r14
0x0000000001019cf6 <+118>: pop %r15
0x0000000001019cf8 <+120>: pop %rbp
0x0000000001019cf9 <+121>: retq
0x0000000001019cfa <+122>: nopw 0x0(%rax,%rax,1)
0x0000000001019d00 <+128>: mov %ebx,%r14d
0x0000000001019d03 <+131>: mov %rdi,%rsi
0x0000000001019d06 <+134>: xor %r15d,%r15d
0x0000000001019d09 <+137>: mov -0x1(%rsi),%rax
0x0000000001019d0d <+141>: movzbl 0xb(%rax),%eax
0x0000000001019d11 <+145>: and $0xf,%eax
0x0000000001019d14 <+148>: cmp $0xd,%al
0x0000000001019d16 <+150>: ja 0x101a140 <_ZN2v88internal6String17ComputeAndSetHashEv+1216>
0x0000000001019d1c <+156>: movzbl %al,%eax
0x0000000001019d1f <+159>: jmpq *0x1794120(,%rax,8)
0x0000000001019d26 <+166>: nopw %cs:0x0(%rax,%rax,1)
0x0000000001019d30 <+176>: mov 0x17(%rsi),%rdi
0x0000000001019d34 <+180>: movslq %r15d,%r15
0x0000000001019d37 <+183>: mov (%rdi),%rax
0x0000000001019d3a <+186>: callq *0x20(%rax)
0x0000000001019d3d <+189>: add %rax,%r15
0x0000000001019d40 <+192>: cmpb $0x0,-0x34(%rbp)
0x0000000001019d44 <+196>: je 0x101a258 <_ZN2v88internal6String17ComputeAndSetHashEv+1496>
0x0000000001019d4a <+202>: test %ebx,%ebx
0x0000000001019d4c <+204>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x0000000001019d52 <+210>: movzbl (%r15),%eax
0x0000000001019d56 <+214>: add -0x3c(%rbp),%eax
0x0000000001019d59 <+217>: mov %eax,%edx
0x0000000001019d5b <+219>: shl $0xa,%edx
0x0000000001019d5e <+222>: add %edx,%eax
0x0000000001019d60 <+224>: mov %eax,%ecx
0x0000000001019d62 <+226>: shr $0x6,%ecx
0x0000000001019d65 <+229>: xor %eax,%ecx
0x0000000001019d67 <+231>: mov %ecx,-0x3c(%rbp)
0x0000000001019d6a <+234>: movzbl (%r15),%edx
0x0000000001019d6e <+238>: movzbl %dl,%eax
0x0000000001019d71 <+241>: sub $0x30,%eax
0x0000000001019d74 <+244>: cmp $0x9,%ax
0x0000000001019d78 <+248>: ja 0x101a507 <_ZN2v88internal6String17ComputeAndSetHashEv+2183>
0x0000000001019d7e <+254>: cmpl $0x1,-0x40(%rbp)
0x0000000001019d82 <+258>: jle 0x101a408 <_ZN2v88internal6String17ComputeAndSetHashEv+1928>
0x0000000001019d88 <+264>: lea 0x1(%r15),%rsi
0x0000000001019d8c <+268>: xor %edi,%edi
0x0000000001019d8e <+270>: mov $0x19999999,%r8d
0x0000000001019d94 <+276>: jmp 0x1019de5 <_ZN2v88internal6String17ComputeAndSetHashEv+357>
0x0000000001019d96 <+278>: nopw %cs:0x0(%rax,%rax,1)
0x0000000001019da0 <+288>: lea (%rax,%rax,4),%eax
0x0000000001019da3 <+291>: add $0x1,%edi
0x0000000001019da6 <+294>: cmp %edi,%r14d
0x0000000001019da9 <+297>: lea -0x30(%r9,%rax,2),%eax
0x0000000001019dae <+302>: mov %eax,-0x38(%rbp)
0x0000000001019db1 <+305>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x0000000001019db7 <+311>: movzbl (%rsi),%eax
0x0000000001019dba <+314>: add $0x1,%rsi
0x0000000001019dbe <+318>: add %eax,%ecx
0x0000000001019dc0 <+320>: mov %ecx,%edx
0x0000000001019dc2 <+322>: shl $0xa,%edx
0x0000000001019dc5 <+325>: add %ecx,%edx
0x0000000001019dc7 <+327>: mov %edx,%ecx
0x0000000001019dc9 <+329>: shr $0x6,%ecx
0x0000000001019dcc <+332>: xor %edx,%ecx
---Type <return> to continue, or q <return> to quit---
0x0000000001019dce <+334>: mov %ecx,-0x3c(%rbp)
0x0000000001019dd1 <+337>: movzbl -0x1(%rsi),%edx
0x0000000001019dd5 <+341>: movzbl %dl,%eax
0x0000000001019dd8 <+344>: sub $0x30,%eax
0x0000000001019ddb <+347>: cmp $0x9,%ax
0x0000000001019ddf <+351>: ja 0x101a2f8 <_ZN2v88internal6String17ComputeAndSetHashEv+1656>
0x0000000001019de5 <+357>: cmpb $0x0,-0x33(%rbp)
0x0000000001019de9 <+361>: movzbl %dl,%r9d
0x0000000001019ded <+365>: je 0x1019df8 <_ZN2v88internal6String17ComputeAndSetHashEv+376>
0x0000000001019def <+367>: cmp $0x30,%dl
0x0000000001019df2 <+370>: movb $0x0,-0x33(%rbp)
0x0000000001019df6 <+374>: je 0x1019e0d <_ZN2v88internal6String17ComputeAndSetHashEv+397>
0x0000000001019df8 <+376>: lea -0x2d(%r9),%edx
0x0000000001019dfc <+380>: mov -0x38(%rbp),%eax
0x0000000001019dff <+383>: mov %r8d,%r11d
0x0000000001019e02 <+386>: sar $0x3,%edx
0x0000000001019e05 <+389>: sub %edx,%r11d
0x0000000001019e08 <+392>: cmp %r11d,%eax
0x0000000001019e0b <+395>: jbe 0x1019da0 <_ZN2v88internal6String17ComputeAndSetHashEv+288>
0x0000000001019e0d <+397>: movb $0x0,-0x34(%rbp)
0x0000000001019e11 <+401>: add $0x1,%edi
0x0000000001019e14 <+404>: jmpq 0x101a260 <_ZN2v88internal6String17ComputeAndSetHashEv+1504>
0x0000000001019e19 <+409>: nopl 0x0(%rax)
0x0000000001019e20 <+416>: cmpb $0x0,-0x34(%rbp)
0x0000000001019e24 <+420>: movslq %r15d,%r15
0x0000000001019e27 <+423>: lea 0x17(%rsi,%r15,1),%rdi
0x0000000001019e2c <+428>: je 0x101a208 <_ZN2v88internal6String17ComputeAndSetHashEv+1416>
0x0000000001019e32 <+434>: test %ebx,%ebx
0x0000000001019e34 <+436>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x0000000001019e3a <+442>: movzbl (%rdi),%eax
0x0000000001019e3d <+445>: add -0x3c(%rbp),%eax
0x0000000001019e40 <+448>: mov %eax,%edx
0x0000000001019e42 <+450>: shl $0xa,%edx
0x0000000001019e45 <+453>: add %edx,%eax
0x0000000001019e47 <+455>: mov %eax,%edx
0x0000000001019e49 <+457>: shr $0x6,%edx
0x0000000001019e4c <+460>: xor %eax,%edx
0x0000000001019e4e <+462>: mov %edx,-0x3c(%rbp)
0x0000000001019e51 <+465>: movzbl (%rdi),%eax
0x0000000001019e54 <+468>: movzbl %al,%ecx
0x0000000001019e57 <+471>: sub $0x30,%ecx
0x0000000001019e5a <+474>: cmp $0x9,%cx
0x0000000001019e5e <+478>: ja 0x101a511 <_ZN2v88internal6String17ComputeAndSetHashEv+2193>
0x0000000001019e64 <+484>: xor %esi,%esi
0x0000000001019e66 <+486>: cmpl $0x1,-0x40(%rbp)
0x0000000001019e6a <+490>: lea 0x1(%rdi),%rcx
0x0000000001019e6e <+494>: mov $0x19999999,%r9d
0x0000000001019e74 <+500>: jg 0x1019ec9 <_ZN2v88internal6String17ComputeAndSetHashEv+585>
0x0000000001019e76 <+502>: jmpq 0x101a489 <_ZN2v88internal6String17ComputeAndSetHashEv+2057>
0x0000000001019e7b <+507>: nopl 0x0(%rax,%rax,1)
0x0000000001019e80 <+512>: lea (%r8,%r8,4),%eax
0x0000000001019e84 <+516>: add $0x1,%esi
0x0000000001019e87 <+519>: cmp %esi,%r14d
0x0000000001019e8a <+522>: lea -0x30(%r10,%rax,2),%eax
0x0000000001019e8f <+527>: mov %eax,-0x38(%rbp)
0x0000000001019e92 <+530>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x0000000001019e98 <+536>: movzbl (%rcx),%eax
0x0000000001019e9b <+539>: add $0x1,%rcx
0x0000000001019e9f <+543>: add %eax,%edx
0x0000000001019ea1 <+545>: mov %edx,%eax
0x0000000001019ea3 <+547>: shl $0xa,%eax
0x0000000001019ea6 <+550>: add %edx,%eax
0x0000000001019ea8 <+552>: mov %eax,%edx
0x0000000001019eaa <+554>: shr $0x6,%edx
0x0000000001019ead <+557>: xor %eax,%edx
0x0000000001019eaf <+559>: mov %edx,-0x3c(%rbp)
0x0000000001019eb2 <+562>: movzbl -0x1(%rcx),%eax
0x0000000001019eb6 <+566>: movzbl %al,%r8d
0x0000000001019eba <+570>: sub $0x30,%r8d
0x0000000001019ebe <+574>: cmp $0x9,%r8w
0x0000000001019ec3 <+579>: ja 0x101a308 <_ZN2v88internal6String17ComputeAndSetHashEv+1672>
0x0000000001019ec9 <+585>: cmpb $0x0,-0x33(%rbp)
0x0000000001019ecd <+589>: movzbl %al,%r10d
0x0000000001019ed1 <+593>: je 0x1019edb <_ZN2v88internal6String17ComputeAndSetHashEv+603>
0x0000000001019ed3 <+595>: cmp $0x30,%al
0x0000000001019ed5 <+597>: movb $0x0,-0x33(%rbp)
0x0000000001019ed9 <+601>: je 0x1019ef1 <_ZN2v88internal6String17ComputeAndSetHashEv+625>
0x0000000001019edb <+603>: lea -0x2d(%r10),%eax
0x0000000001019edf <+607>: mov -0x38(%rbp),%r8d
0x0000000001019ee3 <+611>: mov %r9d,%r11d
0x0000000001019ee6 <+614>: sar $0x3,%eax
0x0000000001019ee9 <+617>: sub %eax,%r11d
0x0000000001019eec <+620>: cmp %r11d,%r8d
0x0000000001019eef <+623>: jbe 0x1019e80 <_ZN2v88internal6String17ComputeAndSetHashEv+512>
0x0000000001019ef1 <+625>: movb $0x0,-0x34(%rbp)
0x0000000001019ef5 <+629>: add $0x1,%esi
0x0000000001019ef8 <+632>: jmpq 0x101a210 <_ZN2v88internal6String17ComputeAndSetHashEv+1424>
0x0000000001019efd <+637>: nopl (%rax)
0x0000000001019f00 <+640>: mov 0x17(%rsi),%rsi
0x0000000001019f04 <+644>: jmpq 0x1019d09 <_ZN2v88internal6String17ComputeAndSetHashEv+137>
0x0000000001019f09 <+649>: nopl 0x0(%rax)
0x0000000001019f10 <+656>: add 0x23(%rsi),%r15d
0x0000000001019f14 <+660>: mov 0x17(%rsi),%rsi
0x0000000001019f18 <+664>: jmpq 0x1019d09 <_ZN2v88internal6String17ComputeAndSetHashEv+137>
---Type <return> to continue, or q <return> to quit---
0x0000000001019f1d <+669>: nopl (%rax)
0x0000000001019f20 <+672>: mov 0x17(%rsi),%rdi
0x0000000001019f24 <+676>: movslq %r15d,%r15
0x0000000001019f27 <+679>: mov (%rdi),%rax
0x0000000001019f2a <+682>: callq *0x20(%rax)
0x0000000001019f2d <+685>: cmpb $0x0,-0x34(%rbp)
0x0000000001019f31 <+689>: lea (%rax,%r15,2),%rdi
0x0000000001019f35 <+693>: je 0x101a158 <_ZN2v88internal6String17ComputeAndSetHashEv+1240>
0x0000000001019f3b <+699>: test %ebx,%ebx
0x0000000001019f3d <+701>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x0000000001019f43 <+707>: movzwl (%rdi),%eax
0x0000000001019f46 <+710>: add -0x3c(%rbp),%eax
0x0000000001019f49 <+713>: mov %eax,%edx
0x0000000001019f4b <+715>: shl $0xa,%edx
0x0000000001019f4e <+718>: add %edx,%eax
0x0000000001019f50 <+720>: mov %eax,%edx
0x0000000001019f52 <+722>: shr $0x6,%edx
0x0000000001019f55 <+725>: xor %eax,%edx
0x0000000001019f57 <+727>: mov %edx,-0x3c(%rbp)
0x0000000001019f5a <+730>: movzwl (%rdi),%eax
0x0000000001019f5d <+733>: lea -0x30(%rax),%ecx
0x0000000001019f60 <+736>: cmp $0x9,%cx
0x0000000001019f64 <+740>: ja 0x101a525 <_ZN2v88internal6String17ComputeAndSetHashEv+2213>
0x0000000001019f6a <+746>: xor %esi,%esi
0x0000000001019f6c <+748>: cmpl $0x1,-0x40(%rbp)
0x0000000001019f70 <+752>: lea 0x2(%rdi),%rcx
0x0000000001019f74 <+756>: mov $0x19999999,%r9d
0x0000000001019f7a <+762>: jg 0x1019fcd <_ZN2v88internal6String17ComputeAndSetHashEv+845>
0x0000000001019f7c <+764>: jmpq 0x101a38b <_ZN2v88internal6String17ComputeAndSetHashEv+1803>
0x0000000001019f81 <+769>: nopl 0x0(%rax)
0x0000000001019f88 <+776>: lea (%r8,%r8,4),%eax
0x0000000001019f8c <+780>: add $0x1,%esi
0x0000000001019f8f <+783>: cmp %esi,%r14d
0x0000000001019f92 <+786>: lea -0x30(%r10,%rax,2),%eax
0x0000000001019f97 <+791>: mov %eax,-0x38(%rbp)
0x0000000001019f9a <+794>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x0000000001019fa0 <+800>: movzwl (%rcx),%eax
0x0000000001019fa3 <+803>: add $0x2,%rcx
0x0000000001019fa7 <+807>: add %eax,%edx
0x0000000001019fa9 <+809>: mov %edx,%eax
0x0000000001019fab <+811>: shl $0xa,%eax
0x0000000001019fae <+814>: add %edx,%eax
0x0000000001019fb0 <+816>: mov %eax,%edx
0x0000000001019fb2 <+818>: shr $0x6,%edx
0x0000000001019fb5 <+821>: xor %eax,%edx
0x0000000001019fb7 <+823>: mov %edx,-0x3c(%rbp)
0x0000000001019fba <+826>: movzwl -0x2(%rcx),%eax
0x0000000001019fbe <+830>: lea -0x30(%rax),%r8d
0x0000000001019fc2 <+834>: cmp $0x9,%r8w
0x0000000001019fc7 <+839>: ja 0x101a2e8 <_ZN2v88internal6String17ComputeAndSetHashEv+1640>
0x0000000001019fcd <+845>: cmpb $0x0,-0x33(%rbp)
0x0000000001019fd1 <+849>: movzwl %ax,%r10d
0x0000000001019fd5 <+853>: je 0x1019fe1 <_ZN2v88internal6String17ComputeAndSetHashEv+865>
0x0000000001019fd7 <+855>: cmp $0x30,%ax
0x0000000001019fdb <+859>: movb $0x0,-0x33(%rbp)
0x0000000001019fdf <+863>: je 0x1019ff7 <_ZN2v88internal6String17ComputeAndSetHashEv+887>
0x0000000001019fe1 <+865>: lea -0x2d(%r10),%eax
0x0000000001019fe5 <+869>: mov -0x38(%rbp),%r8d
0x0000000001019fe9 <+873>: mov %r9d,%r15d
0x0000000001019fec <+876>: sar $0x3,%eax
0x0000000001019fef <+879>: sub %eax,%r15d
0x0000000001019ff2 <+882>: cmp %r15d,%r8d
0x0000000001019ff5 <+885>: jbe 0x1019f88 <_ZN2v88internal6String17ComputeAndSetHashEv+776>
0x0000000001019ff7 <+887>: movb $0x0,-0x34(%rbp)
0x0000000001019ffb <+891>: add $0x1,%esi
0x0000000001019ffe <+894>: jmpq 0x101a160 <_ZN2v88internal6String17ComputeAndSetHashEv+1248>
0x000000000101a003 <+899>: nopl 0x0(%rax,%rax,1)
0x000000000101a008 <+904>: cmpb $0x0,-0x34(%rbp)
0x000000000101a00c <+908>: movslq %r15d,%r15
0x000000000101a00f <+911>: lea 0x17(%rsi,%r15,2),%rdi
0x000000000101a014 <+916>: je 0x101a1b8 <_ZN2v88internal6String17ComputeAndSetHashEv+1336>
0x000000000101a01a <+922>: test %ebx,%ebx
0x000000000101a01c <+924>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a022 <+930>: movzwl (%rdi),%eax
0x000000000101a025 <+933>: add -0x3c(%rbp),%eax
0x000000000101a028 <+936>: mov %eax,%edx
0x000000000101a02a <+938>: shl $0xa,%edx
0x000000000101a02d <+941>: add %edx,%eax
0x000000000101a02f <+943>: mov %eax,%edx
0x000000000101a031 <+945>: shr $0x6,%edx
0x000000000101a034 <+948>: xor %eax,%edx
0x000000000101a036 <+950>: mov %edx,-0x3c(%rbp)
0x000000000101a039 <+953>: movzwl (%rdi),%eax
0x000000000101a03c <+956>: lea -0x30(%rax),%ecx
0x000000000101a03f <+959>: cmp $0x9,%cx
0x000000000101a043 <+963>: ja 0x101a51b <_ZN2v88internal6String17ComputeAndSetHashEv+2203>
0x000000000101a049 <+969>: xor %esi,%esi
0x000000000101a04b <+971>: cmpl $0x1,-0x40(%rbp)
0x000000000101a04f <+975>: lea 0x2(%rdi),%rcx
0x000000000101a053 <+979>: mov $0x19999999,%r9d
0x000000000101a059 <+985>: jg 0x101a0a5 <_ZN2v88internal6String17ComputeAndSetHashEv+1061>
0x000000000101a05b <+987>: jmpq 0x101a314 <_ZN2v88internal6String17ComputeAndSetHashEv+1684>
0x000000000101a060 <+992>: lea (%r8,%r8,4),%eax
0x000000000101a064 <+996>: add $0x1,%esi
---Type <return> to continue, or q <return> to quit---
0x000000000101a067 <+999>: cmp %esi,%r14d
0x000000000101a06a <+1002>: lea -0x30(%r10,%rax,2),%eax
0x000000000101a06f <+1007>: mov %eax,-0x38(%rbp)
0x000000000101a072 <+1010>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a078 <+1016>: movzwl (%rcx),%eax
0x000000000101a07b <+1019>: add $0x2,%rcx
0x000000000101a07f <+1023>: add %eax,%edx
0x000000000101a081 <+1025>: mov %edx,%eax
0x000000000101a083 <+1027>: shl $0xa,%eax
0x000000000101a086 <+1030>: add %edx,%eax
0x000000000101a088 <+1032>: mov %eax,%edx
0x000000000101a08a <+1034>: shr $0x6,%edx
0x000000000101a08d <+1037>: xor %eax,%edx
0x000000000101a08f <+1039>: mov %edx,-0x3c(%rbp)
0x000000000101a092 <+1042>: movzwl -0x2(%rcx),%eax
0x000000000101a096 <+1046>: lea -0x30(%rax),%r8d
0x000000000101a09a <+1050>: cmp $0x9,%r8w
0x000000000101a09f <+1055>: ja 0x101a2d8 <_ZN2v88internal6String17ComputeAndSetHashEv+1624>
0x000000000101a0a5 <+1061>: cmpb $0x0,-0x33(%rbp)
0x000000000101a0a9 <+1065>: movzwl %ax,%r10d
0x000000000101a0ad <+1069>: je 0x101a0b9 <_ZN2v88internal6String17ComputeAndSetHashEv+1081>
0x000000000101a0af <+1071>: cmp $0x30,%ax
0x000000000101a0b3 <+1075>: movb $0x0,-0x33(%rbp)
0x000000000101a0b7 <+1079>: je 0x101a0cf <_ZN2v88internal6String17ComputeAndSetHashEv+1103>
0x000000000101a0b9 <+1081>: lea -0x2d(%r10),%eax
0x000000000101a0bd <+1085>: mov -0x38(%rbp),%r8d
0x000000000101a0c1 <+1089>: mov %r9d,%r11d
0x000000000101a0c4 <+1092>: sar $0x3,%eax
0x000000000101a0c7 <+1095>: sub %eax,%r11d
0x000000000101a0ca <+1098>: cmp %r11d,%r8d
0x000000000101a0cd <+1101>: jbe 0x101a060 <_ZN2v88internal6String17ComputeAndSetHashEv+992>
0x000000000101a0cf <+1103>: movb $0x0,-0x34(%rbp)
0x000000000101a0d3 <+1107>: add $0x1,%esi
0x000000000101a0d6 <+1110>: jmpq 0x101a1c0 <_ZN2v88internal6String17ComputeAndSetHashEv+1344>
0x000000000101a0db <+1115>: nopl 0x0(%rax,%rax,1)
0x000000000101a0e0 <+1120>: test %rsi,%rsi
0x000000000101a0e3 <+1123>: je 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a0e9 <+1129>: lea -0x40(%rbp),%rdi
0x000000000101a0ed <+1133>: callq 0x10194d0 <_ZN2v88internal21IteratingStringHasher15VisitConsStringEPNS0_10ConsStringE>
0x000000000101a0f2 <+1138>: mov -0x40(%rbp),%ebx
0x000000000101a0f5 <+1141>: cmp $0x3fff,%ebx
0x000000000101a0fb <+1147>: jg 0x1019cd1 <_ZN2v88internal6String17ComputeAndSetHashEv+81>
0x000000000101a101 <+1153>: cmpb $0x0,-0x34(%rbp)
0x000000000101a105 <+1157>: jne 0x101a2c0 <_ZN2v88internal6String17ComputeAndSetHashEv+1600>
0x000000000101a10b <+1163>: mov -0x3c(%rbp),%eax
0x000000000101a10e <+1166>: lea (%rax,%rax,8),%edx
0x000000000101a111 <+1169>: mov %edx,%eax
0x000000000101a113 <+1171>: shr $0xb,%eax
0x000000000101a116 <+1174>: xor %edx,%eax
0x000000000101a118 <+1176>: mov %eax,%ebx
0x000000000101a11a <+1178>: shl $0xf,%ebx
0x000000000101a11d <+1181>: add %ebx,%eax
0x000000000101a11f <+1183>: test $0x3fffffff,%eax
0x000000000101a124 <+1188>: je 0x101a2a8 <_ZN2v88internal6String17ComputeAndSetHashEv+1576>
0x000000000101a12a <+1194>: lea 0x2(,%rax,4),%ebx
0x000000000101a131 <+1201>: mov %ebx,%eax
0x000000000101a133 <+1203>: shr $0x2,%eax
0x000000000101a136 <+1206>: jmpq 0x1019cdd <_ZN2v88internal6String17ComputeAndSetHashEv+93>
0x000000000101a13b <+1211>: nopl 0x0(%rax,%rax,1)
0x000000000101a140 <+1216>: mov $0x17684d0,%edx
0x000000000101a145 <+1221>: xor %esi,%esi
0x000000000101a147 <+1223>: mov $0x16b0cd7,%edi
0x000000000101a14c <+1228>: xor %eax,%eax
0x000000000101a14e <+1230>: callq 0x15871d0 <V8_Fatal>
0x000000000101a153 <+1235>: nopl 0x0(%rax,%rax,1)
0x000000000101a158 <+1240>: xor %esi,%esi
0x000000000101a15a <+1242>: nopw 0x0(%rax,%rax,1)
0x000000000101a160 <+1248>: cmp %esi,%ebx
0x000000000101a162 <+1250>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a164 <+1252>: movslq %esi,%rcx
0x000000000101a167 <+1255>: sub %esi,%r13d
0x000000000101a16a <+1258>: mov -0x3c(%rbp),%eax
0x000000000101a16d <+1261>: lea (%rdi,%rcx,2),%rdx
0x000000000101a171 <+1265>: add %r13,%rcx
0x000000000101a174 <+1268>: lea 0x2(%rdi,%rcx,2),%rsi
0x000000000101a179 <+1273>: nopl 0x0(%rax)
0x000000000101a180 <+1280>: movzwl (%rdx),%ecx
0x000000000101a183 <+1283>: add $0x2,%rdx
0x000000000101a187 <+1287>: add %ecx,%eax
0x000000000101a189 <+1289>: mov %eax,%ecx
0x000000000101a18b <+1291>: shl $0xa,%ecx
0x000000000101a18e <+1294>: add %eax,%ecx
0x000000000101a190 <+1296>: mov %ecx,%eax
0x000000000101a192 <+1298>: shr $0x6,%eax
0x000000000101a195 <+1301>: xor %ecx,%eax
0x000000000101a197 <+1303>: cmp %rsi,%rdx
0x000000000101a19a <+1306>: mov %eax,-0x3c(%rbp)
0x000000000101a19d <+1309>: jne 0x101a180 <_ZN2v88internal6String17ComputeAndSetHashEv+1280>
0x000000000101a19f <+1311>: lea -0x40(%rbp),%rdi
0x000000000101a1a3 <+1315>: callq 0x1007080 <_ZN2v88internal12StringHasher12GetHashFieldEv>
0x000000000101a1a8 <+1320>: mov %eax,%ebx
0x000000000101a1aa <+1322>: shr $0x2,%eax
0x000000000101a1ad <+1325>: jmpq 0x1019cdd <_ZN2v88internal6String17ComputeAndSetHashEv+93>
0x000000000101a1b2 <+1330>: nopw 0x0(%rax,%rax,1)
---Type <return> to continue, or q <return> to quit---
0x000000000101a1b8 <+1336>: xor %esi,%esi
0x000000000101a1ba <+1338>: nopw 0x0(%rax,%rax,1)
0x000000000101a1c0 <+1344>: cmp %esi,%ebx
0x000000000101a1c2 <+1346>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a1c4 <+1348>: movslq %esi,%rcx
0x000000000101a1c7 <+1351>: sub %esi,%r13d
0x000000000101a1ca <+1354>: mov -0x3c(%rbp),%eax
0x000000000101a1cd <+1357>: lea (%rdi,%rcx,2),%rdx
0x000000000101a1d1 <+1361>: add %r13,%rcx
0x000000000101a1d4 <+1364>: lea 0x2(%rdi,%rcx,2),%rsi
0x000000000101a1d9 <+1369>: nopl 0x0(%rax)
0x000000000101a1e0 <+1376>: movzwl (%rdx),%ecx
0x000000000101a1e3 <+1379>: add $0x2,%rdx
0x000000000101a1e7 <+1383>: add %ecx,%eax
0x000000000101a1e9 <+1385>: mov %eax,%ecx
0x000000000101a1eb <+1387>: shl $0xa,%ecx
0x000000000101a1ee <+1390>: add %eax,%ecx
0x000000000101a1f0 <+1392>: mov %ecx,%eax
0x000000000101a1f2 <+1394>: shr $0x6,%eax
0x000000000101a1f5 <+1397>: xor %ecx,%eax
0x000000000101a1f7 <+1399>: cmp %rsi,%rdx
0x000000000101a1fa <+1402>: mov %eax,-0x3c(%rbp)
0x000000000101a1fd <+1405>: jne 0x101a1e0 <_ZN2v88internal6String17ComputeAndSetHashEv+1376>
0x000000000101a1ff <+1407>: jmp 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a201 <+1409>: nopl 0x0(%rax)
0x000000000101a208 <+1416>: xor %esi,%esi
0x000000000101a20a <+1418>: nopw 0x0(%rax,%rax,1)
0x000000000101a210 <+1424>: cmp %ebx,%esi
0x000000000101a212 <+1426>: jge 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a214 <+1428>: movslq %esi,%rcx
0x000000000101a217 <+1431>: mov -0x3c(%rbp),%eax
0x000000000101a21a <+1434>: sub %esi,%r13d
0x000000000101a21d <+1437>: lea (%rdi,%rcx,1),%rdx
0x000000000101a221 <+1441>: lea 0x1(%rdi,%rcx,1),%rcx
0x000000000101a226 <+1446>: add %rcx,%r13
0x000000000101a229 <+1449>: nopl 0x0(%rax)
0x000000000101a230 <+1456>: movzbl (%rdx),%ecx
0x000000000101a233 <+1459>: add $0x1,%rdx
0x000000000101a237 <+1463>: add %ecx,%eax
0x000000000101a239 <+1465>: mov %eax,%ecx
0x000000000101a23b <+1467>: shl $0xa,%ecx
0x000000000101a23e <+1470>: add %eax,%ecx
0x000000000101a240 <+1472>: mov %ecx,%eax
0x000000000101a242 <+1474>: shr $0x6,%eax
0x000000000101a245 <+1477>: xor %ecx,%eax
0x000000000101a247 <+1479>: cmp %r13,%rdx
0x000000000101a24a <+1482>: mov %eax,-0x3c(%rbp)
0x000000000101a24d <+1485>: jne 0x101a230 <_ZN2v88internal6String17ComputeAndSetHashEv+1456>
0x000000000101a24f <+1487>: jmpq 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a254 <+1492>: nopl 0x0(%rax)
0x000000000101a258 <+1496>: xor %edi,%edi
0x000000000101a25a <+1498>: nopw 0x0(%rax,%rax,1)
0x000000000101a260 <+1504>: cmp %edi,%ebx
0x000000000101a262 <+1506>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a268 <+1512>: movslq %edi,%rcx
0x000000000101a26b <+1515>: mov -0x3c(%rbp),%eax
0x000000000101a26e <+1518>: sub %edi,%r13d
0x000000000101a271 <+1521>: lea (%r15,%rcx,1),%rdx
0x000000000101a275 <+1525>: lea 0x1(%r15,%rcx,1),%rcx
0x000000000101a27a <+1530>: add %rcx,%r13
0x000000000101a27d <+1533>: nopl (%rax)
0x000000000101a280 <+1536>: movzbl (%rdx),%ecx
0x000000000101a283 <+1539>: add $0x1,%rdx
0x000000000101a287 <+1543>: add %ecx,%eax
0x000000000101a289 <+1545>: mov %eax,%ecx
0x000000000101a28b <+1547>: shl $0xa,%ecx
0x000000000101a28e <+1550>: add %eax,%ecx
0x000000000101a290 <+1552>: mov %ecx,%eax
0x000000000101a292 <+1554>: shr $0x6,%eax
0x000000000101a295 <+1557>: xor %ecx,%eax
0x000000000101a297 <+1559>: cmp %r13,%rdx
0x000000000101a29a <+1562>: mov %eax,-0x3c(%rbp)
0x000000000101a29d <+1565>: jne 0x101a280 <_ZN2v88internal6String17ComputeAndSetHashEv+1536>
0x000000000101a29f <+1567>: jmpq 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a2a4 <+1572>: nopl 0x0(%rax)
0x000000000101a2a8 <+1576>: mov $0x1b,%eax
0x000000000101a2ad <+1581>: mov $0x6e,%ebx
0x000000000101a2b2 <+1586>: jmpq 0x1019cdd <_ZN2v88internal6String17ComputeAndSetHashEv+93>
0x000000000101a2b7 <+1591>: nopw 0x0(%rax,%rax,1)
0x000000000101a2c0 <+1600>: mov -0x38(%rbp),%eax
0x000000000101a2c3 <+1603>: shl $0x1a,%ebx
0x000000000101a2c6 <+1606>: shl $0x2,%eax
0x000000000101a2c9 <+1609>: or %eax,%ebx
0x000000000101a2cb <+1611>: mov %ebx,%eax
0x000000000101a2cd <+1613>: shr $0x2,%eax
0x000000000101a2d0 <+1616>: jmpq 0x1019cdd <_ZN2v88internal6String17ComputeAndSetHashEv+93>
0x000000000101a2d5 <+1621>: nopl (%rax)
0x000000000101a2d8 <+1624>: add $0x1,%esi
0x000000000101a2db <+1627>: movb $0x0,-0x34(%rbp)
0x000000000101a2df <+1631>: jmpq 0x101a1c0 <_ZN2v88internal6String17ComputeAndSetHashEv+1344>
0x000000000101a2e4 <+1636>: nopl 0x0(%rax)
0x000000000101a2e8 <+1640>: add $0x1,%esi
0x000000000101a2eb <+1643>: movb $0x0,-0x34(%rbp)
0x000000000101a2ef <+1647>: jmpq 0x101a160 <_ZN2v88internal6String17ComputeAndSetHashEv+1248>
---Type <return> to continue, or q <return> to quit---
0x000000000101a2f4 <+1652>: nopl 0x0(%rax)
0x000000000101a2f8 <+1656>: add $0x1,%edi
0x000000000101a2fb <+1659>: movb $0x0,-0x34(%rbp)
0x000000000101a2ff <+1663>: jmpq 0x101a260 <_ZN2v88internal6String17ComputeAndSetHashEv+1504>
0x000000000101a304 <+1668>: nopl 0x0(%rax)
0x000000000101a308 <+1672>: add $0x1,%esi
0x000000000101a30b <+1675>: movb $0x0,-0x34(%rbp)
0x000000000101a30f <+1679>: jmpq 0x101a210 <_ZN2v88internal6String17ComputeAndSetHashEv+1424>
0x000000000101a314 <+1684>: mov $0x19999999,%r10d
0x000000000101a31a <+1690>: jmp 0x101a365 <_ZN2v88internal6String17ComputeAndSetHashEv+1765>
0x000000000101a31c <+1692>: nopl 0x0(%rax)
0x000000000101a320 <+1696>: lea (%r9,%r9,4),%r8d
0x000000000101a324 <+1700>: add $0x1,%esi
0x000000000101a327 <+1703>: cmp %esi,%r14d
0x000000000101a32a <+1706>: lea -0x30(%rax,%r8,2),%eax
0x000000000101a32f <+1711>: mov %eax,-0x38(%rbp)
0x000000000101a332 <+1714>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a338 <+1720>: movzwl (%rcx),%eax
0x000000000101a33b <+1723>: add $0x2,%rcx
0x000000000101a33f <+1727>: add %eax,%edx
0x000000000101a341 <+1729>: mov %edx,%eax
0x000000000101a343 <+1731>: shl $0xa,%eax
0x000000000101a346 <+1734>: add %edx,%eax
0x000000000101a348 <+1736>: mov %eax,%edx
0x000000000101a34a <+1738>: shr $0x6,%edx
0x000000000101a34d <+1741>: xor %eax,%edx
0x000000000101a34f <+1743>: mov %edx,-0x3c(%rbp)
0x000000000101a352 <+1746>: movzwl -0x2(%rcx),%eax
0x000000000101a356 <+1750>: lea -0x30(%rax),%r8d
0x000000000101a35a <+1754>: cmp $0x9,%r8w
0x000000000101a35f <+1759>: ja 0x101a2d8 <_ZN2v88internal6String17ComputeAndSetHashEv+1624>
0x000000000101a365 <+1765>: cmpb $0x0,-0x33(%rbp)
0x000000000101a369 <+1769>: je 0x101a36f <_ZN2v88internal6String17ComputeAndSetHashEv+1775>
0x000000000101a36b <+1771>: movb $0x0,-0x33(%rbp)
0x000000000101a36f <+1775>: lea -0x2d(%rax),%r8d
0x000000000101a373 <+1779>: mov -0x38(%rbp),%r9d
0x000000000101a377 <+1783>: mov %r10d,%r11d
0x000000000101a37a <+1786>: sar $0x3,%r8d
0x000000000101a37e <+1790>: sub %r8d,%r11d
0x000000000101a381 <+1793>: cmp %r9d,%r11d
0x000000000101a384 <+1796>: jae 0x101a320 <_ZN2v88internal6String17ComputeAndSetHashEv+1696>
0x000000000101a386 <+1798>: jmpq 0x101a0cf <_ZN2v88internal6String17ComputeAndSetHashEv+1103>
0x000000000101a38b <+1803>: mov $0x19999999,%r10d
0x000000000101a391 <+1809>: jmp 0x101a3dd <_ZN2v88internal6String17ComputeAndSetHashEv+1885>
0x000000000101a393 <+1811>: nopl 0x0(%rax,%rax,1)
0x000000000101a398 <+1816>: lea (%r9,%r9,4),%r8d
0x000000000101a39c <+1820>: add $0x1,%esi
0x000000000101a39f <+1823>: cmp %esi,%r14d
0x000000000101a3a2 <+1826>: lea -0x30(%rax,%r8,2),%eax
0x000000000101a3a7 <+1831>: mov %eax,-0x38(%rbp)
0x000000000101a3aa <+1834>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a3b0 <+1840>: movzwl (%rcx),%eax
0x000000000101a3b3 <+1843>: add $0x2,%rcx
0x000000000101a3b7 <+1847>: add %eax,%edx
0x000000000101a3b9 <+1849>: mov %edx,%eax
0x000000000101a3bb <+1851>: shl $0xa,%eax
0x000000000101a3be <+1854>: add %edx,%eax
0x000000000101a3c0 <+1856>: mov %eax,%edx
0x000000000101a3c2 <+1858>: shr $0x6,%edx
0x000000000101a3c5 <+1861>: xor %eax,%edx
0x000000000101a3c7 <+1863>: mov %edx,-0x3c(%rbp)
0x000000000101a3ca <+1866>: movzwl -0x2(%rcx),%eax
0x000000000101a3ce <+1870>: lea -0x30(%rax),%r8d
0x000000000101a3d2 <+1874>: cmp $0x9,%r8w
0x000000000101a3d7 <+1879>: ja 0x101a2e8 <_ZN2v88internal6String17ComputeAndSetHashEv+1640>
0x000000000101a3dd <+1885>: cmpb $0x0,-0x33(%rbp)
0x000000000101a3e1 <+1889>: je 0x101a3e7 <_ZN2v88internal6String17ComputeAndSetHashEv+1895>
0x000000000101a3e3 <+1891>: movb $0x0,-0x33(%rbp)
0x000000000101a3e7 <+1895>: lea -0x2d(%rax),%r8d
0x000000000101a3eb <+1899>: mov -0x38(%rbp),%r9d
0x000000000101a3ef <+1903>: mov %r10d,%r15d
0x000000000101a3f2 <+1906>: sar $0x3,%r8d
0x000000000101a3f6 <+1910>: sub %r8d,%r15d
0x000000000101a3f9 <+1913>: cmp %r9d,%r15d
0x000000000101a3fc <+1916>: jae 0x101a398 <_ZN2v88internal6String17ComputeAndSetHashEv+1816>
0x000000000101a3fe <+1918>: jmpq 0x1019ff7 <_ZN2v88internal6String17ComputeAndSetHashEv+887>
0x000000000101a403 <+1923>: nopl 0x0(%rax,%rax,1)
0x000000000101a408 <+1928>: lea 0x1(%r15),%rax
0x000000000101a40c <+1932>: xor %edi,%edi
0x000000000101a40e <+1934>: mov $0x19999999,%r9d
0x000000000101a414 <+1940>: jmp 0x101a465 <_ZN2v88internal6String17ComputeAndSetHashEv+2021>
0x000000000101a416 <+1942>: nopw %cs:0x0(%rax,%rax,1)
0x000000000101a420 <+1952>: lea (%r8,%r8,4),%esi
0x000000000101a424 <+1956>: add $0x1,%edi
0x000000000101a427 <+1959>: cmp %edi,%r14d
0x000000000101a42a <+1962>: lea -0x30(%rdx,%rsi,2),%edx
0x000000000101a42e <+1966>: mov %edx,-0x38(%rbp)
0x000000000101a431 <+1969>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a437 <+1975>: movzbl (%rax),%edx
0x000000000101a43a <+1978>: add $0x1,%rax
0x000000000101a43e <+1982>: add %edx,%ecx
0x000000000101a440 <+1984>: mov %ecx,%edx
0x000000000101a442 <+1986>: shl $0xa,%edx
0x000000000101a445 <+1989>: add %ecx,%edx
---Type <return> to continue, or q <return> to quit---
0x000000000101a447 <+1991>: mov %edx,%ecx
0x000000000101a449 <+1993>: shr $0x6,%ecx
0x000000000101a44c <+1996>: xor %edx,%ecx
0x000000000101a44e <+1998>: mov %ecx,-0x3c(%rbp)
0x000000000101a451 <+2001>: movzbl -0x1(%rax),%edx
0x000000000101a455 <+2005>: movzbl %dl,%esi
0x000000000101a458 <+2008>: sub $0x30,%esi
0x000000000101a45b <+2011>: cmp $0x9,%si
0x000000000101a45f <+2015>: ja 0x101a2f8 <_ZN2v88internal6String17ComputeAndSetHashEv+1656>
0x000000000101a465 <+2021>: cmpb $0x0,-0x33(%rbp)
0x000000000101a469 <+2025>: je 0x101a46f <_ZN2v88internal6String17ComputeAndSetHashEv+2031>
0x000000000101a46b <+2027>: movb $0x0,-0x33(%rbp)
0x000000000101a46f <+2031>: lea -0x2d(%rdx),%esi
0x000000000101a472 <+2034>: mov -0x38(%rbp),%r8d
0x000000000101a476 <+2038>: mov %r9d,%r10d
0x000000000101a479 <+2041>: sar $0x3,%esi
0x000000000101a47c <+2044>: sub %esi,%r10d
0x000000000101a47f <+2047>: cmp %r10d,%r8d
0x000000000101a482 <+2050>: jbe 0x101a420 <_ZN2v88internal6String17ComputeAndSetHashEv+1952>
0x000000000101a484 <+2052>: jmpq 0x1019e0d <_ZN2v88internal6String17ComputeAndSetHashEv+397>
0x000000000101a489 <+2057>: mov $0x19999999,%r10d
0x000000000101a48f <+2063>: jmp 0x101a4e1 <_ZN2v88internal6String17ComputeAndSetHashEv+2145>
0x000000000101a491 <+2065>: nopl 0x0(%rax)
0x000000000101a498 <+2072>: lea (%r9,%r9,4),%r8d
0x000000000101a49c <+2076>: add $0x1,%esi
0x000000000101a49f <+2079>: cmp %esi,%r14d
0x000000000101a4a2 <+2082>: lea -0x30(%rax,%r8,2),%eax
0x000000000101a4a7 <+2087>: mov %eax,-0x38(%rbp)
0x000000000101a4aa <+2090>: jle 0x101a19f <_ZN2v88internal6String17ComputeAndSetHashEv+1311>
0x000000000101a4b0 <+2096>: movzbl (%rcx),%eax
0x000000000101a4b3 <+2099>: add $0x1,%rcx
0x000000000101a4b7 <+2103>: add %eax,%edx
0x000000000101a4b9 <+2105>: mov %edx,%eax
0x000000000101a4bb <+2107>: shl $0xa,%eax
0x000000000101a4be <+2110>: add %edx,%eax
0x000000000101a4c0 <+2112>: mov %eax,%edx
0x000000000101a4c2 <+2114>: shr $0x6,%edx
0x000000000101a4c5 <+2117>: xor %eax,%edx
0x000000000101a4c7 <+2119>: mov %edx,-0x3c(%rbp)
0x000000000101a4ca <+2122>: movzbl -0x1(%rcx),%eax
0x000000000101a4ce <+2126>: movzbl %al,%r8d
0x000000000101a4d2 <+2130>: sub $0x30,%r8d
0x000000000101a4d6 <+2134>: cmp $0x9,%r8w
0x000000000101a4db <+2139>: ja 0x101a308 <_ZN2v88internal6String17ComputeAndSetHashEv+1672>
0x000000000101a4e1 <+2145>: cmpb $0x0,-0x33(%rbp)
0x000000000101a4e5 <+2149>: je 0x101a4eb <_ZN2v88internal6String17ComputeAndSetHashEv+2155>
0x000000000101a4e7 <+2151>: movb $0x0,-0x33(%rbp)
0x000000000101a4eb <+2155>: lea -0x2d(%rax),%r8d
0x000000000101a4ef <+2159>: mov -0x38(%rbp),%r9d
0x000000000101a4f3 <+2163>: mov %r10d,%r11d
0x000000000101a4f6 <+2166>: sar $0x3,%r8d
0x000000000101a4fa <+2170>: sub %r8d,%r11d
0x000000000101a4fd <+2173>: cmp %r9d,%r11d
0x000000000101a500 <+2176>: jae 0x101a498 <_ZN2v88internal6String17ComputeAndSetHashEv+2072>
0x000000000101a502 <+2178>: jmpq 0x1019ef1 <_ZN2v88internal6String17ComputeAndSetHashEv+625>
0x000000000101a507 <+2183>: mov $0x1,%edi
0x000000000101a50c <+2188>: jmpq 0x101a2fb <_ZN2v88internal6String17ComputeAndSetHashEv+1659>
0x000000000101a511 <+2193>: mov $0x1,%esi
0x000000000101a516 <+2198>: jmpq 0x101a30b <_ZN2v88internal6String17ComputeAndSetHashEv+1675>
0x000000000101a51b <+2203>: mov $0x1,%esi
0x000000000101a520 <+2208>: jmpq 0x101a2db <_ZN2v88internal6String17ComputeAndSetHashEv+1627>
0x000000000101a525 <+2213>: mov $0x1,%esi
0x000000000101a52a <+2218>: jmpq 0x101a2eb <_ZN2v88internal6String17ComputeAndSetHashEv+1643>
End of assembler dump.
/cc @nodejs/v8 @hashseed
Reproduced using v6.11.1
$ node -v
v6.11.1
$ uname -a
Linux myitcv-virtual-machine 4.10.0-28-generic #32-Ubuntu SMP Fri Jun 30 05:32:18 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
core_dump.node.23896.myitcv-virtual-machine.1501590439
(gdb) where
#0 0x0000000000d97e28 in v8::internal::String::SlowEquals(v8::internal::String*) ()
#1 0x0000000000d9a159 in v8::internal::HashTable<v8::internal::StringTable, v8::internal::StringTableShape, v8::internal::HashTableKey*>::FindEntry(v8::internal::Isolate*, v8::internal::HashTableKey*) ()
#2 0x0000000000d9af40 in v8::internal::StringTable::LookupString(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>) ()
#3 0x0000000000d6b2e1 in v8::internal::LookupIterator::PropertyOrElement(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, bool*, v8::internal::LookupIterator::Configuration) ()
#4 0x0000000000ed3440 in v8::internal::Runtime::GetObjectProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) ()
#5 0x0000000000ed3501 in v8::internal::KeyedGetObjectProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) ()
#6 0x0000000000ed6720 in v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*) ()
#7 0x000003c9d9b060c7 in ?? ()
#8 0x000003c9d9d3bb35 in ?? ()
#9 0x000003c9d9b06001 in ?? ()
#10 0x00007ffc2fb445b0 in ?? ()
#11 0x0000000300000000 in ?? ()
#12 0x00007ffc2fb44788 in ?? ()
#13 0x000003c9da144065 in ?? ()
#14 0x00000c17cd40f171 in ?? ()
#15 0x0000257af7ea17e9 in ?? ()
#16 0x0000000000000000 in ?? ()
(gdb) bt full
#0 0x0000000000d97e28 in v8::internal::String::SlowEquals(v8::internal::String*) ()
No symbol table info available.
#1 0x0000000000d9a159 in v8::internal::HashTable<v8::internal::StringTable, v8::internal::StringTableShape, v8::internal::HashTableKey*>::FindEntry(v8::internal::Isolate*, v8::internal::HashTableKey*) ()
No symbol table info available.
#2 0x0000000000d9af40 in v8::internal::StringTable::LookupString(v8::internal::Isolate*, v8::internal::Handle<v8::internal::String>) ()
No symbol table info available.
#3 0x0000000000d6b2e1 in v8::internal::LookupIterator::PropertyOrElement(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, bool*, v8::internal::LookupIterator::Configuration) ()
No symbol table info available.
#4 0x0000000000ed3440 in v8::internal::Runtime::GetObjectProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) ()
No symbol table info available.
#5 0x0000000000ed3501 in v8::internal::KeyedGetObjectProperty(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>) ()
No symbol table info available.
#6 0x0000000000ed6720 in v8::internal::Runtime_KeyedGetProperty(int, v8::internal::Object**, v8::internal::Isolate*) ()
No symbol table info available.
#7 0x000003c9d9b060c7 in ?? ()
No symbol table info available.
#8 0x000003c9d9d3bb35 in ?? ()
No symbol table info available.
#9 0x000003c9d9b06001 in ?? ()
No symbol table info available.
#10 0x00007ffc2fb445b0 in ?? ()
No symbol table info available.
#11 0x0000000300000000 in ?? ()
No symbol table info available.
#12 0x00007ffc2fb44788 in ?? ()
No symbol table info available.
#13 0x000003c9da144065 in ?? ()
No symbol table info available.
#14 0x00000c17cd40f171 in ?? ()
No symbol table info available.
#15 0x0000257af7ea17e9 in ?? ()
No symbol table info available.
#16 0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) info registers
rax 0x3da7804bf9 264803208185
rbx 0x24 36
rcx 0x14edbd0 21945296
rdx 0x5 5
rsi 0xc17cd40f188 13296367366536
rdi 0xdc8e7ddeaf8 15156534700792
rbp 0x7ffc2fb44290 0x7ffc2fb44290
rsp 0x7ffc2fb43fe0 0x7ffc2fb43fe0
r8 0xc17cd40f188 13296367366536
r9 0x7 7
r10 0xc17cd40f171 13296367366513
r11 0x4 4
r12 0xdc8e7ddeae1 15156534700769
r13 0x5 5
r14 0xc17cd40f171 13296367366513
r15 0x2ed3290 49099408
rip 0xd97e28 0xd97e28 <v8::internal::String::SlowEquals(v8::internal::String*)+1720>
eflags 0x10202 [ IF RF ]
cs 0x33 51
ss 0x2b 43
ds 0x0 0
es 0x0 0
fs 0x0 0
gs 0x0 0
(gdb) disassemble
Dump of assembler code for function _ZN2v88internal6String10SlowEqualsEPS1_:
0x0000000000d97770 <+0>: push %rbp
0x0000000000d97771 <+1>: mov %rsp,%rbp
0x0000000000d97774 <+4>: push %r15
0x0000000000d97776 <+6>: push %r14
0x0000000000d97778 <+8>: mov %rsi,%r14
0x0000000000d9777b <+11>: push %r13
0x0000000000d9777d <+13>: push %r12
0x0000000000d9777f <+15>: mov %rdi,%r12
0x0000000000d97782 <+18>: push %rbx
0x0000000000d97783 <+19>: sub $0x288,%rsp
0x0000000000d9778a <+26>: movslq 0x13(%rdi),%r13
0x0000000000d9778e <+30>: cmp %r13d,0x13(%rsi)
0x0000000000d97792 <+34>: je 0xd977b0 <_ZN2v88internal6String10SlowEqualsEPS1_+64>
0x0000000000d97794 <+36>: xor %ebx,%ebx
0x0000000000d97796 <+38>: add $0x288,%rsp
0x0000000000d9779d <+45>: mov %ebx,%eax
0x0000000000d9779f <+47>: pop %rbx
0x0000000000d977a0 <+48>: pop %r12
0x0000000000d977a2 <+50>: pop %r13
0x0000000000d977a4 <+52>: pop %r14
0x0000000000d977a6 <+54>: pop %r15
0x0000000000d977a8 <+56>: pop %rbp
0x0000000000d977a9 <+57>: retq
0x0000000000d977aa <+58>: nopw 0x0(%rax,%rax,1)
0x0000000000d977b0 <+64>: test %r13d,%r13d
0x0000000000d977b3 <+67>: mov $0x1,%ebx
0x0000000000d977b8 <+72>: je 0xd97796 <_ZN2v88internal6String10SlowEqualsEPS1_+38>
0x0000000000d977ba <+74>: mov 0x7(%rdi),%eax
0x0000000000d977bd <+77>: test $0x1,%al
0x0000000000d977bf <+79>: jne 0xd977d3 <_ZN2v88internal6String10SlowEqualsEPS1_+99>
0x0000000000d977c1 <+81>: mov 0x7(%rsi),%edx
0x0000000000d977c4 <+84>: test $0x1,%dl
0x0000000000d977c7 <+87>: jne 0xd977d3 <_ZN2v88internal6String10SlowEqualsEPS1_+99>
0x0000000000d977c9 <+89>: shr $0x2,%eax
0x0000000000d977cc <+92>: shr $0x2,%edx
0x0000000000d977cf <+95>: cmp %edx,%eax
0x0000000000d977d1 <+97>: jne 0xd97794 <_ZN2v88internal6String10SlowEqualsEPS1_+36>
0x0000000000d977d3 <+99>: mov -0x1(%r12),%rax
0x0000000000d977d8 <+104>: movzbl 0xb(%rax),%eax
0x0000000000d977dc <+108>: and $0x7,%eax
0x0000000000d977df <+111>: jmpq *0x14ed118(,%rax,8)
0x0000000000d977e6 <+118>: nopw %cs:0x0(%rax,%rax,1)
0x0000000000d977f0 <+128>: movzbl 0x17(%r12),%ebx
0x0000000000d977f6 <+134>: nopw %cs:0x0(%rax,%rax,1)
0x0000000000d97800 <+144>: mov -0x1(%r14),%rdx
0x0000000000d97804 <+148>: movzbl 0xb(%rdx),%edx
0x0000000000d97808 <+152>: and $0x7,%edx
0x0000000000d9780b <+155>: jmpq *0x14ed158(,%rdx,8)
0x0000000000d97812 <+162>: nopw 0x0(%rax,%rax,1)
0x0000000000d97818 <+168>: xor %esi,%esi
0x0000000000d9781a <+170>: mov %r12,%rdi
0x0000000000d9781d <+173>: callq 0xd7eb60 <_ZN2v88internal12SlicedString15SlicedStringGetEi>
0x0000000000d97822 <+178>: mov %eax,%ebx
0x0000000000d97824 <+180>: jmp 0xd97800 <_ZN2v88internal6String10SlowEqualsEPS1_+144>
0x0000000000d97826 <+182>: nopw %cs:0x0(%rax,%rax,1)
0x0000000000d97830 <+192>: xor %esi,%esi
0x0000000000d97832 <+194>: mov %r12,%rdi
0x0000000000d97835 <+197>: callq 0xc5c5e0 <_ZN2v88internal21ExternalTwoByteString24ExternalTwoByteStringGetEi>
0x0000000000d9783a <+202>: mov %eax,%ebx
0x0000000000d9783c <+204>: jmp 0xd97800 <_ZN2v88internal6String10SlowEqualsEPS1_+144>
0x0000000000d9783e <+206>: xchg %ax,%ax
0x0000000000d97840 <+208>: xor %esi,%esi
0x0000000000d97842 <+210>: mov %r12,%rdi
0x0000000000d97845 <+213>: callq 0xd7ebf0 <_ZN2v88internal10ConsString13ConsStringGetEi>
0x0000000000d9784a <+218>: mov %eax,%ebx
0x0000000000d9784c <+220>: jmp 0xd97800 <_ZN2v88internal6String10SlowEqualsEPS1_+144>
0x0000000000d9784e <+222>: xchg %ax,%ax
0x0000000000d97850 <+224>: movzwl 0x17(%r12),%ebx
0x0000000000d97856 <+230>: jmp 0xd97800 <_ZN2v88internal6String10SlowEqualsEPS1_+144>
0x0000000000d97858 <+232>: nopl 0x0(%rax,%rax,1)
0x0000000000d97860 <+240>: movzbl 0x17(%r14),%eax
0x0000000000d97865 <+245>: nopl (%rax)
0x0000000000d97868 <+248>: cmp %ax,%bx
0x0000000000d9786b <+251>: jne 0xd97794 <_ZN2v88internal6String10SlowEqualsEPS1_+36>
0x0000000000d97871 <+257>: mov -0x1(%r12),%rax
0x0000000000d97876 <+262>: movzbl 0xb(%rax),%eax
0x0000000000d9787a <+266>: cmp $0x7f,%eax
0x0000000000d9787d <+269>: jle 0xd97dd1 <_ZN2v88internal6String10SlowEqualsEPS1_+1633>
0x0000000000d97883 <+275>: movslq 0x13(%r12),%rbx
0x0000000000d97888 <+280>: movb $0x1,-0x168(%rbp)
0x0000000000d9788f <+287>: xor %r13d,%r13d
0x0000000000d97892 <+290>: movl $0x0,-0x164(%rbp)
0x0000000000d9789c <+300>: movq $0x0,-0x160(%rbp)
0x0000000000d978a7 <+311>: movb $0x1,-0x40(%rbp)
0x0000000000d978ab <+315>: movl $0x0,-0x3c(%rbp)
0x0000000000d978b2 <+322>: movq $0x0,-0x38(%rbp)
0x0000000000d978ba <+330>: mov %ebx,%r15d
0x0000000000d978bd <+333>: mov -0x1(%r12),%rax
0x0000000000d978c2 <+338>: movzbl 0xb(%rax),%eax
0x0000000000d978c6 <+342>: and $0x7,%eax
0x0000000000d978c9 <+345>: jmpq *0x14ed198(,%rax,8)
0x0000000000d978d0 <+352>: xor %esi,%esi
0x0000000000d978d2 <+354>: mov %r14,%rdi
---Type <return> to continue, or q <return> to quit---
0x0000000000d978d5 <+357>: callq 0xd7eb60 <_ZN2v88internal12SlicedString15SlicedStringGetEi>
0x0000000000d978da <+362>: jmp 0xd97868 <_ZN2v88internal6String10SlowEqualsEPS1_+248>
0x0000000000d978dc <+364>: nopl 0x0(%rax)
0x0000000000d978e0 <+368>: xor %esi,%esi
0x0000000000d978e2 <+370>: mov %r14,%rdi
0x0000000000d978e5 <+373>: callq 0xc5c5e0 <_ZN2v88internal21ExternalTwoByteString24ExternalTwoByteStringGetEi>
0x0000000000d978ea <+378>: jmpq 0xd97868 <_ZN2v88internal6String10SlowEqualsEPS1_+248>
0x0000000000d978ef <+383>: nop
0x0000000000d978f0 <+384>: xor %esi,%esi
0x0000000000d978f2 <+386>: mov %r14,%rdi
0x0000000000d978f5 <+389>: callq 0xd7ebf0 <_ZN2v88internal10ConsString13ConsStringGetEi>
0x0000000000d978fa <+394>: jmpq 0xd97868 <_ZN2v88internal6String10SlowEqualsEPS1_+248>
0x0000000000d978ff <+399>: nop
0x0000000000d97900 <+400>: movzwl 0x17(%r14),%eax
0x0000000000d97905 <+405>: jmpq 0xd97868 <_ZN2v88internal6String10SlowEqualsEPS1_+248>
0x0000000000d9790a <+410>: xor %esi,%esi
0x0000000000d9790c <+412>: mov %r12,%rdi
0x0000000000d9790f <+415>: callq 0xc5c5b0 <_ZN2v88internal21ExternalOneByteString24ExternalOneByteStringGetEi>
0x0000000000d97914 <+420>: mov %eax,%ebx
0x0000000000d97916 <+422>: jmpq 0xd97800 <_ZN2v88internal6String10SlowEqualsEPS1_+144>
0x0000000000d9791b <+427>: xor %esi,%esi
0x0000000000d9791d <+429>: mov %r14,%rdi
0x0000000000d97920 <+432>: callq 0xc5c5b0 <_ZN2v88internal21ExternalOneByteString24ExternalOneByteStringGetEi>
0x0000000000d97925 <+437>: jmpq 0xd97868 <_ZN2v88internal6String10SlowEqualsEPS1_+248>
0x0000000000d9792a <+442>: movslq %r13d,%r13
0x0000000000d9792d <+445>: mov %ebx,-0x164(%rbp)
0x0000000000d97933 <+451>: lea 0x17(%r12,%r13,1),%rax
0x0000000000d97938 <+456>: mov %rax,-0x160(%rbp)
0x0000000000d9793f <+463>: lea -0x280(%rbp),%rax
0x0000000000d97946 <+470>: movl $0x0,-0x178(%rbp)
0x0000000000d97950 <+480>: mov %rax,-0x2a8(%rbp)
0x0000000000d97957 <+487>: mov -0x2a8(%rbp),%rax
0x0000000000d9795e <+494>: mov %r14,%rsi
0x0000000000d97961 <+497>: lea 0x128(%rax),%r13
0x0000000000d97968 <+504>: mov %r13,%rdi
0x0000000000d9796b <+507>: callq 0xd7f0e0 <_ZN2v88internal16StringComparator5State4InitEPNS0_6StringE>
0x0000000000d97970 <+512>: movzbl -0x40(%rbp),%eax
0x0000000000d97974 <+516>: mov -0x3c(%rbp),%r12d
0x0000000000d97978 <+520>: mov -0x38(%rbp),%rsi
0x0000000000d9797c <+524>: mov %r13,-0x2a0(%rbp)
0x0000000000d97983 <+531>: nopl 0x0(%rax,%rax,1)
0x0000000000d97988 <+536>: mov -0x164(%rbp),%r13d
0x0000000000d9798f <+543>: movzbl -0x168(%rbp),%ebx
0x0000000000d97996 <+550>: mov -0x160(%rbp),%r9
0x0000000000d9799d <+557>: cmp %r13d,%r12d
0x0000000000d979a0 <+560>: mov %r13d,%r14d
0x0000000000d979a3 <+563>: cmovle %r12d,%r14d
0x0000000000d979a7 <+567>: test %bl,%bl
0x0000000000d979a9 <+569>: je 0xd97bd8 <_ZN2v88internal6String10SlowEqualsEPS1_+1128>
0x0000000000d979af <+575>: test %al,%al
0x0000000000d979b1 <+577>: je 0xd97d15 <_ZN2v88internal6String10SlowEqualsEPS1_+1445>
0x0000000000d979b7 <+583>: mov %r9,%rdi
0x0000000000d979ba <+586>: movslq %r14d,%rdx
0x0000000000d979bd <+589>: mov %r9,-0x298(%rbp)
0x0000000000d979c4 <+596>: callq 0x7b3710 <memcmp@plt>
0x0000000000d979c9 <+601>: mov -0x298(%rbp),%r9
0x0000000000d979d0 <+608>: test %eax,%eax
0x0000000000d979d2 <+610>: sete %al
0x0000000000d979d5 <+613>: test %al,%al
0x0000000000d979d7 <+615>: je 0xd97794 <_ZN2v88internal6String10SlowEqualsEPS1_+36>
0x0000000000d979dd <+621>: sub %r14d,%r15d
0x0000000000d979e0 <+624>: je 0xd97e71 <_ZN2v88internal6String10SlowEqualsEPS1_+1793>
0x0000000000d979e6 <+630>: cmp %r13d,%r14d
0x0000000000d979e9 <+633>: je 0xd97c43 <_ZN2v88internal6String10SlowEqualsEPS1_+1235>
0x0000000000d979ef <+639>: test %bl,%bl
0x0000000000d979f1 <+641>: movslq %r14d,%rax
0x0000000000d979f4 <+644>: je 0xd97c22 <_ZN2v88internal6String10SlowEqualsEPS1_+1202>
0x0000000000d979fa <+650>: add %rax,%r9
0x0000000000d979fd <+653>: mov %r9,-0x160(%rbp)
0x0000000000d97a04 <+660>: mov %r13d,%r8d
0x0000000000d97a07 <+663>: sub %r14d,%r8d
0x0000000000d97a0a <+666>: mov %r8d,-0x164(%rbp)
0x0000000000d97a11 <+673>: cmp %r12d,%r14d
0x0000000000d97a14 <+676>: je 0xd97d9b <_ZN2v88internal6String10SlowEqualsEPS1_+1579>
0x0000000000d97a1a <+682>: movzbl -0x40(%rbp),%eax
0x0000000000d97a1e <+686>: movslq %r14d,%rsi
0x0000000000d97a21 <+689>: test %al,%al
0x0000000000d97a23 <+691>: je 0xd97c32 <_ZN2v88internal6String10SlowEqualsEPS1_+1218>
0x0000000000d97a29 <+697>: add -0x38(%rbp),%rsi
0x0000000000d97a2d <+701>: mov %rsi,-0x38(%rbp)
0x0000000000d97a31 <+705>: sub %r14d,%r12d
0x0000000000d97a34 <+708>: mov %r12d,-0x3c(%rbp)
0x0000000000d97a38 <+712>: jmpq 0xd97988 <_ZN2v88internal6String10SlowEqualsEPS1_+536>
0x0000000000d97a3d <+717>: add 0x23(%r12),%r13d
0x0000000000d97a42 <+722>: mov 0x17(%r12),%r12
0x0000000000d97a47 <+727>: jmpq 0xd978bd <_ZN2v88internal6String10SlowEqualsEPS1_+333>
0x0000000000d97a4c <+732>: mov 0x17(%r12),%rdi
0x0000000000d97a51 <+737>: movslq %r13d,%r13
0x0000000000d97a54 <+740>: mov (%rdi),%rax
0x0000000000d97a57 <+743>: callq *0x20(%rax)
0x0000000000d97a5a <+746>: lea (%rax,%r13,2),%rax
0x0000000000d97a5e <+750>: movb $0x0,-0x168(%rbp)
0x0000000000d97a65 <+757>: mov %ebx,-0x164(%rbp)
0x0000000000d97a6b <+763>: mov %rax,-0x160(%rbp)
---Type <return> to continue, or q <return> to quit---
0x0000000000d97a72 <+770>: jmpq 0xd9793f <_ZN2v88internal6String10SlowEqualsEPS1_+463>
0x0000000000d97a77 <+775>: lea -0x280(%rbp),%rax
0x0000000000d97a7e <+782>: lea -0x290(%rbp),%rsi
0x0000000000d97a85 <+789>: mov %r12,-0x180(%rbp)
0x0000000000d97a8c <+796>: movl $0x0,-0x170(%rbp)
0x0000000000d97a96 <+806>: movl $0x1,-0x178(%rbp)
0x0000000000d97aa0 <+816>: mov %rax,%rdi
0x0000000000d97aa3 <+819>: movl $0x21,-0x174(%rbp)
0x0000000000d97aad <+829>: movl $0x0,-0x290(%rbp)
0x0000000000d97ab7 <+839>: mov %rax,-0x2a8(%rbp)
0x0000000000d97abe <+846>: callq 0xd7d5b0 <_ZN2v88internal18ConsStringIterator8ContinueEPi>
0x0000000000d97ac3 <+851>: mov -0x290(%rbp),%ecx
0x0000000000d97ac9 <+857>: movslq 0x13(%rax),%rbx
0x0000000000d97acd <+861>: mov %ecx,%r13d
0x0000000000d97ad0 <+864>: mov -0x1(%rax),%rdx
0x0000000000d97ad4 <+868>: movzbl 0xb(%rdx),%edx
0x0000000000d97ad8 <+872>: and $0x7,%edx
0x0000000000d97adb <+875>: jmpq *0x14ed1d8(,%rdx,8)
0x0000000000d97ae2 <+882>: movslq %r13d,%r13
0x0000000000d97ae5 <+885>: movb $0x0,-0x168(%rbp)
0x0000000000d97aec <+892>: mov %ebx,-0x164(%rbp)
0x0000000000d97af2 <+898>: lea 0x17(%r12,%r13,2),%rax
0x0000000000d97af7 <+903>: mov %rax,-0x160(%rbp)
0x0000000000d97afe <+910>: jmpq 0xd9793f <_ZN2v88internal6String10SlowEqualsEPS1_+463>
0x0000000000d97b03 <+915>: movslq %r13d,%r13
0x0000000000d97b06 <+918>: sub %ecx,%ebx
0x0000000000d97b08 <+920>: movb $0x1,-0x168(%rbp)
0x0000000000d97b0f <+927>: lea 0x17(%rax,%r13,1),%rax
0x0000000000d97b14 <+932>: mov %ebx,-0x164(%rbp)
0x0000000000d97b1a <+938>: mov %rax,-0x160(%rbp)
0x0000000000d97b21 <+945>: jmpq 0xd97957 <_ZN2v88internal6String10SlowEqualsEPS1_+487>
0x0000000000d97b26 <+950>: add 0x23(%rax),%r13d
0x0000000000d97b2a <+954>: mov 0x17(%rax),%rax
0x0000000000d97b2e <+958>: jmp 0xd97ad0 <_ZN2v88internal6String10SlowEqualsEPS1_+864>
0x0000000000d97b30 <+960>: mov 0x17(%rax),%rdi
0x0000000000d97b34 <+964>: movslq %r13d,%r13
0x0000000000d97b37 <+967>: sub %ecx,%ebx
0x0000000000d97b39 <+969>: mov (%rdi),%rax
0x0000000000d97b3c <+972>: callq *0x20(%rax)
0x0000000000d97b3f <+975>: lea (%rax,%r13,2),%rax
0x0000000000d97b43 <+979>: movb $0x0,-0x168(%rbp)
0x0000000000d97b4a <+986>: mov %ebx,-0x164(%rbp)
0x0000000000d97b50 <+992>: mov %rax,-0x160(%rbp)
0x0000000000d97b57 <+999>: jmpq 0xd97957 <_ZN2v88internal6String10SlowEqualsEPS1_+487>
0x0000000000d97b5c <+1004>: movslq %r13d,%r13
0x0000000000d97b5f <+1007>: sub %ecx,%ebx
0x0000000000d97b61 <+1009>: movb $0x0,-0x168(%rbp)
0x0000000000d97b68 <+1016>: lea 0x17(%rax,%r13,2),%rax
0x0000000000d97b6d <+1021>: mov %ebx,-0x164(%rbp)
0x0000000000d97b73 <+1027>: mov %rax,-0x160(%rbp)
0x0000000000d97b7a <+1034>: jmpq 0xd97957 <_ZN2v88internal6String10SlowEqualsEPS1_+487>
0x0000000000d97b7f <+1039>: mov 0x17(%r12),%rdi
0x0000000000d97b84 <+1044>: movslq %r13d,%r13
0x0000000000d97b87 <+1047>: mov (%rdi),%rax
0x0000000000d97b8a <+1050>: callq *0x20(%rax)
0x0000000000d97b8d <+1053>: add %r13,%rax
0x0000000000d97b90 <+1056>: movb $0x1,-0x168(%rbp)
0x0000000000d97b97 <+1063>: mov %ebx,-0x164(%rbp)
0x0000000000d97b9d <+1069>: mov %rax,-0x160(%rbp)
0x0000000000d97ba4 <+1076>: jmpq 0xd9793f <_ZN2v88internal6String10SlowEqualsEPS1_+463>
0x0000000000d97ba9 <+1081>: mov 0x17(%rax),%rdi
0x0000000000d97bad <+1085>: movslq %r13d,%r13
0x0000000000d97bb0 <+1088>: sub %ecx,%ebx
0x0000000000d97bb2 <+1090>: mov (%rdi),%rax
0x0000000000d97bb5 <+1093>: callq *0x20(%rax)
0x0000000000d97bb8 <+1096>: add %r13,%rax
0x0000000000d97bbb <+1099>: movb $0x1,-0x168(%rbp)
0x0000000000d97bc2 <+1106>: mov %ebx,-0x164(%rbp)
0x0000000000d97bc8 <+1112>: mov %rax,-0x160(%rbp)
0x0000000000d97bcf <+1119>: jmpq 0xd97957 <_ZN2v88internal6String10SlowEqualsEPS1_+487>
0x0000000000d97bd4 <+1124>: nopl 0x0(%rax)
0x0000000000d97bd8 <+1128>: test %al,%al
0x0000000000d97bda <+1130>: je 0xd97d56 <_ZN2v88internal6String10SlowEqualsEPS1_+1510>
0x0000000000d97be0 <+1136>: test %r14d,%r14d
0x0000000000d97be3 <+1139>: jle 0xd979dd <_ZN2v88internal6String10SlowEqualsEPS1_+621>
0x0000000000d97be9 <+1145>: movzbl (%rsi),%eax
0x0000000000d97bec <+1148>: cmp %ax,(%r9)
0x0000000000d97bf0 <+1152>: jne 0xd97796 <_ZN2v88internal6String10SlowEqualsEPS1_+38>
0x0000000000d97bf6 <+1158>: lea -0x1(%r14),%r10d
0x0000000000d97bfa <+1162>: xor %eax,%eax
0x0000000000d97bfc <+1164>: jmp 0xd97c18 <_ZN2v88internal6String10SlowEqualsEPS1_+1192>
0x0000000000d97bfe <+1166>: xchg %ax,%ax
0x0000000000d97c00 <+1168>: movzwl 0x2(%r9,%rax,2),%edi
0x0000000000d97c06 <+1174>: movzbl 0x1(%rsi,%rax,1),%edx
0x0000000000d97c0b <+1179>: add $0x1,%rax
0x0000000000d97c0f <+1183>: cmp %dx,%di
0x0000000000d97c12 <+1186>: jne 0xd97796 <_ZN2v88internal6String10SlowEqualsEPS1_+38>
0x0000000000d97c18 <+1192>: cmp %r10,%rax
0x0000000000d97c1b <+1195>: jne 0xd97c00 <_ZN2v88internal6String10SlowEqualsEPS1_+1168>
0x0000000000d97c1d <+1197>: jmpq 0xd979dd <_ZN2v88internal6String10SlowEqualsEPS1_+621>
0x0000000000d97c22 <+1202>: lea (%r9,%rax,2),%rax
0x0000000000d97c26 <+1206>: mov %rax,-0x160(%rbp)
0x0000000000d97c2d <+1213>: jmpq 0xd97a04 <_ZN2v88internal6String10SlowEqualsEPS1_+660>
0x0000000000d97c32 <+1218>: mov -0x38(%rbp),%rdx
---Type <return> to continue, or q <return> to quit---
0x0000000000d97c36 <+1222>: lea (%rdx,%rsi,2),%rsi
0x0000000000d97c3a <+1226>: mov %rsi,-0x38(%rbp)
0x0000000000d97c3e <+1230>: jmpq 0xd97a31 <_ZN2v88internal6String10SlowEqualsEPS1_+705>
0x0000000000d97c43 <+1235>: mov -0x178(%rbp),%edx
0x0000000000d97c49 <+1241>: xor %eax,%eax
0x0000000000d97c4b <+1243>: movl $0x0,-0x290(%rbp)
0x0000000000d97c55 <+1253>: test %edx,%edx
0x0000000000d97c57 <+1255>: jne 0xd97e3e <_ZN2v88internal6String10SlowEqualsEPS1_+1742>
0x0000000000d97c5d <+1261>: movslq 0x13(%rax),%r12
0x0000000000d97c61 <+1265>: xor %ebx,%ebx
0x0000000000d97c63 <+1267>: mov -0x1(%rax),%rdx
0x0000000000d97c67 <+1271>: movzbl 0xb(%rdx),%edx
0x0000000000d97c6b <+1275>: and $0x7,%edx
0x0000000000d97c6e <+1278>: jmpq *0x14ed218(,%rdx,8)
0x0000000000d97c75 <+1285>: mov 0x17(%rax),%rdi
0x0000000000d97c79 <+1289>: movslq %ebx,%rbx
0x0000000000d97c7c <+1292>: mov (%rdi),%rax
0x0000000000d97c7f <+1295>: callq *0x20(%rax)
0x0000000000d97c82 <+1298>: add %rbx,%rax
0x0000000000d97c85 <+1301>: movb $0x1,-0x168(%rbp)
0x0000000000d97c8c <+1308>: mov %r12d,-0x164(%rbp)
0x0000000000d97c93 <+1315>: mov %rax,-0x160(%rbp)
0x0000000000d97c9a <+1322>: mov -0x3c(%rbp),%r12d
0x0000000000d97c9e <+1326>: jmpq 0xd97a11 <_ZN2v88internal6String10SlowEqualsEPS1_+673>
0x0000000000d97ca3 <+1331>: movslq %ebx,%rbx
0x0000000000d97ca6 <+1334>: movb $0x0,-0x168(%rbp)
0x0000000000d97cad <+1341>: mov %r12d,-0x164(%rbp)
0x0000000000d97cb4 <+1348>: lea 0x17(%rax,%rbx,2),%rax
0x0000000000d97cb9 <+1353>: mov %rax,-0x160(%rbp)
0x0000000000d97cc0 <+1360>: jmp 0xd97c9a <_ZN2v88internal6String10SlowEqualsEPS1_+1322>
0x0000000000d97cc2 <+1362>: movslq %ebx,%rbx
0x0000000000d97cc5 <+1365>: movb $0x1,-0x168(%rbp)
0x0000000000d97ccc <+1372>: mov %r12d,-0x164(%rbp)
0x0000000000d97cd3 <+1379>: lea 0x17(%rax,%rbx,1),%rax
0x0000000000d97cd8 <+1384>: mov %rax,-0x160(%rbp)
0x0000000000d97cdf <+1391>: jmp 0xd97c9a <_ZN2v88internal6String10SlowEqualsEPS1_+1322>
0x0000000000d97ce1 <+1393>: add 0x23(%rax),%ebx
0x0000000000d97ce4 <+1396>: mov 0x17(%rax),%rax
0x0000000000d97ce8 <+1400>: jmpq 0xd97c63 <_ZN2v88internal6String10SlowEqualsEPS1_+1267>
0x0000000000d97ced <+1405>: mov 0x17(%rax),%rdi
0x0000000000d97cf1 <+1409>: movslq %ebx,%rbx
0x0000000000d97cf4 <+1412>: mov (%rdi),%rax
0x0000000000d97cf7 <+1415>: callq *0x20(%rax)
0x0000000000d97cfa <+1418>: lea (%rax,%rbx,2),%rax
0x0000000000d97cfe <+1422>: movb $0x0,-0x168(%rbp)
0x0000000000d97d05 <+1429>: mov %r12d,-0x164(%rbp)
0x0000000000d97d0c <+1436>: mov %rax,-0x160(%rbp)
0x0000000000d97d13 <+1443>: jmp 0xd97c9a <_ZN2v88internal6String10SlowEqualsEPS1_+1322>
0x0000000000d97d15 <+1445>: test %r14d,%r14d
0x0000000000d97d18 <+1448>: jle 0xd979dd <_ZN2v88internal6String10SlowEqualsEPS1_+621>
0x0000000000d97d1e <+1454>: movzbl (%r9),%eax
0x0000000000d97d22 <+1458>: cmp (%rsi),%ax
0x0000000000d97d25 <+1461>: jne 0xd97794 <_ZN2v88internal6String10SlowEqualsEPS1_+36>
0x0000000000d97d2b <+1467>: lea -0x1(%r14),%edi
0x0000000000d97d2f <+1471>: xor %eax,%eax
0x0000000000d97d31 <+1473>: nopl 0x0(%rax)
0x0000000000d97d38 <+1480>: cmp %rdi,%rax
0x0000000000d97d3b <+1483>: je 0xd979dd <_ZN2v88internal6String10SlowEqualsEPS1_+621>
0x0000000000d97d41 <+1489>: movzbl 0x1(%r9,%rax,1),%edx
0x0000000000d97d47 <+1495>: add $0x1,%rax
0x0000000000d97d4b <+1499>: cmp (%rsi,%rax,2),%dx
0x0000000000d97d4f <+1503>: je 0xd97d38 <_ZN2v88internal6String10SlowEqualsEPS1_+1480>
0x0000000000d97d51 <+1505>: jmpq 0xd97794 <_ZN2v88internal6String10SlowEqualsEPS1_+36>
0x0000000000d97d56 <+1510>: movslq %r14d,%rax
0x0000000000d97d59 <+1513>: lea (%r9,%rax,2),%rdx
0x0000000000d97d5d <+1517>: cmp %rdx,%r9
0x0000000000d97d60 <+1520>: jae 0xd97d91 <_ZN2v88internal6String10SlowEqualsEPS1_+1569>
0x0000000000d97d62 <+1522>: movzwl (%r9),%eax
0x0000000000d97d66 <+1526>: cmp %ax,(%rsi)
0x0000000000d97d69 <+1529>: jne 0xd97e37 <_ZN2v88internal6String10SlowEqualsEPS1_+1735>
0x0000000000d97d6f <+1535>: mov %r9,%rax
0x0000000000d97d72 <+1538>: jmp 0xd97d84 <_ZN2v88internal6String10SlowEqualsEPS1_+1556>
0x0000000000d97d74 <+1540>: nopl 0x0(%rax)
0x0000000000d97d78 <+1544>: movzwl (%rax),%ecx
0x0000000000d97d7b <+1547>: cmp %cx,(%rsi)
0x0000000000d97d7e <+1550>: jne 0xd97e37 <_ZN2v88internal6String10SlowEqualsEPS1_+1735>
0x0000000000d97d84 <+1556>: add $0x2,%rax
0x0000000000d97d88 <+1560>: add $0x2,%rsi
0x0000000000d97d8c <+1564>: cmp %rax,%rdx
0x0000000000d97d8f <+1567>: ja 0xd97d78 <_ZN2v88internal6String10SlowEqualsEPS1_+1544>
0x0000000000d97d91 <+1569>: mov $0x1,%eax
0x0000000000d97d96 <+1574>: jmpq 0xd979d5 <_ZN2v88internal6String10SlowEqualsEPS1_+613>
0x0000000000d97d9b <+1579>: mov -0x50(%rbp),%eax
0x0000000000d97d9e <+1582>: xor %esi,%esi
0x0000000000d97da0 <+1584>: movl $0x0,-0x290(%rbp)
0x0000000000d97daa <+1594>: test %eax,%eax
0x0000000000d97dac <+1596>: jne 0xd97e56 <_ZN2v88internal6String10SlowEqualsEPS1_+1766>
0x0000000000d97db2 <+1602>: mov -0x2a0(%rbp),%rdi
0x0000000000d97db9 <+1609>: xor %edx,%edx
0x0000000000d97dbb <+1611>: callq 0xd97640 <_ZN2v88internal6String9VisitFlatINS0_16StringComparator5StateEEEPNS0_10ConsStringEPT_PS1_i>
0x0000000000d97dc0 <+1616>: mov -0x3c(%rbp),%r12d
0x0000000000d97dc4 <+1620>: movzbl -0x40(%rbp),%eax
0x0000000000d97dc8 <+1624>: mov -0x38(%rbp),%rsi
0x0000000000d97dcc <+1628>: jmpq 0xd97988 <_ZN2v88internal6String10SlowEqualsEPS1_+536>
---Type <return> to continue, or q <return> to quit---
0x0000000000d97dd1 <+1633>: mov -0x1(%r12),%rax
0x0000000000d97dd6 <+1638>: testb $0x3,0xb(%rax)
0x0000000000d97dda <+1642>: jne 0xd97883 <_ZN2v88internal6String10SlowEqualsEPS1_+275>
0x0000000000d97de0 <+1648>: mov -0x1(%r12),%rax
0x0000000000d97de5 <+1653>: testb $0x4,0xb(%rax)
0x0000000000d97de9 <+1657>: je 0xd97883 <_ZN2v88internal6String10SlowEqualsEPS1_+275>
0x0000000000d97def <+1663>: mov -0x1(%r14),%rax
0x0000000000d97df3 <+1667>: movzbl 0xb(%rax),%eax
0x0000000000d97df7 <+1671>: cmp $0x7f,%eax
0x0000000000d97dfa <+1674>: jg 0xd97883 <_ZN2v88internal6String10SlowEqualsEPS1_+275>
0x0000000000d97e00 <+1680>: mov -0x1(%r14),%rax
0x0000000000d97e04 <+1684>: testb $0x3,0xb(%rax)
0x0000000000d97e08 <+1688>: jne 0xd97883 <_ZN2v88internal6String10SlowEqualsEPS1_+275>
0x0000000000d97e0e <+1694>: mov -0x1(%r14),%rax
0x0000000000d97e12 <+1698>: testb $0x4,0xb(%rax)
0x0000000000d97e16 <+1702>: je 0xd97883 <_ZN2v88internal6String10SlowEqualsEPS1_+275>
0x0000000000d97e1c <+1708>: lea 0x17(%r14),%rsi
0x0000000000d97e20 <+1712>: lea 0x17(%r12),%rdi
0x0000000000d97e25 <+1717>: movslq %r13d,%rdx
=> 0x0000000000d97e28 <+1720>: callq 0x7b3710 <memcmp@plt>
0x0000000000d97e2d <+1725>: test %eax,%eax
0x0000000000d97e2f <+1727>: sete %bl
0x0000000000d97e32 <+1730>: jmpq 0xd97796 <_ZN2v88internal6String10SlowEqualsEPS1_+38>
0x0000000000d97e37 <+1735>: xor %eax,%eax
0x0000000000d97e39 <+1737>: jmpq 0xd979d5 <_ZN2v88internal6String10SlowEqualsEPS1_+613>
0x0000000000d97e3e <+1742>: mov -0x2a8(%rbp),%rdi
0x0000000000d97e45 <+1749>: lea -0x290(%rbp),%rsi
0x0000000000d97e4c <+1756>: callq 0xd7d5b0 <_ZN2v88internal18ConsStringIterator8ContinueEPi>
0x0000000000d97e51 <+1761>: jmpq 0xd97c5d <_ZN2v88internal6String10SlowEqualsEPS1_+1261>
0x0000000000d97e56 <+1766>: mov -0x2a0(%rbp),%rdi
0x0000000000d97e5d <+1773>: lea -0x290(%rbp),%rsi
0x0000000000d97e64 <+1780>: callq 0xd7d5b0 <_ZN2v88internal18ConsStringIterator8ContinueEPi>
0x0000000000d97e69 <+1785>: mov %rax,%rsi
0x0000000000d97e6c <+1788>: jmpq 0xd97db2 <_ZN2v88internal6String10SlowEqualsEPS1_+1602>
0x0000000000d97e71 <+1793>: mov $0x1,%ebx
0x0000000000d97e76 <+1798>: jmpq 0xd97796 <_ZN2v88internal6String10SlowEqualsEPS1_+38>
End of assembler dump.
(gdb)
@myitcv could you try and capture a stacktrace with lldb (v8 bt as per #8074 (comment)), that should contain the JS frames as well
If it reproduces with v6.11.1, then at least the string rehashing patch cannot be responsible for it.
@myitcv What happens when you remove --stack_size=10000? Common misunderstanding: it doesn't set the stack size, it tells V8 to assume the stack is that big.
@refack with a new core dump: https://gist.github.com/myitcv/4fbcb7b34ea44f645b81ba4c3c139e78
You will notice that there is a fair amount of recursion going on here. This is expected given the test it is running.
@bnoordhuis thanks, I didn't set that myself... going with the status quo.
If I remove --stack_size=10000 then I get:
RangeError: Maximum call stack size exceeded
So I suspect that flag was put in there intentionally... will check.
@myitcv Try setting ulimit -s to a value > than --stack_size=....
@bnoordhuis 👍 - that seems to have sorted things.
Prior to your suggestion my ulimit -s was less than --stack_size
With the two equal I now cannot repro this in v8.2.1
I'm tempted to close this now unless there's some merit in keeping it open from your perspective?
Thanks again
I'll close for now, but please feel free to re-open if as I say there's a reason you would like to keep it open.
Unclear whether this is a dup of #14228 so reporting separately for now.
The segfault occurs randomly when running the test suite for GopherJS (I can give more details if that is relevant)
Following the example of #14228 here is the
gdbinformation I have from one of the core dumps (I'm absolutely nogdbexpert so please shout where I'm going wrong):core_dump.node.14386.myitcv-virtual-machine.1501588338
Very happy to provide further information.