29 votos

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

Estoy tratando de depurar una aplicación que se ha bloqueado (o colgado). ¿Cómo puedo obtener los archivos de diagnóstico del error?

26voto

Adam Puntos 6342

Los informes individuales de errores se almacenan en /Library/Logs/CrashReporter, pero hay una herramienta de recopilación de registros a nivel del sistema llamada sysdiagnose.

Una vez que comiences a experimentar el problema, mantén presionadas las 4 teclas modificadoras y luego presiona la tecla de punto "." shift+control+option+command+.

Deberías ver que la pantalla parpadea de blanco. Después de unos 15 segundos, se abrirá una ventana del Finder con un archivo sysdiagnose resaltado.

Una vez que comiences a experimentar el problema, mantén presionadas las teclas

Este atajo de teclado simplemente ejecuta el comando sysdiagnose, por lo que si estás familiarizado con Terminal y deseas pasar un ID de proceso, puedes obtener información de depuración mejorada sobre ese programa específico. El atajo de teclado llama a la herramienta sin argumentos y captura solo el informe básico.

0 votos

¿Hay alguna forma de obtener esto por línea de comandos?

1 votos

~/Library/Logs/CrashReporter no contiene archivos .crash. En su lugar: /Library/Logs/DiagnosticReports y ~/Library/Logs/DiagnosticReports

0 votos

La tecla de acordes para sysdiagnose solo funcionará si se ejecuta el demonio de stackshot. En mi respuesta, el comando launchctl iniciará el demonio.

22voto

Tim Puntos 11

Apple sysdiagnose

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

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

Preparándose para el enfoque solo de teclado de sysdiagnose

En Terminal, ejecuta el siguiente comando.

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
  • si se solicita una contraseña, introduce tu contraseña de administrador del sistema operativo
  • esa es una única vez, no es necesario repetir el comando.

Toma nota por escrito del siguiente acorde de teclas, lo necesitarás más adelante:

Control-Option-Command-Shift-.

Diagnóstico por parte del sistema

Cuando ocurre un problema:

  1. utiliza el acorde de teclas
  2. durante al menos diez segundos, no toques nada
  3. permite quizás cinco o diez minutos para que todas las partes del rutina de sysdiagnose se completen - simplemente espera tanto como puedas (no habrá ninguna indicación en pantalla de progreso)
  4. Finder debería abrir una ventana con el resultado final.

Excepcionalmente

En casos raros, un problema puede evitar que sysdiagnose se complete (he hecho sugerencias de mejora a Apple). Si esto sucede - si estás seguro de que has esperado el tiempo suficiente - puede ser sensato reiniciar el Mac. Luego:

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

Sugerencias

Sin el acorde de teclas, puedes ejecutar sysdiagnose desde la línea de comandos (ver abajo, página manual de Apple). Pero a menudo es más útil, o necesario, utilizar el acorde - así que estate preparado.

Aunque no fomento la imprudencia, puedes ser un poco descuidado con Control-Option-Command-Shift-. ... si luchas para evitar la tecla fn en tu laptop, no te preocupes; incluirla por accidente no debería impedir la ejecución de sysdiagnose.


Análisis humano del diagnóstico por parte del sistema

Sugerencia: alguien podría querer hacer una pregunta separada sobre cómo analizar los resultados de sysdiagnose - una respuesta más generalizada podría ser útil.

Si sysdiagnose_… en la zona de /tmp es un archivo

La presencia de un archivo sysdiagnose_….tar.gz indica que todas las partes de la rutina de sysdiagnose se completaron, y que los resultados fueron archivados. Si lo deseas, abre el archivo - su contenido aparecerá como una carpeta.

Si sysdiagnose_… en la zona de /tmp es una carpeta

La presencia de una carpeta sysdiagnose_… (no un archivo .tar.gz) indica que o bien:

  • la rutina fue interrumpida 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 a desarrolladores.

Relacionado:

Para una ejecución incompleta de sysdiagnose puede ser útil centrar la atención en archivos que estén anormalmente vacíos ...


Notas técnicas y otras

Página Manual de stackshot(1) OS X

Página Manual de sysdiagnose(1) OS X

Algo de lo mencionado anteriormente es una edición más genérica de una respuesta aceptada que aparece en otros lugares.


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

Guíate por la lista de registros en Console:

Una captura de pantalla de la barra lateral de Console

Espera encontrar archivos en las siguientes rutas:

  • ~/Library/Logs/DiagnosticReports
  • /Library/Logs/DiagnosticReports
  • ~/Library/Logs
  • /Library/Logs
  • /private/var/log

3 votos

Graham: ¡este es un día positivo: algo que aprender! Creo que este tipo de herramienta beneficiaría a todos los sysadmins si fuera de código abierto.

1 votos

Hola, ¿alguna idea de cómo se puede desactivar ese acorde de teclas?

0 votos

@StevieD probablemente descarga el demonio stackshot. Es decir, si todavía hay algo así en macOS.

4voto

matthew k Puntos 11

Consola

Para encontrar archivos de diagnóstico o de accidentes existentes, abre la aplicación Consola y encuentra los archivos en las secciones de Informes de usuario (ubicados en ~/Biblioteca/Logs/Informes de diagnóstico) o Informes del sistema (ubicados en /Biblioteca/Logs/Informes de diagnóstico). Ver: ¿Dónde puedo encontrar mis registros de accidentes?

sysdiagnose

Según las instrucciones oficiales del sysdiagnose para macOS, puedes activar un sysdiagnose ya sea:

Nota: Para acceder al enlace anterior, primero debes iniciar sesión en el sitio de Desarrollador de Apple.

  • Pulsa brevemente las siguientes teclas simultáneamente:

    Comando-Opción-Mayús-Control-Periodo (.)

    y espera. El proceso de sysdiagnose 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).

  • Activa un sysdiagnose desde Terminal ingresando este comando:

    sudo sysdiagnose

volcados de núcleo

Para generar volcados de núcleo de accidentes, ver: ¿Cómo generar volcados de núcleo en macOS?

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X