iOS 友盟統計的bug分析


前提:保留打包發布時的 myapp.xcarchive文件(注:在xcode-window-Organizer-Archives 中可以找到,通過命令打包需要自己當時備份下這個文件)

1、從myapp.xcarchive中得到myapp.app.dSYMmyapp 兩個文件並放到同一個文件夾中

2、找到一條該版本app 在友盟bug統計中崩潰日志的,在其中可以找到崩潰時的地址信息如:0x1001ed424

友盟統計的崩潰log
Application received signal SIGSEGV (
null) ( 0 CoreFoundation 0x000000018400e5b8 <redacted> + 160 1 libobjc.A.dylib 0x00000001947600e4 objc_exception_throw + 60 2 CoreFoundation 0x000000018400e4dc <redacted> + 0 3 myapp 0x1005d0fdc myapp + 6098908 4 libsystem_platform.dylib 0x0000000194f7c94c _sigtramp + 52 5 myapp 0x1001ed424 myapp + 2020388 6 myapp 0x1001ed240 myapp + 2019904 7 myapp 0x1001ed364 myapp + 2020196 8 myapp 0x1001e6654 myapp + 1992276 9 myapp 0x10024a85c myapp + 2402396 10 libdispatch.dylib 0x0000000194da53ac <redacted> + 24 11 libdispatch.dylib 0x0000000194da536c <redacted> + 16 12 libdispatch.dylib 0x0000000194da9980 _dispatch_main_queue_callback_4CF + 932 13 CoreFoundation 0x0000000183fc5fa4 <redacted> + 12 14 CoreFoundation 0x0000000183fc404c <redacted> + 1492 15 CoreFoundation 0x0000000183ef10a4 CFRunLoopRunSpecific + 396 16 GraphicsServices 0x000000018d0935a4 GSEventRunModal + 168 17 UIKit 0x00000001888263c0 UIApplicationMain + 1488 18 myapp 0x10029b5dc myapp + 2733532 19 libdyld.dylib 0x0000000194dcea08 <redacted> + 4 ) dSYM UUID: BF6D8B68-25AD-3D83-9EFA-2EC4662771CC CPU Type: arm64 Slide Address: 0x0000000100000000 Binary Image: myapp Base Address: 0x0000000100064000

 

3、打開終端,切換到該文件夾,運行下面命令 終端中將顯示錯誤出現的的詳細信息

xcrun atos -arch arm64 -o myapp.app/myapp 0x1001ed424
 
        

或者

dwarfdump --lookup 0x1001ed424 -arch arm64 myapp.app.dSYM

 

注:對一些特殊復雜的bug引起的崩潰,通過此命令的分析,也得不到什么有用的錯誤信息提示。

關於dSYM

dSYM 在打包的過程中生成的保存app 16 進制函數地址映射信息的中轉文件,通過出錯的函數地址去查詢 dSYM 文件中程序對應的函數名和文件名,從而得到錯誤詳細信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM