ios 分析.crash日志解决偶现bug

很多时候我们只是遇到了偶现的bug.或者只拿到.crash日志。很难分析出现bug的原因

第1步:.这是拿到的一段.crash日志。表示看不懂。没关系,我们现在进行分析

*注意我标红色的地方

Incident Identifier: 6A141CBA-A424-47E1-9EE8-2AD84F341DA2
CrashReporter Key:   1fbc08723232e938610aa7189b641d0e773aa875
Hardware Model:      iPhone8,1
Process:             YiTuo_Swift [28967]
Path:                /private/var/containers/Bundle/Application/C8E3B591-3602-4736-8523-5DD330BB5BB0/YiTuo_Swift.app/YiTuo_Swift
Identifier:          com.renywell.YiTuo-Swift
Version:             1 (1.1.6)
Code Type:           ARM-64 (Native)
Role:                Foreground
Parent Process:      launchd [1]
Coalition:           com.renywell.YiTuo-Swift [5948]




Date/Time:           2017-12-27 19:50:19.0831 +0800
Launch Time:         2017-12-27 17:39:11.6231 +0800
OS Version:          iPhone OS 11.1.2 (15B202)
Baseband Version:    4.00.01
Report Version:      104


Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note:  EXC_CORPSE_NOTIFY
Triggered by Thread:  0


Application Specific Information:
abort() called


Filtered syslog:
None found


Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib         0x0000000184f49348 __pthread_kill + 8
1   libsystem_pthread.dylib       0x000000018505d344 pthread_kill$VARIANT$mp + 396
2   libsystem_c.dylib             0x0000000184eb8fb8 abort + 140
3   libswiftCore.dylib             0x0000000104b84ef8 0x104894000 + 3084024
4   libswiftCore.dylib             0x0000000104b85000 0x104894000 + 3084288
5   libswiftCore.dylib             0x0000000104bb2c24 0x104894000 + 3271716
6   YiTuo_Swift                   0x0000000102604a60 0x1024d8000+ 1231456
7   Moya                           0x0000000103fcf720 0x103fc0000 + 63264
8   Moya                           0x0000000103fd17cc 0x103fc0000 + 71628
9   Moya                           0x0000000103fd76d8 0x103fc0000 + 95960
10  Moya                           0x0000000103fd8124 0x103fc0000 + 98596
11  Moya                           0x0000000103fcc04c 0x103fc0000 + 49228
12  Alamofire                     0x000000010368b438 0x10363c000 + 324664
13  Alamofire                     0x000000010364d7cc 0x10363c000 + 71628
14  libdispatch.dylib             0x0000000184db5088 _dispatch_call_block_and_release + 24
15  libdispatch.dylib             0x0000000184db5048 _dispatch_client_callout + 16
16  libdispatch.dylib             0x0000000184dc1b74 _dispatch_main_queue_callback_4CF$VARIANT$mp + 1016
17  CoreFoundation                 0x00000001853d9eb0 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 12
18  CoreFoundation                 0x00000001853d7a8c __CFRunLoopRun + 2012
19  CoreFoundation                 0x00000001852f7fb8 CFRunLoopRunSpecific + 436
20  GraphicsServices               0x000000018718ff84 GSEventRunModal + 100
21  UIKit                         0x000000018e8cc2e8 UIApplicationMain + 208
22  YiTuo_Swift                   0x0000000102a4b7c8 0x1024d8000 + 5715912
23  libdyld.dylib                 0x0000000184e1a56c start + 4

第二步:找到对应的DSYM文件,我直接上图了。但切记,一定要和崩溃版本是一致的

*我现在是用在调试测试机debug时生成的dsym,如果是线上的,要到window->organizer->archives里面去找了。具体可以百度,我就不多说了。


第3步:最关键了。来分析出错的原因。

在终端进入到DSYM的路径

dwarfdump --uuid YiTuo_Swift.app.dSYM

就可以知道是 arm64还是armv7

atos -arch arm64 -o YiTuo_Swift.app.dSYM/Contents/Resources/DWARF/YiTuo_Swift -l 0x1024d8000 0x0000000102604a60

注意后面2个地址参数就是上面.crash日志里的第6行的对应2个红的地址。前面是程序基地址,后面是方法的堆栈地址。

之后终端输出YTModifyUserInfoViewModel.getCityDatas(),我们就定位到问题的原因,直接去代码里排错就可以了。哈哈

下面是我直接贴出来终端的输出:

leiniweierMac-mini:~ wangfei$ cd /Users/wangfei/Library/Developer/Xcode/DerivedData/YiTuo_Swift-cmopmnsvdhfinggwvnlevuvlrqlx/Build/Products/Debug-iphoneos 

leiniweierMac-mini:Debug-iphoneos wangfei$ ls

ASJCollectionViewFillLayout Pods_YiTuo_Swift.framework

Alamofire Presentr

AlamofireImage Result

Charts RxCocoa

DateTools RxSwift

FloatRatingView SDWebImage

HandyJSON SVProgressHUD

IQKeyboardManager SnapKit

KeychainAccess SwiftLocation

M13Checkbox YiTuo_Swift.app

MJRefresh YiTuo_Swift.app.dSYM

Moya YiTuo_Swift.swiftmodule

leiniweierMac-mini:Debug-iphoneos wangfei$ dwarfdump --uuid YiTuo_Swift.app.dSYM

UUID: CCD18452-ECAF-34A2-A4F1-88CE1E25669E (arm64) YiTuo_Swift.app.dSYM/Contents/Resources/DWARF/YiTuo_Swift

leiniweierMac-mini:Debug-iphoneos wangfei$ atos -arch arm64 -o YiTuo_Swift.app.dSYM/Contents/Resources/DWARF/YiTuo_Swift -l 0x1024d8000 0x0000000102604a60

closure #1 in YTModifyUserInfoViewModel.getCityDatas() (in YiTuo_Swift) (YTModifyUserInfoViewModel.swift:0)




猜你喜欢

转载自blog.csdn.net/feifeiwuxian/article/details/78918511