Ci sono registri di arresto anomalo generati da iPhone Simulator?
il simulatore si blocca molto ma non lascia tracce nella console ... il registro dei crash sarà utile.
Ci sono registri di arresto anomalo generati da iPhone Simulator?
il simulatore si blocca molto ma non lascia tracce nella console ... il registro dei crash sarà utile.
Risposte:
La console mostrerà l' NSLog()
output di un'app in esecuzione nel simulatore. I registri degli arresti anomali vengono salvati su file.
Ne ho trovati alcuni nella mia home directory sotto
~/Library/Logs/DiagnosticReports/
Hanno un'estensione di file .crash
Qualcosa che non ho ancora capito è come farli generare anche se il debugger cattura il EXC_BAD_ACCESS
segnale.
Aggiornare
Attualmente, (OSX 10.11.6), il .crash accede ~/Library/Logs/DiagnosticReports
, quando l'emulatore stesso va in crash . I registri per un arresto anomalo di un'app (ma il dispositivo emulatore funziona ancora correttamente), sono in:
~ / Library / Logs / CoreSimulator
Per ogni crash, c'è una sottocartella con un ID univoco. Ordina per data, in modo che il tuo arresto anomalo recente sia la prima sottocartella. Al suo interno, inizia guardando stderr.log
e system.log
.
Anche direttamente sotto CoreSimulator
, vedi CoreSimulator.log
e Simulator.log
.
~/Library/Logs/DiagnosticReports/
Sono abbastanza sicuro che puoi vederlo nell'app OS X Console situata in Utilità. Se mi sbaglio, assicurati di votarmi, quindi lo elimino.
AGGIORNARE:
In particolare (a partire da OSX 10.11.6),
Quando un'app si arresta in modo anomalo sull'emulatore, viene aggiunta una sottocartella (con un ID univoco) a:
~ / Library / Logs / CoreSimulator
All'interno di ciò, inizia esaminando stderr.log
e system.log
.
Quando l'emulatore stesso si arresta in modo anomalo, viene aggiunta una sottocartella a:
~ / Library / Logs / DiagnosticReports
Non confondere questo percorso con
/ Libreria / Logs
(mancante ~
all'inizio), che ha diversi rapporti sul tuo mac.
Ecco qualcosa che ha funzionato per me in un caso speciale ... La mia app si arrestava in modo anomalo con SIGKILL mentre veniva terminata. Vorrei vedere l'eccezione in main.m per alcuni secondi, quindi l'app finirebbe di terminare, quindi nessuna possibilità di ottenere la traccia a ritroso.
Ho fatto molte ricerche su "dove il simulatore memorizza i suoi registri di arresto anomalo" e non sono mai riuscito a trovare una risposta. Tuttavia, il seguente trucco è stato molto utile e sono stato in grado di afferrare il registro dei crash al volo:
Fondamentalmente, apri /Applications/Utilities/CrashReporterPrefs.app e cambia l'impostazione in "Sviluppatore". Ciò farà sì che CrashReporter visualizzi un popup con il registro degli arresti anomali dopo l'arresto anomalo dell'app.
L'ho trovato nella sezione "Visualizzazione della console del simulatore iOS e dei registri degli arresti anomali" in questo documento di Apple: http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/125-Using_iOS_Simulator/ios_simulator_application. html
Questo è molto più affidabile. In pochi passaggi sono stato in grado di trovare il numero della riga di origine e il nome del metodo:
I registri degli arresti anomali verranno visualizzati in ~ / Library / Logs / CrashReporter.
Quando Xcode riceve i registri di arresto anomalo da un dispositivo connesso, li memorizza in sottocartelle di ~ / Library / Logs / CrashReporter / MobileDevice