-
-
Save kcmannem/3536d539800a24747779546f65317a75 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* 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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.text | |
.type _test, @function | |
.globl _test | |
_test: | |
call *%rdi | |
ret |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@_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