Estoy tratando de depurar una aplicación que se ha bloqueado (o colgado). ¿Cómo puedo obtener los archivos de diagnóstico del error?
¿Hay alguna forma de obtener esto por línea de comandos?
Estoy tratando de depurar una aplicación que se ha bloqueado (o colgado). ¿Cómo puedo obtener los archivos de diagnóstico del error?
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.
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.
~/Library/Logs/CrashReporter
no contiene archivos .crash
. En su lugar: /Library/Logs/DiagnosticReports
y ~/Library/Logs/DiagnosticReports
La tecla de acordes para sysdiagnose solo funcionará si se ejecuta el demonio de stackshot. En mi respuesta, el comando launchctl
iniciará el demonio.
Este script de shell (en 10.8 y versiones anteriores) y programa ejecutable con el mismo nombre en 10.9:
En Terminal, ejecuta el siguiente comando.
sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.stackshot.plist
Toma nota por escrito del siguiente acorde de teclas, lo necesitarás más adelante:
Control-Option-Command-Shift-.
Cuando ocurre un problema:
sysdiagnose
se completen - simplemente espera tanto como puedas (no habrá ninguna indicación en pantalla de progreso)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:
/private/var/tmp
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
.
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.
/tmp
es un archivoLa 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.
/tmp
es una carpetaLa presencia de una carpeta sysdiagnose_…
(no un archivo .tar.gz
) indica que o bien:
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 ...
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.
Guíate por la lista de registros en Console:
Espera encontrar archivos en las siguientes rutas:
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.
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
Para generar volcados de núcleo de accidentes, ver: ¿Cómo generar volcados de núcleo en macOS?
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.