2012-07-25 9 views
12

sto ottenendo a volte questo crash report:Come capire e risolvere relazione crash: 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 

non capisco questo rapporto crash. Inoltre non so quando questo sta accadendo.

C'è un modo per saperne di più su questo incidente?

Come posso risolvere questo problema?

+0

È necessario simbolizzare il rapporto di arresto anomalo, che convertirà gli indirizzi nella riga da 0 a 7 in classi, metodi e numeri di riga significativi. Di solito Xcode lo fa automaticamente se hai ancora il binario della build che ha causato lo schianto. Hai provato a importare il report nell'organizzatore Xcode per farlo simboleggiare? Come hai ottenuto questo rapporto? – Kerni

+0

@Kerni sto ottenendo il rapporto di arresto anomalo da crittercism.com. iam utilizzando l'SDK di crittercism per iOS. Vedo che l'app si arresta in modo anomalo su alcuni dispositivi e ottiene il registro nel mio post. posso scaricare il rapporto, ma è un file di testo. quando lo trascino a xcode, apre il file di testo. cosa dovrei fare? – brush51

+0

@Kerni grazie per la risposta. l'ho simboleggiato e ora ho il punto in cui si blocca. per favore scrivilo come risposta in modo da poterlo contrassegnare come risposta. – brush51

risposta

6

è necessario a sy mbolicare il rapporto di arresto anomalo, che convertirà gli indirizzi nella riga da 0 a 7 in classi, metodi e numeri di riga significativi. Di solito Xcode lo fa automaticamente se hai ancora il binario della build che ha causato lo schianto.

2

L'errore SIGSEV è un segnale di invio quando si tenta di ottenere la memoria che non ti è permesso di toccare

Il modo migliore per risolvere questo problema è quello di mettere una linea di punto di interruzione e saltare per linea al fine di trovare la linea che è il problema

oppure si può anche mettere un po 'di debug registri per vedere erano è il problema

per capire che cosa SIGSEV o SEGV_ACCERR significa, è possibile cercare su internet informazioni;)

+47

La mia ricerca su Internet mi ha portato qui :( – Saltymule

+3

Ho cercato anche SIGSEV e mi ha portato qui. Piuttosto che dirci di cercare su internet non lo dai una sintesi? –

+0

Questa risposta potrebbe fare luce http://stackoverflow.com/a/25877766/192924 – Vamos

1

La domanda è vecchia ma c'è un modo migliore quindi la risposta di John Smith.

Attualmente l'approccio migliore viene eseguito utilizzando il profiler (in XCode: Product/Profile) utilizzando il rispettivo modello.
Molto probabilmente è necessario utilizzare il modello "Zombies" che ora è supportato anche sul dispositivo :) non solo sull'emulatore. Quando si utilizza questo strumento si hanno maggiori possibilità di individuare l'uso errato della memoria.