2012-08-09 15 views

risposta

33

Prima di tutto, sono necessari tre file: il file dSYM, il file dell'applicazione e il registro degli arresti anomali.

Aprire il codice X, nella barra di navigazione del progetto visualizzare la cartella Prodotti e "Mostra nel Finder" il file dell'app. Qui troverai anche il file dSYM. Copiali in una cartella.

Ora aprire il terminale e passare alla cartella precedentemente copiata dei due file. Esecuzione: dwarfdump --uuid Application_name.app/Application_name Si dovrebbe ricevere l'UUID dell'applicazione. Eseguire il seguente comando: dwarfdump --uuid Application_name.app.dSYM - si riceverà di nuovo l'UUID, che deve corrispondere all'UUID ricevuto in precedenza.

Aprire il registro degli arresti anomali (X Code - Organizer - arresti anomali) e individuare la riga in cui appare il titolo "Immagini binarie". Ecco un altro UUID nella prima riga, che dovrebbe corrispondere di nuovo con il precedente ricevuto nel terminale.

Ora, si è certi che il crash è stato registrato nella build che si sta esaminando, quindi riaprire il file di registro di crash, trovare la sezione Thread 0 e ci dovrebbero essere due righe con il nome dell'applicazione e due indirizzi. Come ad esempio:

Application_name 0x123456 
Application_name 0x987654 

Nel terminale si dovrebbe eseguire ora: atos -arch armv7 -o address1 address2 (l'address1 e address2 devono essere sostituiti con i precedenti due indirizzi, e l'ARMv7 con il sistema di - si dimostra in prima linea, dove hai preso gli UUID).

Buon debug!

MODIFICA: Vorrei menzionare il post this come base del mio.

+1

ATO comandare il processo descritto non sempre funziona, a causa di ASLR in versioni recenti di iOS. Vai invece a questa spiegazione su cosa fare invece: http://stackoverflow.com/questions/13574933/ios-crash-reports-atos-not-working-as-expected/13576028#13576028 – Kerni

1

In realtà, non è possibile decodificare il file dSYM, ma ottenere dettaglio errore da esso 1. trovare il filo schianto e indirizzi da file di registro: segue è 0x0nnn 2. trovare il tipo di codice nativo da file di registro: segue è arm64
3. trovare il file dSYM (file dei simboli), estrarre da .xcarchive: segue è xx.app.dSYM

dwarfdump --lookup 0x0nnn --arch=[arm64 armv6 armv7] xx.app.dSYM 
Problemi correlati