2013-07-05 19 views
8

Non è possibile simbolizzare i registri di arresti anomali di OS X (non iOS) da tester e utenti che utilizzano XCode 4.6. I registri degli arresti anomali non possono essere trascinati nell'organizzatore e l'organizzatore non mostra alcun registro degli arresti anomali da ~/Library/Logs/DiagnosticReports /, sebbene alcuni registri siano in quella directory.Symbol X OS X Crash Log Symbol

Didier Malenfant commentato un thread precedente XCode not importing OS X crash log che

La conclusione è abbastanza semplice. A partire da ora (Xcode 4.6), i log degli arresti anomali di OS X non possono essere importati in Xcode. Solo quelli iOS.

È questo lo stato attuale delle cose? È difficile immaginare che le organizzazioni siano in grado di supportare il nuovo software OS X senza metodi efficaci per interpretare i report sugli arresti anomali.

+0

vedere http://stackoverflow.com/questions/6085734/how-do-i-symbolicate-a-crash-report-of-a-mac-os-x-app-that-a-user-emailed-to-me –

+0

Grazie. Ma la risposta che citi è più vecchia di un anno rispetto alla risposta che ho citato sopra, che lo contraddice. Simbolizzi regolarmente i log inviati dall'utente in xcode 4.6? –

risposta

3

È possibile utilizzare GDB per Symbolication, Metti il ​​tuo build di rilascio e il file .dSYM nella stessa directory terminale aperto

$ cd directory 
$ gdb MyApp.app 
(gdb) info line *0x00085f3c 

oppure è possibile utilizzare atos come suggerito da trojanfoe

$cd directory 
$atos -o MyApp.app/Contents/MacOS/MyApp 
info 0x00085f3c 

oppure

$ cd directory 
$ lldb MyApp.app 
(lldb) image lookup -v --address 0x1ec4 
+1

Oppure 'atos': https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/atos.1.html – trojanfoe

+0

@trojanfoe Aggiornato. –

+2

Oppure 'lldb' :)' ricerca immagine -v --indirizzo 0x1ec4' – trojanfoe

5

Se si dispone di una traccia di stack; per esempio:

0 com.your_app  0x00000001016191e0 0x1015fb000 + 123360 
1 com.your_app  0x000000010161509d 0x1015fb000 + 106653 
2 com.your_app  0x00000001016147b9 0x1015fb000 + 104377 
3 com.your_app  0x000000010161df81 0x1015fb000 + 143233` 

Provare quanto segue:

atos -o YOUR_APP.app.dSYM/Contents/Resources/DWARF/YOUR_APP -l 0x1015fb000 0x00000001016191e0 0x000000010161509d 0x00000001016147b9 0x000000010161df81` 
2

abbiamo avuto lo stesso problema con la nostra app e mi è stato symbolicating le segnalazioni di crash linea manualmente da linea con atos.

Ora ho ottimizzato lo script simbolico di Apple in modo che funzioni con le app Mac e i rapporti sugli arresti anomali di PLCrashReporter.

https://github.com/lksnmnn/Symbolicate-CrashReports

Come si usa:

Assicurarsi di avere tutti i seguenti file sul computer:

  1. La relazione crash: report.crash
  2. Il file dSYM della tua app: MyApp.dSYM
  3. La cartella eseguibile/dell'app dell'app: MyApp.App
  4. Il miglioramento della sceneggiatura symbolicate: symbolicatecrash

Ora andate nella riga di comando (Terminal) e procedere come segue:

# set the developer directory 
export DEVELOPER_DIR="/Applications/Xcode.app/Contents/Developer" 

# Now run the script 
/Path/To/symbolicatecrash /Path/To/report.crash > /Path/To/readable_report.crash 

# Use -v for verbose logging. 

Lo script sarà trovare il vostro dSYM e il vostro eseguibile e simboleggia tanto quanto può. A questo punto trovare il vostro rapporto symbolicated nel file di output dichiarato readable_report.crash

impostazioni di generazione:

Per i rapporti corretti e simboli, impostare le impostazioni di generazione a questa:

Strip Debug Symbols During Copy: Yes 
Strip Style: All Symbols 
Strip Linked Product: Yes