Cum să citiți rapoartele de blocare macOS pentru a depana Mac-ul dvs.

Cum să citiți rapoartele de blocare macOS pentru a depana Mac-ul dvs.

Blocările aplicațiilor pe Mac sunt, în general, destul de rare. Dar când se întâmplă, este posibil să doriți să le urmăriți cauza. Și dacă sunteți dezvoltator, trebuie să înțelegeți de ce aplicația dvs. se blochează. Iată cum să citiți rapoartele de blocare macOS și să sortați în limbajul criptic.

Deschiderea rapoartelor de avarie

Când o aplicație se blochează pe Mac-ul dvs., acesta generează automat un raport de blocare. Veți vedea acest lucru după accident, cu un dialog de avertizare care va spune „[App] a renunțat în mod neașteptat.”Raportul de blocare este disponibil pentru a fi citit imediat în acea fereastră, făcând clic pe butonul„ Raportează… ”. Raportul de blocare poate fi găsit și în aplicația Console.

1. Deschideți aplicația Console tastând „Console” în Spotlight sau navigați la „Application -> Utilities -> Console.app”.

cum-să-citești-rapoarte-de-blocare-2

2. Faceți clic pe „Rapoarte utilizator” în meniul din stânga, apoi faceți clic pe raportul de blocare pe care doriți să-l vizualizați. Toate aceste fișiere se vor termina cu „.crash” și vor include data și aplicația blocată în titlu. Detaliile raportului de blocare sunt disponibile în panoul din dreapta.

console-read-crash-reports-2

Citirea rapoartelor de blocare macOS

Să navigăm în raportul de blocare de sus în jos.

Ce s-a prăbușit?

consola-citire-rapoarte-accidente-3

Prima parte a raportului de blocare vă arată ce „proces” sau aplicație sa blocat. Cea mai importantă parte pentru instrumentul de depanare mediu este numele procesului.

Când s-a prăbușit?

consola-citire-rapoarte-accidente-4

A doua parte ne spune când a avut loc accidentul. De asemenea, oferă câteva informații despre sistemul dvs.

Ce a provocat prăbușirea?

consola-citire-rapoarte-avarie-5

Următoarea parte este cea mai iluminatoare. „Tipul de excepție” furnizat de aplicație ne spune ce a cauzat blocarea. Jurnalul raportează, de asemenea, ce fir s-a blocat: în acest caz, firul 0.

Apple enumeră câteva tipuri de excepții comune în documentația lor tehnică:

  • Acces slab la memorie (EXC_BAD_ACCESS / SIGSEGV / SIGBUS) – programul încearcă să acceseze memoria incorect sau cu o adresă nevalidă. Anexat cu un cod care explică problema memoriei.
  • Ieșire anormală (EXC_CRASH / SIGABRT) – ieșire anormală, de obicei la mâna unei excepții C ++ neaprinse și apeluri către abort()
  • Trace Trap (EXC_BREAKPOINT / SIGTRAP) – ca SIGABRT, dar această ieșire oferă depanatorului atașat șansa de a întrerupe procesul la un punct de întrerupere și de a urmări eroarea.
  • Instrucțiuni ilegale (EXC_BAD_INSTRUCTION / SIGILL) – cei procesați au emis o instrucțiune care nu a fost înțeleasă sau nu a putut fi procesată.
  • Părăsi (SIGQUIT) – procesul a fost încheiat de un alt proces cu privilegii suficiente. De obicei, un proces de supraveghere încheie un proces de comportament greșit.
  • Ucis (SIGKILL) – procesul a fost încheiat la cererea sistemului. Va fi adăugat un cod de reziliere pentru a explica excepția.

După cum putem vedea din raportul nostru de blocare, aplicația a încercat să acceseze memoria nemapată. Acest lucru se datorează unei erori de programare în aplicație sau unei stări neobișnuite de utilizator care determină aplicația să mapeze incorect memoria.

Ce a dus la prăbușire?

console-read-crash-reports-6

După aceea, vom vedea o listă cronologică inversă a ceea ce a dus la prăbușire. Acestea sunt sortate după fir, începând cu firul 0.

Acest raport are patru coloane. Primul raportează numărul evenimentului în ordine cronologică inversă, începând de la 0. Al doilea este identificatorul procesului. A treia este adresa procesului în memorie. Al patrulea este numele sarcinii programului.

Acest „backtrace” poate fi oarecum descumpănitor. Este „simbolizat”, ceea ce înseamnă că unele dintre adresele de memorie au fost înlocuite cu nume de funcții sau sarcini ale aplicației. Uneori, acest lucru nu se poate face complet, lăsând adrese de memorie ilizibile împrăștiate prin raport.

Vedem acest lucru în raportul de blocare de mai sus: com.trankynam.aText nu este simbolizat. Chiar și cu o simbolizare completă, poate fi greu să citești traseul. Uneori dezvoltatorii includ note utile despre sarcinile și evenimentele aplicației. Alteori, sunt titluri criptice sau cod numeric. Dacă poți da sens simbolizării, s-ar putea să înțelegi ce se întâmplă. Dar este la fel de posibil ca să aveți nevoie să codificați singuri aplicația pentru a înțelege retragerea.

Concluzie: Este util acest lucru?

Dacă sunteți dezvoltator, citirea rapoartelor de blocare este esențială. Vă ajută să înțelegeți ce parte a aplicației dvs. se blochează și de ce. Dacă sunteți utilizator, nu vă sunt la fel de utile. Dar dacă aveți un blocaj persistent, rapoartele de blocare vă pot ajuta să depanați problema sau să colaborați cu dezvoltatorul pentru a remedia problema. S-ar putea să primiți un cod de eroare util către Google sau să puteți oferi asistență tehnică cu informațiile corecte. Dacă doriți detaliile sângeroase, puteți citi totul despre el în Nota tehnică a Apple despre blocări.

Scroll to Top