Di solito, le app che si arrestano in modo anomalo su un Mac sono molto rare. Ma quando ciò accade, potresti voler tenere traccia di questi problemi. E se sei uno sviluppatore, devi capire perché la tua app si arresta in modo anomalo. Ecco come leggere e ordinare i rapporti sugli arresti anomali di macOS in base alla lingua codificata.
Link veloci
Apri rapporti sugli arresti anomali

Quando un'app si arresta in modo anomalo sul Mac, genera automaticamente un rapporto di arresto anomalo. Lo vedrai apparire dopo l'arresto anomalo con una finestra di avviso che dice "[Applicazione] si è interrotta in modo imprevisto". Questo rapporto sull'arresto anomalo è disponibile per la lettura immediata in questa finestra facendo clic sul pulsante "Segnala...". Il rapporto sull'arresto anomalo si trova anche nell'app Console.
1. Apri l'app Console digitando "Console" in Spotlight o vai su "Applicazione -> Utilità -> Console.app".
2. Fare clic su "Rapporti utente" nel menu a sinistra, quindi fare clic sul rapporto di arresto anomalo che si desidera visualizzare. Tutti questi file terminano con ".crash" e includono la data e l'app interrotta nel titolo. I dettagli del rapporto sull'arresto anomalo sono disponibili nel riquadro a destra.
Leggi i rapporti sugli arresti anomali di Mac OS
Esaminiamo il rapporto sull'arresto anomalo dall'alto verso il basso.
Cos'è che si blocca?
La prima parte del rapporto sull'arresto anomalo ti mostrerà se un processo o un'applicazione "si arresta in modo anomalo". La parte più importante per uno strumento di risoluzione dei problemi è il nome del processo.
Process: aText [11473] Path: /Applications/aText.app/Contents/MacOS/aText Identifier: com.trankynam.aText Version: 2.19 (62) Code Type: X86-64 (Native) Parent Process: ??? [1] Responsible: aText [11473] User ID: 501
Quando sono avvenute le vacanze?
La seconda parte ci dice quando si è verificato il guasto. Fornisce anche alcune informazioni sul tuo sistema.
Date/Time: 2018-03-15 00:58:10.552 -0400 OS Version: Mac OS X 10.12.6 (16G1036) Report Version: 12 Anonymous UUID: 6C985CFD-6975-3F30-50EB-0713315F5090 Time Awake Since Boot: 630000 seconds System Integrity Protection: enabled
Cosa ha causato il malfunzionamento?
La parte successiva è la più illuminante. Il "Tipo di eccezione" offerto dall'app ci dice cosa ha causato il malfunzionamento. Il registro riporta anche quale thread è andato in crash: in questo caso, il thread 0.
Crashed Thread: 0 Dispatch queue: com.apple.main-thread Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Codes: KERN_INVALID_ADDRESS at 0x000040dedeadbec0 Exception Note: EXC_CORPSE_NOTIFY Termination Signal: Segmentation fault: 11 Termination Reason: Namespace SIGNAL, Code 0xb Terminating Process: exc handler [0]
Liste di mele Alcuni tipi comuni di eccezioni Nella sua documentazione tecnica:
Scarso accesso alla memoria (EXC_BAD_ACCESS / SIGSEGV / SIGBUS) – Il programma sta tentando di accedere alla memoria in modo errato o con un indirizzo non valido. Con un codice che spiega il problema di memoria.
Uscita anomala (EXC_CRASH / SIGABRT) - Uscita anomala, solitamente causata da un'eccezione C++ non sospesa e da una chiamata ad abort()
Trace Trap (EXC_BREAKPOINT / SIGTRAP) – Come SIGABRT, ma questa terminazione offre al debugger collegato l'opportunità di interrompere il processo a un punto di interruzione e tracciare l'errore.
Istruzioni illegali (EXC_BAD_INSTRUCTION / SIGILL) – L'elaborazione ha emesso un'elaborazione che non è stata compresa o non ha potuto essere elaborata.
Esci (SIGQUIT) – Il processo è stato terminato da un altro processo con privilegi sufficienti. Di solito, il processo di monitoraggio pone fine al processo di negligenza.
Termina (SIGKILL) - Il processo è stato terminato su richiesta del sistema. Verrà aggiunto un codice di uscita per spiegare l'eccezione.
Come possiamo vedere dal crash report, l'applicazione ha tentato di accedere alla memoria non in quarantena. Ciò è dovuto a un errore di programmazione nell'applicazione o a una condizione utente insolita che causa la mappatura errata della memoria dell'applicazione.
Cosa porta a malfunzionamenti?
Successivamente, vediamo un elenco cronologico inverso di ciò che provoca l'arresto anomalo. Questi sono ordinati per thread, a partire dal thread 0.
Ci sono quattro colonne in questo rapporto. Il primo riporta il numero dell'evento in ordine cronologico inverso, a partire da 0. Il secondo è l'ID del processo. Il terzo è l'indirizzo del processo in memoria. Il quarto è il nome dell'attività del programma.
Questo "annulla" può essere alquanto sconcertante. Sono "simbolici", nel senso che alcuni indirizzi di memoria sono stati sostituiti da nomi di funzioni o attività applicative. A volte questo non può essere fatto completamente, lasciando indirizzi di memoria illeggibili disseminati del rapporto.
Lo vediamo nel rapporto sull'arresto anomalo sopra: com.trankynam.aText non è token. Anche con la codifica completa, lo sfondo può essere difficile da leggere. Gli sviluppatori di software a volte includono note utili su attività ed eventi dell'applicazione. Altre volte, sono indirizzi crittografati o un codice numerico. Se riesci a capire il simbolismo, potresti essere in grado di capire cosa sta succedendo. Ma per quanto possibile, dovrai codificare tu stesso l'applicazione per comprendere il backtrace.
Conclusione: è utile?
Se sei uno sviluppatore di software, è essenziale leggere i rapporti sugli arresti anomali. Questo ti aiuta a capire quale parte della tua app sta causando problemi e perché. Se sei un utente, non sono utili. Ma se si verifica un arresto anomalo costante, i rapporti sugli arresti anomali possono aiutarti a risolvere il problema o collaborare con lo sviluppatore per risolvere il problema. È possibile che il codice di errore venga risolto in modo utile tramite Google oppure è possibile inviarlo all'assistenza tecnica con le informazioni corrette. Se vuoi dettagli drastici, puoi leggere tutto a riguardo all'indirizzo Nota tecnica Apple sugli arresti anomali.