Skip to content

Instantly share code, notes, and snippets.

@evanlucas
Created September 7, 2015 21:12
Show Gist options
  • Select an option

  • Save evanlucas/2d16507851827731e27b to your computer and use it in GitHub Desktop.

Select an option

Save evanlucas/2d16507851827731e27b to your computer and use it in GitHub Desktop.
disas
Process 10089 launched: './out/Release/node' (x86_64)
start
Process 10089 stopped
* thread #1: tid = 0x679c0f, 0x000000010015e4ff node`v8::Value::IntegerValue(this=<unavailable>, context=<unavailable>) const + 415 at api.cc:3272, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT)
frame #0: 0x000000010015e4ff node`v8::Value::IntegerValue(this=<unavailable>, context=<unavailable>) const + 415 at api.cc:3272
3269 RETURN_ON_FAILED_EXECUTION_PRIMITIVE(int64_t);
3270 }
3271 return Just(num->IsSmi() ? static_cast<int64_t>(i::Smi::cast(*num)->value())
-> 3272 : static_cast<int64_t>(num->Number()));
3273 }
3274
3275
(lldb) disas
node`v8::Value::IntegerValue:
0x10015e360 <+0>: pushq %rbp
0x10015e361 <+1>: movq %rsp, %rbp
0x10015e364 <+4>: pushq %r15
0x10015e366 <+6>: pushq %r14
0x10015e368 <+8>: pushq %r13
0x10015e36a <+10>: pushq %r12
0x10015e36c <+12>: pushq %rbx
0x10015e36d <+13>: subq $0x18, %rsp
0x10015e371 <+17>: movq %rsi, %r14
0x10015e374 <+20>: movq %rdi, %r15
0x10015e377 <+23>: movq (%r15), %rax
0x10015e37a <+26>: testb $0x1, %al
0x10015e37c <+28>: je 0x10015e4f7 ; <+407> [inlined] v8::internal::Handle<v8::internal::Object>::operator*() const at handles.h:124
0x10015e382 <+34>: movq %rax, %rcx
0x10015e385 <+37>: andq $0x3, %rcx
0x10015e389 <+41>: cmpq $0x1, %rcx
0x10015e38d <+45>: jne 0x10015e3a2 ; <+66> at api.cc:3266
0x10015e38f <+47>: movq -0x1(%rax), %rax
0x10015e393 <+51>: movzbl 0xb(%rax), %eax
0x10015e397 <+55>: cmpl $0x84, %eax
0x10015e39c <+60>: je 0x10015e4f7 ; <+407> [inlined] v8::internal::Handle<v8::internal::Object>::operator*() const at handles.h:124
0x10015e3a2 <+66>: testq %r14, %r14
0x10015e3a5 <+69>: je 0x10015e3bb ; <+91> [inlined] v8::internal::Isolate::Current() at api.cc:3266
0x10015e3a7 <+71>: movq $-0x100000, %rax
0x10015e3ae <+78>: andq (%r14), %rax
0x10015e3b1 <+81>: movq 0x38(%rax), %rbx
0x10015e3b5 <+85>: addq $-0x20, %rbx
0x10015e3b9 <+89>: jmp 0x10015e3d4 ; <+116> [inlined] v8::internal::Isolate::has_scheduled_exception() at api.cc:299
0x10015e3bb <+91>: leaq 0x947336(%rip), %rax ; v8::internal::Isolate::isolate_key_
0x10015e3c2 <+98>: movslq (%rax), %rax
0x10015e3c5 <+101>: leaq 0x947574(%rip), %rcx ; v8::base::kMacTlsBaseOffset
0x10015e3cc <+108>: movq (%rcx), %rcx
0x10015e3cf <+111>: movq %gs:(%rcx,%rax,8), %rbx
0x10015e3d4 <+116>: movq 0x6ae8(%rbx), %rax
0x10015e3db <+123>: cmpq 0x68(%rbx), %rax
0x10015e3df <+127>: je 0x10015e3ee ; <+142> [inlined] v8::internal::HandleScope::HandleScope(v8::internal::Isolate*) at handles-inl.h:91
0x10015e3e1 <+129>: cmpq 0x150(%rbx), %rax
0x10015e3e8 <+136>: je 0x10015e4f3 ; <+403> at handles-inl.h:124
0x10015e3ee <+142>: movq 0x6b78(%rbx), %rax
0x10015e3f5 <+149>: movq %rax, -0x38(%rbp)
0x10015e3f9 <+153>: movq 0x6b80(%rbx), %rax
0x10015e400 <+160>: movq %rax, -0x30(%rbp)
0x10015e404 <+164>: incl 0x6b88(%rbx)
0x10015e40a <+170>: movq 0x6b90(%rbx), %rax
0x10015e411 <+177>: incl 0x40(%rax)
0x10015e414 <+180>: testq %r14, %r14
0x10015e417 <+183>: je 0x10015e421 ; <+193> [inlined] v8::internal::Isolate::logger() at api.cc:3266
0x10015e419 <+185>: movq %r14, %rdi
0x10015e41c <+188>: callq 0x100150650 ; v8::Context::Enter at api.cc:742
0x10015e421 <+193>: movq 0x6a28(%rbx), %rdi
0x10015e428 <+200>: cmpb $0x0, 0x20(%rdi)
0x10015e42c <+204>: je 0x10015e43a ; <+218> [inlined] v8::internal::Isolate::current_vm_state() const at vm-state-inl.h:41
0x10015e42e <+206>: leaq 0x5c1a90(%rip), %rsi ; "IntegerValue"
0x10015e435 <+213>: callq 0x100474e00 ; v8::internal::Logger::ApiEntryCall at log.cc:1060
0x10015e43a <+218>: movl 0x6b30(%rbx), %r12d
0x10015e441 <+225>: movl $0x3, 0x6b30(%rbx)
0x10015e44b <+235>: movq %rbx, %rdi
0x10015e44e <+238>: movq %r15, %rsi
0x10015e451 <+241>: callq 0x1002edd80 ; v8::internal::Execution::ToInteger at execution.cc:559
0x10015e456 <+246>: movq %rax, %r15
0x10015e459 <+249>: xorl %r13d, %r13d
0x10015e45c <+252>: testq %r15, %r15
0x10015e45f <+255>: movl $0x0, %eax
0x10015e464 <+260>: jne 0x10015e483 ; <+291> at api.cc:173
0x10015e466 <+262>: movq 0x6b90(%rbx), %rax
0x10015e46d <+269>: decl 0x40(%rax)
0x10015e470 <+272>: sete %al
0x10015e473 <+275>: movzbl %al, %esi
0x10015e476 <+278>: movq %rbx, %rdi
0x10015e479 <+281>: callq 0x100443530 ; v8::internal::Isolate::OptionalRescheduleException at isolate.cc:1513
0x10015e47e <+286>: movb $0x1, %r13b
0x10015e481 <+289>: movb $0x1, %al
0x10015e483 <+291>: movl %eax, -0x3c(%rbp)
0x10015e486 <+294>: testq %r14, %r14
0x10015e489 <+297>: movl %r12d, 0x6b30(%rbx)
0x10015e490 <+304>: je 0x10015e49a ; <+314> [inlined] v8::(anonymous namespace)::CallDepthScope::~CallDepthScope() + 8 at api.cc:161
0x10015e492 <+306>: movq %r14, %rdi
0x10015e495 <+309>: callq 0x1001507a0 ; v8::Context::Exit at api.cc:753
0x10015e49a <+314>: testb %r13b, %r13b
0x10015e49d <+317>: jne 0x10015e4a9 ; <+329> [inlined] void std::swap<v8::internal::Object**>(v8::internal::Object**&, v8::internal::Object**&) at handles-inl.h:116
0x10015e49f <+319>: movq 0x6b90(%rbx), %rax
0x10015e4a6 <+326>: decl 0x40(%rax)
0x10015e4a9 <+329>: movq 0x6b78(%rbx), %rsi
0x10015e4b0 <+336>: movq -0x38(%rbp), %rdi
0x10015e4b4 <+340>: movq %rdi, 0x6b78(%rbx)
0x10015e4bb <+347>: decl 0x6b88(%rbx)
0x10015e4c1 <+353>: movq -0x30(%rbp), %r14
0x10015e4c5 <+357>: cmpq %r14, 0x6b80(%rbx)
0x10015e4cc <+364>: je 0x10015e4e7 ; <+391> [inlined] v8::internal::HandleScope::CloseScope(v8::internal::Isolate*, v8::internal::Object**, v8::internal::Object**) + 62 at handles-inl.h:104
0x10015e4ce <+366>: movq %r14, 0x6b80(%rbx)
0x10015e4d5 <+373>: movq %rbx, %rdi
0x10015e4d8 <+376>: callq 0x100318090 ; v8::internal::HandleScope::DeleteExtensions at handles.cc:60
0x10015e4dd <+381>: movq 0x6b78(%rbx), %rdi
0x10015e4e4 <+388>: movq %r14, %rsi
0x10015e4e7 <+391>: callq 0x100318150 ; v8::internal::HandleScope::ZapRange at handles.cc:67
0x10015e4ec <+396>: movl -0x3c(%rbp), %eax
0x10015e4ef <+399>: testb %al, %al
0x10015e4f1 <+401>: je 0x10015e4f7 ; <+407> [inlined] v8::internal::Handle<v8::internal::Object>::operator*() const at handles.h:124
0x10015e4f3 <+403>: xorl %eax, %eax
0x10015e4f5 <+405>: jmp 0x10015e50d ; <+429> at api.cc:3273
0x10015e4f7 <+407>: movq (%r15), %rdx
0x10015e4fa <+410>: testb $0x1, %dl
0x10015e4fd <+413>: je 0x10015e507 ; <+423> at api.cc:3271
-> 0x10015e4ff <+415>: cvttsd2si 0x7(%rdx), %rdx
0x10015e505 <+421>: jmp 0x10015e50b ; <+427> at api.cc:3271
0x10015e507 <+423>: sarq $0x20, %rdx
0x10015e50b <+427>: movb $0x1, %al
0x10015e50d <+429>: addq $0x18, %rsp
0x10015e511 <+433>: popq %rbx
0x10015e512 <+434>: popq %r12
0x10015e514 <+436>: popq %r13
0x10015e516 <+438>: popq %r14
0x10015e518 <+440>: popq %r15
0x10015e51a <+442>: popq %rbp
0x10015e51b <+443>: retq
0x10015e51c <+444>: nopl (%rax)
(lldb) i r
invalid command 'target modules r'
(lldb) reg r
General Purpose Registers:
rax = 0x0000000000000000
rbx = 0x0000000101804c00
rcx = 0x0000000000000003
rdx = 0x1baddead0baddeaf
rdi = 0x00000001018474a0
rsi = 0x1baddead0baddeaf
rbp = 0x00007fff5fbfe3c0
rsp = 0x00007fff5fbfe380
r8 = 0x000000000000005b
r9 = 0x0000000000000000
r10 = 0x000000010180b700
r11 = 0x00001a02210d2020
r12 = 0x0000000000000004
r13 = 0x0000000000000000
r14 = 0x0000000101848ff0
r15 = 0x0000000101847498
rip = 0x000000010015e4ff node`v8::Value::IntegerValue(v8::Local<v8::Context>) const + 415 at api.cc:3272
rflags = 0x0000000000010202
cs = 0x000000000000002b
fs = 0x0000000000000000
gs = 0x0000000000000000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment