通過崩潰trace來查詢問題原因

2021-06-16 13:39:43 字數 2280 閱讀 9716

這裡我們以umeng捕獲的錯誤資訊舉例:

從友盟中, 我們可能會得到如下資訊:

(null)

( 0 corefoundation 0x359348a7 __exceptionpreprocess + 186

1 libobjc.a.dylib 0x37cdb259 objc_exception_throw + 32

2 corefoundation 0x35934789 +[n***ception raise:format:] + 0

3 corefoundation 0x359347ab +[n***ception 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

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版本。

然後找到當時上傳**時使用的dysm檔案,這檔案通常在.xcarchive檔案中。 右鍵該檔案, 然後通過terminal工具cd到

2。 在xcode中,archive成功後, 會在organizer介面中的archives下, 可以看到所有的archive檔案, 右鍵show in finder可以找到這個檔案。

然後執行atos -arch armv7 -o ***movie 0x1153b9. 就可以看到這處記憶體位址反編譯回來的原始碼行。

可以有效地幫助分析原因。

通過崩潰trace來查詢問題原因

這裡我們以umeng捕獲的錯誤資訊舉例 從友盟中,我們可能會得到如下資訊 null 0 corefoundation 0x359348a7 exceptionpreprocess 186 1 libobjc.a.dylib 0x37cdb259 objc exception throw 32 2 c...

使用ndk stack來查詢崩潰

logcat報錯 fatal signal 6 sigabrt at 0x000025c9 code 6 thread 9703 thread 1277 都是一些暫存器以及函式位址,真不知道怎麼找具體哪個函式出錯了,這個時候使用ndk stack這個工具,ndk stack需要log作為輸入來分析 ...

VS 2005使用map檔案查詢程式崩潰原因

原文 一般程式崩潰可以通過debug,找到程式在那一行 崩潰了,最近編乙個多執行緒的程式,都不知道在那發生錯誤,多執行緒併發,又不好單行除錯,終於找到乙個比較好的方法來找原因,通過生成map檔案,由於2005取消map檔案生成行號資訊 vc6.0下是可以生成行號資訊的,不知道microsoft怎麼想...