從友盟中, 咱們可能會獲得以下信息:xcode
Application received signal SIGSEGVapp
(null)
(
0 CoreFoundation 0x359348a7 __exceptionPreprocess + 186
1 libobjc.A.dylib 0x37cdb259 objc_exception_throw + 32
2 CoreFoundation 0x35934789 +[NSException raise:format:] + 0
3 CoreFoundation 0x359347ab +[NSException raise:format:] + 34
4 NxxMovie 0x1153b9 _mh_execute_header + 1131449 5 libsystem_c.dylib 0x32d407e3 _sigtramp + 38 6 NxxMovie 0x390fb _mh_execute_header + 229627 7 CoreFoundation 0x358931fb -[NSObject performSelector:withObject:] + 42 8 NxxMovie 0x175a5 _mh_execute_header + 91557 9 CoreFoundation 0x358931fb -[NSObject performSelector:withObject:] + 42 10 Foundation 0x35457747 __NSThreadPerformPerform + 350 11 CoreFoundation 0x35908ad3 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14 12 CoreFoundation 0x3590829f __CFRunLoopDoSources0 + 214 13 CoreFoundation 0x35907045 __CFRunLoopRun + 652 14 CoreFoundation 0x3588a4a5 CFRunLoopRunSpecific + 300 15 CoreFoundation 0x3588a36d CFRunLoopRunInMode + 104 16 GraphicsServices 0x37526439 GSEventRunModal + 136 17 UIKit 0x33396cd5 UIApplicationMain + 1080 18 NxxMovie 0x31b7 _mh_execute_header + 8631 19 NxxMovie 0x3150 _mh_execute_header + 8528 ) dSYM UUID: FF67F6D3-C71C-3A7D-9C4C-C4FFBF8EEEB9 CPU Type: armv7 Slide Address: 0x00001000 Binary Image: NxxMovie Base Address: 0x000f4000
因爲這類的崩潰信息一般難以重現, 沒有任何的重現步驟,因此咱們得找到發佈該版本時的原始代碼,可能會須要回朔到之前的SVN或者Git版本。ide
而後找到當時上傳代碼時使用的DYSM文件,這文件一般在.xcarchive文件中。 右鍵該文件, 而後經過Terminal工具cd到工具
cd /Users/heqin/Downloads/xxxMovie2.0.0_apps_0605_2104\ 13-6-5\ 下午9.02.xcarchive/dSYMs/xxxMovie.app.dSYM/Contents/Resources/DWARFoop
注意:1。對於成功生成archvie的項目, 在這個archive的包中, 是能夠經過顯示包內容, 看到DSYMs文件夾和一個products文件夾, 繼續顯示DSYMs文件夾下,能夠看到一個xxx.app.DSYM文件,繼續對它顯示包內容,能夠看到Contents/Resources/DWARF/xxxx文件, 這個文件是編譯後的二進制文件,經過它能夠進行反編譯,從而找到二進制對應的源碼位置。spa
2。 在xcode中,archive成功後, 會在Organizer界面中的Archives下, 能夠看到全部的archive文件, 右鍵Show in Finder能夠找到這個文件。code
而後執行atos -arch armv7 -o xxxMovie 0x1153b9. 就能夠看到這處內存地址反編譯回來的源碼行。orm
能夠有效地幫助分析緣由。內存