Skip to content

Instantly share code, notes, and snippets.

@kcmannem
Last active November 29, 2016 03:26
Show Gist options
  • Save kcmannem/3536d539800a24747779546f65317a75 to your computer and use it in GitHub Desktop.
Save kcmannem/3536d539800a24747779546f65317a75 to your computer and use it in GitHub Desktop.
* thread #1: tid = 22451, 0x0000000000400c93 main`thunk + 35 at func.swift:0, name = 'main', stop reason = signal SIGSEGV: address access protected (fault address: 0x400d38)
frame #0: 0x0000000000400c93 main`thunk + 35 at func.swift:0
1 @_silgen_name("_test")
2 func testing(x: () -> Any) -> Int
3
4 /*func testing(x: () -> Void) {
5 x()
6 }*/
7
(lldb) disassemble
main`thunk:
0x400c70 <+0>: pushq %rbp
0x400c71 <+1>: movq %rsp, %rbp
0x400c74 <+4>: subq $0x10, %rsp
0x400c78 <+8>: movq %rdi, %rax
0x400c7b <+11>: movq %rdi, -0x8(%rbp)
0x400c7f <+15>: movq %rdx, %rdi
0x400c82 <+18>: movq %rax, -0x10(%rbp)
0x400c86 <+22>: callq *%rsi
0x400c88 <+24>: movq 0x203349(%rip), %rdx
0x400c8f <+31>: movq -0x8(%rbp), %rsi
-> 0x400c93 <+35>: movq %rdx, 0x18(%rsi)
0x400c97 <+39>: movq %rax, (%rsi)
0x400c9a <+42>: movq -0x10(%rbp), %rax
0x400c9e <+46>: addq $0x10, %rsp
0x400ca2 <+50>: popq %rbp
0x400ca3 <+51>: retq
(lldb) bt
* thread #1: tid = 22451, 0x0000000000400c93 main`thunk + 35 at func.swift:0, name = 'main', stop reason = signal SIGSEGV: address access protected (fault address: 0x400d38)
* frame #0: 0x0000000000400c93 main`thunk + 35 at func.swift:0
frame #1: 0x0000000000400d69 main`partial apply for thunk + 73 at func.swift:0
frame #2: 0x0000000000400d8e main`_test + 2
frame #3: 0x0000000000400c46 main`main + 134 at func.swift:12
frame #4: 0x00007ffff6e5ff45 libc.so.6`__libc_start_main + 245
frame #5: 0x0000000000400af9 main`_start + 41
0000000000400bc0 <main>:
400bc0: 55 push %rbp
400bc1: 48 89 e5 mov %rsp,%rbp
400bc4: 48 83 ec 10 sub $0x10,%rsp
400bc8: 48 8b 05 21 34 20 00 mov 0x203421(%rip),%rax # 603ff0 <_DYNAMIC+0x278>
400bcf: 48 8b 0d da 33 20 00 mov 0x2033da(%rip),%rcx # 603fb0 <_DYNAMIC+0x238>
400bd6: 48 8b 15 cb 33 20 00 mov 0x2033cb(%rip),%rdx # 603fa8 <_DYNAMIC+0x230>
400bdd: 89 3a mov %edi,(%rdx)
400bdf: 48 89 c7 mov %rax,%rdi
400be2: 48 89 75 f8 mov %rsi,-0x8(%rbp)
400be6: 48 89 ce mov %rcx,%rsi
400be9: e8 b2 fe ff ff callq 400aa0 <swift_once@plt>
400bee: 48 8d 05 5b 31 20 00 lea 0x20315b(%rip),%rax # 603d50 <__JCR_END__+0x8>
400bf5: 48 83 c0 10 add $0x10,%rax
400bf9: 41 b8 20 00 00 00 mov $0x20,%r8d
400bff: 44 89 c6 mov %r8d,%esi
400c02: 41 b8 07 00 00 00 mov $0x7,%r8d
400c08: 44 89 c2 mov %r8d,%edx
400c0b: 48 8b 0d ae 33 20 00 mov 0x2033ae(%rip),%rcx # 603fc0 <_DYNAMIC+0x248>
400c12: 48 8b 7d f8 mov -0x8(%rbp),%rdi
400c16: 48 89 39 mov %rdi,(%rcx)
400c19: 48 89 c7 mov %rax,%rdi
400c1c: e8 ef 00 00 00 callq 400d10 <rt_swift_allocObject>
400c21: 48 8d 0d f8 00 00 00 lea 0xf8(%rip),%rcx # 400d20 <_TPA__TTRXFo__dSi_XFo__iP__>
400c28: 48 8d 15 31 00 00 00 lea 0x31(%rip),%rdx # 400c60 <_TF4main5helloFT_Si>
400c2f: 48 89 50 10 mov %rdx,0x10(%rax)
400c33: 48 c7 40 18 00 00 00 movq $0x0,0x18(%rax)
400c3a: 00
400c3b: 48 89 cf mov %rcx,%rdi
400c3e: 48 89 c6 mov %rax,%rsi
400c41: e8 46 01 00 00 callq 400d8c <_test>
400c46: 45 31 c0 xor %r8d,%r8d
400c49: 48 89 05 28 34 20 00 mov %rax,0x203428(%rip) # 604078 <_Tv4main1aSi>
400c50: 44 89 c0 mov %r8d,%eax
400c53: 48 83 c4 10 add $0x10,%rsp
400c57: 5d pop %rbp
400c58: c3 retq
400c59: 0f 1f 80 00 00 00 00 nopl 0x0(%rax)
0000000000400c60 <_TF4main5helloFT_Si>:
400c60: 55 push %rbp
400c61: 48 89 e5 mov %rsp,%rbp
400c64: b8 05 00 00 00 mov $0x5,%eax
400c69: 5d pop %rbp
400c6a: c3 retq
400c6b: 0f 1f 44 00 00 nopl 0x0(%rax,%rax,1)
0000000000400c70 <_TTRXFo__dSi_XFo__iP__>:
400c70: 55 push %rbp
400c71: 48 89 e5 mov %rsp,%rbp
400c74: 48 83 ec 10 sub $0x10,%rsp
400c78: 48 89 f8 mov %rdi,%rax
400c7b: 48 89 7d f8 mov %rdi,-0x8(%rbp)
400c7f: 48 89 d7 mov %rdx,%rdi
400c82: 48 89 45 f0 mov %rax,-0x10(%rbp)
400c86: ff d6 callq *%rsi
400c88: 48 8b 15 49 33 20 00 mov 0x203349(%rip),%rdx # 603fd8 <_DYNAMIC+0x260>
400c8f: 48 8b 75 f8 mov -0x8(%rbp),%rsi
400c93: 48 89 56 18 mov %rdx,0x18(%rsi)
400c97: 48 89 06 mov %rax,(%rsi)
400c9a: 48 8b 45 f0 mov -0x10(%rbp),%rax
400c9e: 48 83 c4 10 add $0x10,%rsp
400ca2: 5d pop %rbp
400ca3: c3 retq
400ca4: 66 66 66 2e 0f 1f 84 data32 data32 nopw %cs:0x0(%rax,%rax,1)
400cab: 00 00 00 00 00
400cb0: 55 push %rbp
400cb1: 48 89 e5 mov %rsp,%rbp
400cb4: 48 83 ec 10 sub $0x10,%rsp
400cb8: 48 8b 47 18 mov 0x18(%rdi),%rax
400cbc: 48 89 7d f8 mov %rdi,-0x8(%rbp)
400cc0: 48 89 c7 mov %rax,%rdi
400cc3: e8 28 00 00 00 callq 400cf0 <rt_swift_release>
400cc8: b9 20 00 00 00 mov $0x20,%ecx
400ccd: 89 ce mov %ecx,%esi
400ccf: b9 07 00 00 00 mov $0x7,%ecx
400cd4: 89 ca mov %ecx,%edx
400cd6: 48 8b 7d f8 mov -0x8(%rbp),%rdi
400cda: e8 21 00 00 00 callq 400d00 <rt_swift_deallocObject>
400cdf: 48 83 c4 10 add $0x10,%rsp
400ce3: 5d pop %rbp
400ce4: c3 retq
400ce5: 66 66 2e 0f 1f 84 00 data32 nopw %cs:0x0(%rax,%rax,1)
400cec: 00 00 00 00
0000000000400cf0 <rt_swift_release>:
400cf0: 48 8b 05 e9 32 20 00 mov 0x2032e9(%rip),%rax # 603fe0 <_DYNAMIC+0x268>
400cf7: 48 8b 00 mov (%rax),%rax
400cfa: ff e0 jmpq *%rax
400cfc: 0f 1f 40 00 nopl 0x0(%rax)
0000000000400d00 <rt_swift_deallocObject>:
400d00: 48 8b 05 c9 32 20 00 mov 0x2032c9(%rip),%rax # 603fd0 <_DYNAMIC+0x258>
400d07: 48 8b 00 mov (%rax),%rax
400d0a: ff e0 jmpq *%rax
400d0c: 0f 1f 40 00 nopl 0x0(%rax)
0000000000400d10 <rt_swift_allocObject>:
400d10: 48 8b 05 b1 32 20 00 mov 0x2032b1(%rip),%rax # 603fc8 <_DYNAMIC+0x250>
400d17: 48 8b 00 mov (%rax),%rax
400d1a: ff e0 jmpq *%rax
400d1c: 0f 1f 40 00 nopl 0x0(%rax)
0000000000400d20 <_TPA__TTRXFo__dSi_XFo__iP__>:
400d20: 55 push %rbp
400d21: 48 89 e5 mov %rsp,%rbp
400d24: 48 83 ec 30 sub $0x30,%rsp
400d28: 48 89 f8 mov %rdi,%rax
400d2b: 48 8b 4e 10 mov 0x10(%rsi),%rcx
400d2f: 48 8b 56 18 mov 0x18(%rsi),%rdx
400d33: 48 89 7d f8 mov %rdi,-0x8(%rbp)
400d37: 48 89 d7 mov %rdx,%rdi
400d3a: 48 89 45 f0 mov %rax,-0x10(%rbp)
400d3e: 48 89 75 e8 mov %rsi,-0x18(%rbp)
400d42: 48 89 55 e0 mov %rdx,-0x20(%rbp)
400d46: 48 89 4d d8 mov %rcx,-0x28(%rbp)
400d4a: e8 31 00 00 00 callq 400d80 <rt_swift_retain>
400d4f: 48 8b 7d e8 mov -0x18(%rbp),%rdi
400d53: e8 98 ff ff ff callq 400cf0 <rt_swift_release>
400d58: 48 8b 7d f8 mov -0x8(%rbp),%rdi
400d5c: 48 8b 75 d8 mov -0x28(%rbp),%rsi
400d60: 48 8b 55 e0 mov -0x20(%rbp),%rdx
400d64: e8 07 ff ff ff callq 400c70 <_TTRXFo__dSi_XFo__iP__>
400d69: 48 8b 45 f0 mov -0x10(%rbp),%rax
400d6d: 48 83 c4 30 add $0x30,%rsp
400d71: 5d pop %rbp
400d72: c3 retq
400d73: 66 66 66 66 2e 0f 1f data32 data32 data32 nopw %cs:0x0(%rax,%rax,1)
400d7a: 84 00 00 00 00 00
0000000000400d80 <rt_swift_retain>:
400d80: 48 8b 05 31 32 20 00 mov 0x203231(%rip),%rax # 603fb8 <_DYNAMIC+0x240>
400d87: 48 8b 00 mov (%rax),%rax
400d8a: ff e0 jmpq *%rax
0000000000400d8c <_test>:
400d8c: ff d7 callq *%rdi
400d8e: c3 retq
400d8f: 90 nop
.text
.type _test, @function
.globl _test
_test:
call *%rdi
ret
@_silgen_name("_test")
func testing(x: () -> Any) -> Int
/*func testing(x: () -> Void) {
x()
}*/
func hello() -> Int {
return 5
}
var a = testing(x: hello)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment