iOS:如何从dissasembly日志中本地化源代码中的行

时间:2015-11-15 22:41:48

标签: ios crash nszombie

控制台信息:

2015-11-15 23:26:42.824 SWPi2[1564:476501] *** -[__NSCFConstantString length]: message sent to deallocated instance 0x110d868a0

bt:

* thread #1: tid = 0x74555, 0x0000000110a9beaf CoreFoundation`___forwarding___ + 767, queue = 'com.apple.main-thread', stop reason = EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0)
* frame #0: 0x0000000110a9beaf CoreFoundation`___forwarding___ + 767
frame #1: 0x0000000110a9bb28 CoreFoundation`__forwarding_prep_0___ + 120
frame #2: 0x0000000110a1abfc CoreFoundation`CFURLCreateStringByReplacingPercentEscapes + 60
frame #3: 0x0000000110a5cec6 CoreFoundation`URLPathToPOSIXPath + 38
frame #4: 0x0000000110a1a1e7 CoreFoundation`CFURLCreateStringWithFileSystemPath + 439
frame #5: 0x0000000110a16f2c CoreFoundation`CFURLCopyFileSystemPath + 364
frame #6: 0x0000000110b05b25 CoreFoundation`extractQuadrupleFromPathIfPossible + 1221
frame #7: 0x0000000110b3f8c9 CoreFoundation`+[CFPrefsSearchListSource withSearchListForIdentifier:container:perform:] + 185
frame #8: 0x0000000110b2d017 CoreFoundation`_CFPreferencesCopyAppValueWithContainer + 183
frame #9: 0x0000000117a4f134 libAccessibility.dylib`_copyValuePreference + 138
frame #10: 0x0000000117a4ee14 libAccessibility.dylib`_getBooleanPreference + 24
frame #11: 0x0000000117a52312 libAccessibility.dylib`_AXSQuickSpeakEnabled + 76
frame #12: 0x000000010f0d57ad UIKit`-[UIApplication(UIKitApplicationAccessibility) _accessibilitySetUpQuickSpeak] + 79
frame #13: 0x00000001101a7129 Foundation`__NSFireDelayedPerform + 402
frame #14: 0x0000000110aa6364 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 20
frame #15: 0x0000000110aa5f11 CoreFoundation`__CFRunLoopDoTimer + 1089
frame #16: 0x0000000110a678b1 CoreFoundation`__CFRunLoopRun + 1937
frame #17: 0x0000000110a66e98 CoreFoundation`CFRunLoopRunSpecific + 488
frame #18: 0x0000000111bf8ad2 GraphicsServices`GSEventRunModal + 161
frame #19: 0x000000010ecd6676 UIKit`UIApplicationMain + 171
frame #20: 0x000000010deb1c41 SWPi2`main(argc=1, argv=0x00007fff51def770) + 129 at main.m:7
frame #21: 0x000000011255b92d libdyld.dylib`start + 1

线程转发:

0x110a9bc80 <+208>:  movq   %rbx, -0x40(%rbp)
0x110a9bc84 <+212>:  leaq   0x2a3a0d(%rip), %rsi      ; "_NSZombie_"
0x110a9bc8b <+219>:  movl   $0xa, %edx
0x110a9bc90 <+224>:  movq   %r14, %rdi
0x110a9bc93 <+227>:  callq  0x110ba403c               ; symbol stub for: strncmp
0x110a9bc98 <+232>:  testl  %eax, %eax
0x110a9bc9a <+234>:  je     0x110a9be63               ; <+691>
0x110a9bca0 <+240>:  movq   0x2ca1c1(%rip), %rsi      ; "methodSignatureForSelector:"
0x110a9bca7 <+247>:  movq   %r12, %rdi
0x110a9bcaa <+250>:  callq  0x110ba37e4               ; symbol stub for: class_respondsToSelector
0x110a9bcaf <+255>:  testb  %al, %al
0x110a9bcb1 <+257>:  movq   -0x40(%rbp), %r14
0x110a9bcb5 <+261>:  movq   -0x38(%rbp), %r13
0x110a9bcb9 <+265>:  je     0x110a9beb4               ; <+772>
0x110a9bcbf <+271>:  movq   0x2ca1a2(%rip), %rsi      ; "methodSignatureForSelector:"
0x110a9bcc6 <+278>:  movq   %r14, %rdi
0x110a9bcc9 <+281>:  movq   -0x30(%rbp), %rdx
0x110a9bccd <+285>:  callq  *0x2dc525(%rip)           ; (void *)0x00000001105d3800: objc_msgSend
0x110a9bcd3 <+291>:  movq   %rax, %r12
0x110a9bcd6 <+294>:  testq  %r12, %r12
0x110a9bcd9 <+297>:  je     0x110a9bf11               ; <+865>
0x110a9bcdf <+303>:  movq   0x2ca152(%rip), %rsi      ; "_frameDescriptor"
0x110a9bce6 <+310>:  movq   %r12, %rdi
0x110a9bce9 <+313>:  callq  *0x2dc509(%rip)           ; (void *)0x00000001105d3800: objc_msgSend
0x110a9bcef <+319>:  movq   %rax, %rbx
0x110a9bcf2 <+322>:  movq   (%rbx), %rax
0x110a9bcf5 <+325>:  movzwl 0x22(%rax), %eax
0x110a9bcf9 <+329>:  shrl   $0x6, %eax
0x110a9bcfc <+332>:  andq   $0x1, %rax
0x110a9bd00 <+336>:  cmpq   %r13, %rax
0x110a9bd03 <+339>:  je     0x110a9bd49               ; <+409>
0x110a9bd05 <+341>:  movq   -0x30(%rbp), %rdi
0x110a9bd09 <+345>:  callq  0x110ba38ec               ; symbol stub for: sel_getName
0x110a9bd0e <+350>:  movq   %rax, %rdx
0x110a9bd11 <+353>:  movq   (%rbx), %rax
0x110a9bd14 <+356>:  movzwl 0x22(%rax), %eax
0x110a9bd18 <+360>:  leaq   0x29b169(%rip), %rsi      ; ""
0x110a9bd1f <+367>:  leaq   0x2aa161(%rip), %r8       ; " not"
0x110a9bd26 <+374>:  testb  $0x40, %al
0x110a9bd28 <+376>:  movq   %r8, %rcx
0x110a9bd2b <+379>:  cmovneq %rsi, %rcx
0x110a9bd2f <+383>:  testq  %r13, %r13
0x110a9bd32 <+386>:  cmovneq %rsi, %r8
0x110a9bd36 <+390>:  leaq   0x2f1983(%rip), %rsi      ; @"*** NSForwarding: warning: method signature and compiler disagree on struct-return-edness of '%s'.  Signature thinks it does%s return a struct, and compiler thinks it does%s."
0x110a9bd3d <+397>:  movl   $0x4, %edi
0x110a9bd42 <+402>:  xorl   %eax, %eax

Profiler在没有僵尸标志的地方停留。

如何在源代码中本地化 NSZombie

0 个答案:

没有答案