2012-07-25 197 views
12

我有時會得到這個崩潰報告:如何認識和解決崩潰報告:SIGSEGV,SEGV_ACCERR

Name: SIGSEGV 
Reason: SEGV_ACCERR 
Stack Trace: 

0 MyApp 0x00070456 0x1000 + 455766 
1 MyApp 0x0007a34d 0x1000 + 496461 
2 MyApp 0x0007a4f1 0x1000 + 496881 
3 MyApp 0x000d31dd 0x1000 + 860637 
4 MyApp 0x00067f0f 0x1000 + 421647 
5 MyApp 0x0005ad69 0x1000 + 367977 
6 MyApp 0x000081e3 0x1000 + 29155 
7 MyApp 0x00008ae9 0x1000 + 31465 
8 CoreFoundation 0x35a547e4 __invoking___ + 68 
9 CoreFoundation 0x359af7b1 -[NSInvocation invoke] + 160 
10 Foundation 0x3556268f -[NSInvocationOperation main] + 114 
11 Foundation 0x354fb393 -[__NSOperationInternal start] + 862 
12 Foundation 0x35564793 __block_global_6 + 102 
13 libdispatch.dylib 0x348dec59 _dispatch_call_block_and_release + 12 
14 libdispatch.dylib 0x348e1817 _dispatch_worker_thread2 + 258 
15 libsystem_c.dylib 0x32e0edfb _pthread_wqthread + 294 

我不明白這個崩潰報告。我也不知道這是什麼時候發生的。

有沒有辦法找到更多關於這次事故的信息?

我該如何解決這個問題?

+0

您需要用符號表示崩潰報告,該報告將第0行到第7行的地址轉換爲有意義的類,方法和行號。通常,Xcode會自動執行該操作,如果您仍然有導致崩潰的構建的二進制文件。您是否嘗試將報告導入Xcode組織者以使其符號化?你是如何得到這份報告的? – Kerni 2012-07-25 11:05:20

+0

@Kerni我從crittercism.com得到崩潰報告。 iam使用iOS的crittercism SDK。我看到,應用程序在某些設備上崩潰,並在我的帖子中獲取日誌。我可以下載報告,但它是一個文本文件。當我拖放到xcode時,它會打開文本文件。我該怎麼辦? – brush51 2012-07-30 08:18:10

+0

@Kerni謝謝你的回答。我已經象徵它,現在我有點崩潰的地步。請將其寫爲答案,以便我可以將其標記爲已回答。 – brush51 2012-07-30 08:35:57

回答

6

您需要sy分析崩潰報告,它會將第0行到第7行的地址轉換爲有意義的類,方法和行號。通常,Xcode會自動執行該操作,如果您仍然有導致崩潰的構建的二進制文件。

2

的SIGSEV錯誤的信號發送當你試圖讓你不準碰

解決這個問題的最好辦法是把一個斷點,並跳轉行,每行,以便找到內存線這是問題

或者你也可以把一些調試日誌,看看是出了問題

對於瞭解SIGSEV或SEGV_ACCERR的意思是,你可以在互聯網上更多的信息搜索;)

+47

我在互聯網上的搜索導致我在這裏:( – Saltymule 2013-10-01 12:56:56

+3

我也搜索了SIGSEV,它把我帶到了這裏,而不是告訴我們搜索互聯網,你不給一個總結? – 2015-06-05 23:41:23

+0

這個答案可能會減輕一些光http://stackoverflow.com/a/25877766/192924 – Vamos 2017-03-01 18:11:13

1

問題是古老的,但約翰史密斯回答有更好的方法。

目前最好的方法是使用相應的模板使用profiler(在XCode:Product/Profile中)運行。
很可能你需要使用「殭屍」模板,現在也支持設備:)不僅在模擬器上。 使用此工具時,您有更大的機會發現不正確的內存使用。