¿Cómo se obtienen los archivos de diagnóstico del sistema de macOS?

20

Estoy tratando de depurar una aplicación bloqueada (o bloqueada). ¿Cómo obtengo los archivos de diagnóstico del bloqueo?

Stephen
fuente

Respuestas:

19

Los informes de fallos individuales se almacenan en ~ / Library / Logs / CrashReporter, pero hay una herramienta de recopilación de registros en todo el sistema llamada sysdiagnose .

Una vez que comience a experimentar el problema, mantenga presionadas las 4 teclas de control y luego presione el punto "." llave. shift+ control+ option+ command+.

Después de aproximadamente 15 segundos, se abrirá una ventana del Finder con un archivo sysdiagnose resaltado.

Una vez que comience a experimentar el problema, mantenga presionadas las teclas "shift" + "control" + "opción" + "comando" y luego presione el punto "."  llave.

Este acceso directo simplemente ejecuta el sysdiagnosecomando, por lo que si está familiarizado con el terminal y desea pasar un ID de proceso, puede obtener información de depuración mejorada sobre ese programa específico. El atajo de teclado llama a la herramienta sin argumentos y solo captura el informe básico.

Stephen
fuente
¿hay alguna manera de obtener esto por línea de comando?
Sidasa
1
~/Library/Logs/CrashReporterno contiene .crasharchivos En cambio: /Library/Logs/DiagnosticReportsy~/Library/Logs/DiagnosticReports
Graham Perrin
El acorde clave para sysdiagnose funcionará solo si se ejecuta el demonio stackshot. En mi respuesta , el launchctlcomando iniciará el demonio.
Graham Perrin
¿El sysdiagnosecomando también está disponible en OS 10.6? No encuentro una página de manual y which sysdiagnoseno devuelve nada en OS 10.6.8, ¿o tengo que instalarla explícitamente?
Mayormente inofensivo
1
@ Martin, mi respuesta se edita para responder a su pregunta.
Graham Perrin
16

Sysdiagnose de manzana

Este script de shell (en 10.8 y versiones inferiores) y el programa ejecutable con el mismo nombre en 10.9:

  • recopila información de diagnóstico de todo el sistema
  • es integral para OS X Lion y superior
  • no está disponible como descarga por separado
  • no es de código abierto (le he pedido a Apple que lo haga).

Preparación para el enfoque de sysdiagnose solo con teclado

En Terminal, ejecute el siguiente comando.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • si se le solicita una contraseña, ingrese su contraseña de administrador para el sistema operativo
  • eso es único, no es necesario repetir el comando.

Tome una nota escrita del siguiente acorde clave, lo necesitará más adelante:

Control- Option- Command- Shift-.

Diagnóstico por el sistema

Cuando ocurre un problema:

  1. usa el acorde clave
  2. durante al menos diez segundos, no toque nada
  3. espere unos cinco o diez minutos para sysdiagnoseque se completen todas las partes de la rutina; simplemente espere tanto como pueda (no habrá ninguna indicación en pantalla del progreso)
  4. El buscador debe abrir una ventana al resultado final.

Excepcionalmente

En casos raros, un problema puede evitar que se complete el diagnóstico de sysdiagnose (he hecho sugerencias de mejora a Apple). Si esto sucede, si está seguro de que ha esperado lo suficiente, puede ser conveniente reiniciar la Mac. Luego:

  1. en Finder, ve a /private/var/tmp
  2. buscar un archivo o carpeta con un nombre que comience sysdiagnose_
  3. si ese archivo o carpeta existe, muévalo a un lugar conveniente, tal vez su escritorio.

Consejos

Sin el acorde de teclas, puede ejecutar sysdiagnose desde la línea de comandos (ver más abajo, página del manual de Apple). Pero a menudo es más útil, o necesario, usar el acorde, así que prepárate.

Si bien no fomento el descuido, puedes ser un poco descuidado con Control- Option- Command- Shift- .... si te cuesta evitar la fnllave de tu computadora portátil, no te preocupes; incluirlo por accidente no debe impedir la ejecución de sysdiagnose.


Análisis humano del diagnóstico por el sistema.

Sugerencia: a alguien le gustaría hacer una pregunta por separado sobre el análisis de los resultados sysdiagnose; una respuesta más generalizada podría ser útil.

Si sysdiagnose_ ... del /tmpárea es un archivo

La presencia de un sysdiagnose_….tar.gzarchivo indica que todas las partes de la sysdiagnoserutina se completaron y que los resultados se archivaron. Si lo desea, abra el archivo; su contenido aparecerá como una carpeta.

Si sysdiagnose_ ... del /tmpárea es una carpeta

La presencia de una sysdiagnose_…carpeta (no un .tar.gzarchivo) indica que:

  • la rutina se interrumpió antes de completarse; o
  • alguna parte de la rutina no pudo completarse.

Dentro del archivo / carpeta

Algunos archivos son legibles por humanos y pueden ayudar a solucionar un problema.

Otros archivos están más orientados al desarrollador.

Relacionado:

Para una ejecución incompletasysdiagnose , puede ser útil centrar un poco la atención en los archivos que están anormalmente vacíos ...


Notas técnicas y otras

stackshot (1) Página del manual de OS X

sysdiagnose (1) Página del manual de OS X

Algo de lo anterior es una edición más genérica de una respuesta aceptada que aparece en otra parte.


Información de diagnóstico y uso, otros archivos de interés.

Déjate guiar por la lista de registro en la consola:

Una captura de pantalla de la barra lateral de la consola

Espere encontrar archivos en las siguientes rutas:

  • ~ / Library / Logs / DiagnosticReports
  • / Library / Logs / DiagnosticReports
  • ~ / Biblioteca / Registros
  • / Biblioteca / Registros
  • / private / var / log
Graham Perrin
fuente
2
→ Graham: este es un día +: ¡algo que aprender! Creo que este tipo de herramienta beneficiaría todas las entradas de los administradores de sistemas si fuera de código abierto.
Dan
0

Console

Para buscar archivos existentes de diagnóstico o bloqueo, abra la aplicación Consola y busque los archivos en Informes de usuario (ubicados en ~/Library/Logs/DiagnosticReports) o en las secciones Informes del sistema (ubicados en /Library/Logs/DiagnosticReports). Ver: ¿Dónde puedo encontrar mis registros de bloqueo?

sysdiagnose

Según las sysdiagnoseinstrucciones oficiales para macOS, puede activar uno de los siguientes sysdiagnosemodos:

Nota: Para acceder al enlace anterior, primero debe iniciar sesión en el sitio del desarrollador Apple .

  • Presione brevemente las siguientes teclas simultáneamente:

    Command- Option- Shift- Control-Period (.)

    y espera. El sysdiagnoseproceso puede tardar 10 minutos en completarse. Una vez finalizado, Finder debería aparecer automáticamente mostrando el archivo generado en /private/var/tmp/(por ejemplo sysdiagnose_2017.mm.dd_hh-mm-ss-0000_12345.tar.gz).

  • Dispara a sysdiagnosedesde la Terminal ingresando este comando:

    sudo sysdiagnose
    

volcados de núcleo

Para generar volcados de núcleos bloqueados, consulte: ¿Cómo generar volcados de núcleos en macOS?

kenorb
fuente