Skip to content

Instantly share code, notes, and snippets.

@snej
Last active August 29, 2015 14:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save snej/f6c0e1ba9230b3591a9f to your computer and use it in GitHub Desktop.
Save snej/f6c0e1ba9230b3591a9f to your computer and use it in GitHub Desktop.
Mysteriously crashing Swift init method
public class Observer : NSObject {
init(source: NSObject, keyPath: String, options: NSKeyValueObservingOptions = nil, onChange: ()->()) {
self.source = source
self.keyPath = keyPath
self.onChange = onChange
super.init()
source.addObserver(self, forKeyPath: self.keyPath, options: options, context: nil)
} // -> LLDB highlights this line at the point of the crash
deinit {
source?.removeObserver(self, forKeyPath: keyPath)
}
/** Stops observing. */
public func stop() {
source?.removeObserver(self, forKeyPath: keyPath)
source = nil
}
override public func observeValueForKeyPath(keyPath: String, ofObject object: AnyObject, change: [NSObject : AnyObject], context: UnsafeMutablePointer<Void>) {
onChange()
}
private var source: NSObject?
private let keyPath: String
private let onChange: ()->()
}
// Disassembly of the 'init' method. Crash is inside the objc_release call just above the line prefixed with "->" ...
PeerSyncMac`PeerSyncMac.Observer.init (PeerSyncMac.Observer.Type)(source : ObjectiveC.NSObject, keyPath : Swift.String, options : C.NSKeyValueObservingOptions, onChange : () -> ()) -> PeerSyncMac.Observer:
0x10000b290 <+0>: pushq %rbp
0x10000b291 <+1>: movq %rsp, %rbp
0x10000b294 <+4>: pushq %rbx
0x10000b295 <+5>: subq $0xf8, %rsp
0x10000b29c <+12>: movq 0x18(%rbp), %rax
0x10000b2a0 <+16>: movq 0x10(%rbp), %r10
0x10000b2a4 <+20>: movq %rdi, -0x18(%rbp)
0x10000b2a8 <+24>: movq %rsi, -0x30(%rbp)
0x10000b2ac <+28>: movq %rdx, -0x28(%rbp)
0x10000b2b0 <+32>: movq %rcx, -0x20(%rbp)
0x10000b2b4 <+36>: movq %r8, -0x38(%rbp)
0x10000b2b8 <+40>: movq %r9, -0x48(%rbp)
0x10000b2bc <+44>: movq %r10, -0x40(%rbp)
0x10000b2c0 <+48>: movq %rax, -0x10(%rbp)
0x10000b2c4 <+52>: movq $0x0, -0x50(%rbp)
0x10000b2cc <+60>: movq -0x50(%rbp), %r11
0x10000b2d0 <+64>: movq 0x29b69(%rip), %rbx ; direct field offset for PeerSyncMac.Observer.(source in _41EA7B606512F5AB7625E3C46326EE23)
0x10000b2d7 <+71>: movq %r11, (%rax,%rbx)
0x10000b2db <+75>: movq %rdi, -0x70(%rbp)
0x10000b2df <+79>: movq %r10, -0x78(%rbp)
0x10000b2e3 <+83>: movq %r9, -0x80(%rbp)
0x10000b2e7 <+87>: movq %r8, -0x88(%rbp)
0x10000b2ee <+94>: movq %rcx, -0x90(%rbp)
0x10000b2f5 <+101>: movq %rdx, -0x98(%rbp)
0x10000b2fc <+108>: movq %rsi, -0xa0(%rbp)
0x10000b303 <+115>: movq %rax, -0xa8(%rbp)
0x10000b30a <+122>: callq 0x10002955c ; symbol stub for: objc_retain
0x10000b30f <+127>: movq -0x70(%rbp), %rcx
0x10000b313 <+131>: movq %rcx, -0x58(%rbp)
0x10000b317 <+135>: movq -0x58(%rbp), %rdx
0x10000b31b <+139>: movq 0x29b1e(%rip), %rsi ; direct field offset for PeerSyncMac.Observer.(source in _41EA7B606512F5AB7625E3C46326EE23)
0x10000b322 <+146>: movq -0xa8(%rbp), %rdi
0x10000b329 <+153>: movq (%rdi,%rsi), %rdi
0x10000b32d <+157>: movq -0xa8(%rbp), %r8
0x10000b334 <+164>: movq %rdx, (%r8,%rsi)
0x10000b338 <+168>: movq %rax, -0xb0(%rbp)
0x10000b33f <+175>: callq 0x100029778 ; symbol stub for: swift_unknownRelease
0x10000b344 <+180>: movq -0x90(%rbp), %rdi
0x10000b34b <+187>: callq 0x10002977e ; symbol stub for: swift_unknownRetain
0x10000b350 <+192>: movq 0x29af1(%rip), %rax ; direct field offset for PeerSyncMac.Observer.(keyPath in _41EA7B606512F5AB7625E3C46326EE23)
0x10000b357 <+199>: movq -0xa8(%rbp), %rcx
0x10000b35e <+206>: movq -0xa0(%rbp), %rdx
0x10000b365 <+213>: movq %rdx, (%rcx,%rax)
0x10000b369 <+217>: movq -0x98(%rbp), %rsi
0x10000b370 <+224>: movq %rsi, 0x8(%rcx,%rax)
0x10000b375 <+229>: movq -0x90(%rbp), %rdi
0x10000b37c <+236>: movq %rdi, 0x10(%rcx,%rax)
0x10000b381 <+241>: movq -0x78(%rbp), %rdi
0x10000b385 <+245>: callq 0x100029766 ; symbol stub for: swift_retain_noresult
0x10000b38a <+250>: movq 0x29abf(%rip), %rax ; direct field offset for PeerSyncMac.Observer.(onChange in _41EA7B606512F5AB7625E3C46326EE23)
0x10000b391 <+257>: movq -0xa8(%rbp), %rcx
0x10000b398 <+264>: movq -0x80(%rbp), %rdx
0x10000b39c <+268>: movq %rdx, (%rcx,%rax)
0x10000b3a0 <+272>: movq -0x78(%rbp), %rsi
0x10000b3a4 <+276>: movq %rsi, 0x8(%rcx,%rax)
0x10000b3a9 <+281>: movq %rcx, -0xb8(%rbp)
0x10000b3b0 <+288>: callq 0x10000b500 ; type metadata accessor for PeerSyncMac.Observer
0x10000b3b5 <+293>: leaq -0x68(%rbp), %rdi
0x10000b3b9 <+297>: movq -0xb8(%rbp), %rcx
0x10000b3c0 <+304>: movq %rcx, -0x68(%rbp)
0x10000b3c4 <+308>: movq %rax, -0x60(%rbp)
0x10000b3c8 <+312>: movq 0x26ca9(%rip), %rsi ; "init"
0x10000b3cf <+319>: callq 0x100029550 ; symbol stub for: objc_msgSendSuper2
0x10000b3d4 <+324>: movq %rax, -0x10(%rbp)
0x10000b3d8 <+328>: cmpq $0x0, %rax
0x10000b3de <+334>: movq %rax, -0xc0(%rbp)
0x10000b3e5 <+341>: jne 0x10000b3ec ; <+348> at Observer.swift:20
0x10000b3e7 <+343>: jmp 0x10000b4cd ; <+573> at Observer.swift
0x10000b3ec <+348>: movq -0x70(%rbp), %rdi
0x10000b3f0 <+352>: callq 0x10002955c ; symbol stub for: objc_retain
0x10000b3f5 <+357>: movq -0xc0(%rbp), %rdi
0x10000b3fc <+364>: movq %rax, -0xc8(%rbp)
0x10000b403 <+371>: callq 0x10002955c ; symbol stub for: objc_retain
0x10000b408 <+376>: movq -0xc0(%rbp), %rdi
0x10000b40f <+383>: movq 0x29a32(%rip), %rcx ; direct field offset for PeerSyncMac.Observer.(keyPath in _41EA7B606512F5AB7625E3C46326EE23)
0x10000b416 <+390>: movq -0xc0(%rbp), %rdx
0x10000b41d <+397>: movq (%rdx,%rcx), %rsi
0x10000b421 <+401>: movq 0x8(%rdx,%rcx), %r8
0x10000b426 <+406>: movq 0x10(%rdx,%rcx), %rcx
0x10000b42b <+411>: movq %rdi, -0xd0(%rbp)
0x10000b432 <+418>: movq %rcx, %rdi
0x10000b435 <+421>: movq %rax, -0xd8(%rbp)
0x10000b43c <+428>: movq %rcx, -0xe0(%rbp)
0x10000b443 <+435>: movq %r8, -0xe8(%rbp)
0x10000b44a <+442>: movq %rsi, -0xf0(%rbp)
0x10000b451 <+449>: callq 0x10002977e ; symbol stub for: swift_unknownRetain
0x10000b456 <+454>: movq -0xf0(%rbp), %rdi
0x10000b45d <+461>: movq -0xe8(%rbp), %rsi
0x10000b464 <+468>: movq -0xe0(%rbp), %rdx
0x10000b46b <+475>: callq 0x1000296e2 ; symbol stub for: swift_convertStringToNSString
0x10000b470 <+480>: xorl %r9d, %r9d
0x10000b473 <+483>: movq 0x26c3e(%rip), %rsi ; "addObserver:forKeyPath:options:context:"
0x10000b47a <+490>: movq -0xd0(%rbp), %rcx
0x10000b481 <+497>: movq %rax, %rdx
0x10000b484 <+500>: movq -0x70(%rbp), %rdi
0x10000b488 <+504>: movq %rdx, -0xf8(%rbp)
0x10000b48f <+511>: movq %rcx, %rdx
0x10000b492 <+514>: movq -0xf8(%rbp), %rcx
0x10000b499 <+521>: movq -0x88(%rbp), %r8
0x10000b4a0 <+528>: movq %rax, -0x100(%rbp)
0x10000b4a7 <+535>: callq 0x10002954a ; symbol stub for: objc_msgSend
0x10000b4ac <+540>: movq -0x100(%rbp), %rdi
0x10000b4b3 <+547>: callq 0x100029556 ; symbol stub for: objc_release
-> 0x10000b4b8 <+552>: movq -0xc0(%rbp), %rdi
0x10000b4bf <+559>: callq 0x100029556 ; symbol stub for: objc_release
0x10000b4c4 <+564>: movq -0x70(%rbp), %rdi
0x10000b4c8 <+568>: callq 0x100029556 ; symbol stub for: objc_release
0x10000b4cd <+573>: movq -0x78(%rbp), %rdi
0x10000b4d1 <+577>: callq 0x10002975a ; symbol stub for: swift_release
0x10000b4d6 <+582>: movq -0x90(%rbp), %rdi
0x10000b4dd <+589>: callq 0x100029778 ; symbol stub for: swift_unknownRelease
0x10000b4e2 <+594>: movq -0x70(%rbp), %rdi
0x10000b4e6 <+598>: callq 0x100029556 ; symbol stub for: objc_release
0x10000b4eb <+603>: movq -0xc0(%rbp), %rax
0x10000b4f2 <+610>: addq $0xf8, %rsp
0x10000b4f9 <+617>: popq %rbx
0x10000b4fa <+618>: popq %rbp
0x10000b4fb <+619>: retq
// And here's the method that gets called, during which the ephemeral NSString is (over)released:
PeerSyncMac`PeerSyncMac.Peer.addObserver (PeerSyncMac.Peer)(ObjectiveC.NSObject, forKeyPath : Swift.String, options : C.NSKeyValueObservingOptions, context : Swift.UnsafeMutablePointer<()>) -> ():
0x100020b90 <+0>: pushq %rbp
0x100020b91 <+1>: movq %rsp, %rbp
0x100020b94 <+4>: subq $0x150, %rsp
0x100020b9b <+11>: movq 0x10(%rbp), %rax
0x100020b9f <+15>: movq %rdi, -0x8(%rbp)
0x100020ba3 <+19>: movq %rsi, -0x20(%rbp)
0x100020ba7 <+23>: movq %rdx, -0x18(%rbp)
0x100020bab <+27>: movq %rcx, -0x10(%rbp)
0x100020baf <+31>: movq %r8, -0x28(%rbp)
0x100020bb3 <+35>: movq %r9, -0x30(%rbp)
0x100020bb7 <+39>: movq %rax, -0x38(%rbp)
0x100020bbb <+43>: movq %rdi, -0xa0(%rbp)
0x100020bc2 <+50>: movq %rcx, %rdi
0x100020bc5 <+53>: movq %rax, -0xa8(%rbp)
0x100020bcc <+60>: movq %r9, -0xb0(%rbp)
0x100020bd3 <+67>: movq %r8, -0xb8(%rbp)
0x100020bda <+74>: movq %rcx, -0xc0(%rbp)
0x100020be1 <+81>: movq %rdx, -0xc8(%rbp)
0x100020be8 <+88>: movq %rsi, -0xd0(%rbp)
0x100020bef <+95>: callq 0x10002878e ; symbol stub for: swift_unknownRetain
0x100020bf4 <+100>: leaq 0xa016(%rip), %rdi ; "hostName"
0x100020bfb <+107>: movl $0x8, %r10d
0x100020c01 <+113>: movl %r10d, %esi
0x100020c04 <+116>: movl $0x1, %edx
0x100020c09 <+121>: callq 0x1000285de ; symbol stub for: Swift.String.init (Swift.String.Type)(_builtinStringLiteral : Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String
0x100020c0e <+126>: movq -0xd0(%rbp), %rdi
0x100020c15 <+133>: movq -0xc8(%rbp), %rsi
0x100020c1c <+140>: movq -0xc0(%rbp), %r8
0x100020c23 <+147>: movq %rdx, -0xd8(%rbp)
0x100020c2a <+154>: movq %r8, %rdx
0x100020c2d <+157>: movq %rcx, -0xe0(%rbp)
0x100020c34 <+164>: movq %rax, %rcx
0x100020c37 <+167>: movq -0xd8(%rbp), %r8
0x100020c3e <+174>: movq -0xe0(%rbp), %r9
0x100020c45 <+181>: callq 0x1000286b6 ; symbol stub for: static Swift.== infix (Swift.String, Swift.String) -> Swift.Bool
0x100020c4a <+186>: testb $0x1, %al
0x100020c4c <+188>: jne 0x100020c53 ; <+195> at Peer.swift:72
0x100020c4e <+190>: jmp 0x100020d3c ; <+428> at Peer.swift:73
0x100020c53 <+195>: movq 0x105be(%rip), %rsi ; "hostName"
0x100020c5a <+202>: movq -0xa8(%rbp), %rax
0x100020c61 <+209>: movq %rax, %rdi
0x100020c64 <+212>: callq 0x10002855a ; symbol stub for: objc_msgSend
0x100020c69 <+217>: movq %rax, %rdi
0x100020c6c <+220>: callq 0x100028572 ; symbol stub for: objc_retainAutoreleasedReturnValue
0x100020c71 <+225>: movq %rax, -0x98(%rbp)
0x100020c78 <+232>: cmpq $0x0, -0x98(%rbp)
0x100020c83 <+243>: sete %cl
0x100020c86 <+246>: xorb $0x1, %cl
0x100020c89 <+249>: testb $0x1, %cl
0x100020c8c <+252>: jne 0x100020c90 ; <+256> at Peer.swift:72
0x100020c8e <+254>: jmp 0x100020cb4 ; <+292> at Peer.swift:72
0x100020c90 <+256>: movq -0x98(%rbp), %rdi
0x100020c97 <+263>: callq 0x10002858a ; symbol stub for: Foundation._convertNSStringToString (ObjectiveC.NSString) -> Swift.String
0x100020c9c <+268>: movq %rax, -0x90(%rbp)
0x100020ca3 <+275>: movq %rdx, -0x88(%rbp)
0x100020caa <+282>: movq %rcx, -0x80(%rbp)
0x100020cae <+286>: movb $0x0, -0x78(%rbp)
0x100020cb2 <+290>: jmp 0x100020cd6 ; <+326> at Peer.swift:72
0x100020cb4 <+292>: movq $0x0, -0x88(%rbp)
0x100020cbf <+303>: movq $0x0, -0x90(%rbp)
0x100020cca <+314>: movq $0x0, -0x80(%rbp)
0x100020cd2 <+322>: movb $0x1, -0x78(%rbp)
0x100020cd6 <+326>: movq -0x80(%rbp), %rax
0x100020cda <+330>: movq -0x90(%rbp), %rcx
0x100020ce1 <+337>: movq -0x88(%rbp), %rdx
0x100020ce8 <+344>: movb -0x78(%rbp), %sil
0x100020cec <+348>: movq -0x60(%rbp), %rdi
0x100020cf0 <+352>: movq -0x70(%rbp), %r8
0x100020cf4 <+356>: movq -0x68(%rbp), %r9
0x100020cf8 <+360>: movb -0x58(%rbp), %r10b
0x100020cfc <+364>: movq %rdx, -0x68(%rbp)
0x100020d00 <+368>: movq %rcx, -0x70(%rbp)
0x100020d04 <+372>: movq %rax, -0x60(%rbp)
0x100020d08 <+376>: movb %sil, -0x58(%rbp)
0x100020d0c <+380>: testb %r10b, %r10b
0x100020d0f <+383>: movq %r8, -0xe8(%rbp)
0x100020d16 <+390>: movq %r9, -0xf0(%rbp)
0x100020d1d <+397>: movq %rdi, -0xf8(%rbp)
0x100020d24 <+404>: jne 0x100020d37 ; <+423> at Peer.swift:73
0x100020d26 <+406>: jmp 0x100020d28 ; <+408> at Peer.swift:72
0x100020d28 <+408>: movq -0xf8(%rbp), %rax
0x100020d2f <+415>: movq %rax, %rdi
0x100020d32 <+418>: callq 0x100028788 ; symbol stub for: swift_unknownRelease
0x100020d37 <+423>: jmp 0x100020e4b ; <+699> at Peer.swift:76
0x100020d3c <+428>: movq -0xc0(%rbp), %rdi
0x100020d43 <+435>: callq 0x10002878e ; symbol stub for: swift_unknownRetain
0x100020d48 <+440>: leaq 0x9ecb(%rip), %rdi ; "txtRecord"
0x100020d4f <+447>: movl $0x9, %eax
0x100020d54 <+452>: movl %eax, %esi
0x100020d56 <+454>: movl $0x1, %edx
0x100020d5b <+459>: callq 0x1000285de ; symbol stub for: Swift.String.init (Swift.String.Type)(_builtinStringLiteral : Builtin.RawPointer, byteSize : Builtin.Word, isASCII : Builtin.Int1) -> Swift.String
0x100020d60 <+464>: movq -0xd0(%rbp), %rdi
0x100020d67 <+471>: movq -0xc8(%rbp), %rsi
0x100020d6e <+478>: movq -0xc0(%rbp), %r8
0x100020d75 <+485>: movq %rdx, -0x100(%rbp)
0x100020d7c <+492>: movq %r8, %rdx
0x100020d7f <+495>: movq %rcx, -0x108(%rbp)
0x100020d86 <+502>: movq %rax, %rcx
0x100020d89 <+505>: movq -0x100(%rbp), %r8
0x100020d90 <+512>: movq -0x108(%rbp), %r9
0x100020d97 <+519>: callq 0x1000286b6 ; symbol stub for: static Swift.== infix (Swift.String, Swift.String) -> Swift.Bool
0x100020d9c <+524>: testb $0x1, %al
0x100020d9e <+526>: jne 0x100020da5 ; <+533> at Peer.swift:74
0x100020da0 <+528>: jmp 0x100020e49 ; <+697> at Peer.swift:75
0x100020da5 <+533>: movq 0x102dc(%rip), %rsi ; "txtRecord"
0x100020dac <+540>: movq -0xa8(%rbp), %rdi
0x100020db3 <+547>: callq 0x10002855a ; symbol stub for: objc_msgSend
0x100020db8 <+552>: movq %rax, %rdi
0x100020dbb <+555>: callq 0x100028572 ; symbol stub for: objc_retainAutoreleasedReturnValue
0x100020dc0 <+560>: movq 0xc361(%rip), %rsi ; (void *)0x0000000100689190: direct type metadata for Swift.String
0x100020dc7 <+567>: addq $0x8, %rsi
0x100020dcb <+571>: movq 0xc3a6(%rip), %rdx ; (void *)0x000000010067ebf8: protocol witness table for Swift.String : Swift.Hashable in Swift
0x100020dd2 <+578>: movq %rax, %rdi
0x100020dd5 <+581>: movq %rsi, -0x110(%rbp)
0x100020ddc <+588>: movq -0x110(%rbp), %rcx
0x100020de3 <+595>: callq 0x100028596 ; symbol stub for: Foundation._convertNSDictionaryToDictionary <A : Swift.Hashable, B>(ObjectiveC.NSDictionary) -> Swift.Dictionary<A, B>
0x100020de8 <+600>: movq -0x50(%rbp), %rcx
0x100020dec <+604>: movq %rax, -0x50(%rbp)
0x100020df0 <+608>: movq %rcx, %rax
0x100020df3 <+611>: shrq $0x3f, %rax
0x100020df7 <+615>: movb %al, %r8b
0x100020dfa <+618>: testq %rax, %rax
0x100020dfd <+621>: movq %rcx, -0x118(%rbp)
0x100020e04 <+628>: movb %r8b, -0x119(%rbp)
0x100020e0b <+635>: jne 0x100020e2b ; <+667> at Peer.swift:74
0x100020e0d <+637>: jmp 0x100020e0f ; <+639> at Peer.swift:74
0x100020e0f <+639>: movb -0x119(%rbp), %al
0x100020e15 <+645>: notb %al
0x100020e17 <+647>: testb $0x1, %al
0x100020e19 <+649>: je 0x100020e47 ; <+695> at Peer.swift:75
0x100020e1b <+651>: jmp 0x100020e1d ; <+653> at Peer.swift:74
0x100020e1d <+653>: movq -0x118(%rbp), %rdi
0x100020e24 <+660>: callq 0x10002876a ; symbol stub for: swift_release
-> 0x100020e29 <+665>: jmp 0x100020e47 ; <+695> at Peer.swift:75
0x100020e2b <+667>: movabsq $0x7fffffffffffffff, %rax
0x100020e35 <+677>: movq -0x118(%rbp), %rcx
0x100020e3c <+684>: andq %rax, %rcx
0x100020e3f <+687>: movq %rcx, %rdi
0x100020e42 <+690>: callq 0x100028788 ; symbol stub for: swift_unknownRelease
0x100020e47 <+695>: jmp 0x100020e49 ; <+697> at Peer.swift:75
0x100020e49 <+697>: jmp 0x100020e4b ; <+699> at Peer.swift:76
0x100020e4b <+699>: movq -0xa8(%rbp), %rdi
0x100020e52 <+706>: callq 0x10002856c ; symbol stub for: objc_retain
0x100020e57 <+711>: movq -0xa8(%rbp), %rdi
0x100020e5e <+718>: movq -0xc0(%rbp), %rcx
0x100020e65 <+725>: movq %rdi, -0x128(%rbp)
0x100020e6c <+732>: movq %rcx, %rdi
0x100020e6f <+735>: movq %rax, -0x130(%rbp)
0x100020e76 <+742>: callq 0x10002878e ; symbol stub for: swift_unknownRetain
0x100020e7b <+747>: movq -0xd0(%rbp), %rdi
0x100020e82 <+754>: movq -0xc8(%rbp), %rsi
0x100020e89 <+761>: movq -0xc0(%rbp), %rdx
0x100020e90 <+768>: callq 0x1000286f2 ; symbol stub for: swift_convertStringToNSString
0x100020e95 <+773>: movq -0x128(%rbp), %rcx
0x100020e9c <+780>: movq %rax, -0x138(%rbp)
0x100020ea3 <+787>: movq %rcx, -0x140(%rbp)
0x100020eaa <+794>: callq 0x100022db0 ; type metadata accessor for PeerSyncMac.Peer
0x100020eaf <+799>: leaq -0x48(%rbp), %rdi
0x100020eb3 <+803>: movq -0x140(%rbp), %rcx
0x100020eba <+810>: movq %rcx, -0x48(%rbp)
0x100020ebe <+814>: movq %rax, -0x40(%rbp)
0x100020ec2 <+818>: movq 0x101cf(%rip), %rsi ; "addObserver:forKeyPath:options:context:"
0x100020ec9 <+825>: movq -0xa0(%rbp), %rax
0x100020ed0 <+832>: movq -0x138(%rbp), %rdx
0x100020ed7 <+839>: movq %rdx, -0x148(%rbp)
0x100020ede <+846>: movq %rax, %rdx
0x100020ee1 <+849>: movq -0x148(%rbp), %rcx
0x100020ee8 <+856>: movq -0xb8(%rbp), %r8
0x100020eef <+863>: movq -0xb0(%rbp), %r9
0x100020ef6 <+870>: callq 0x100028560 ; symbol stub for: objc_msgSendSuper2
0x100020efb <+875>: movq -0x138(%rbp), %rdi
0x100020f02 <+882>: callq 0x100028566 ; symbol stub for: objc_release
0x100020f07 <+887>: movq -0xa8(%rbp), %rdi
0x100020f0e <+894>: callq 0x100028566 ; symbol stub for: objc_release
0x100020f13 <+899>: movq -0xa8(%rbp), %rdi
0x100020f1a <+906>: callq 0x100028566 ; symbol stub for: objc_release
0x100020f1f <+911>: movq -0xc0(%rbp), %rdi
0x100020f26 <+918>: callq 0x100028788 ; symbol stub for: swift_unknownRelease
0x100020f2b <+923>: movq -0xa0(%rbp), %rdi
0x100020f32 <+930>: callq 0x100028566 ; symbol stub for: objc_release
0x100020f37 <+935>: addq $0x150, %rsp
0x100020f3e <+942>: popq %rbp
0x100020f3f <+943>: retq
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment