3 votos

¿Existe una manera de obtener un informe de fallos (no un volcado del núcleo) para un programa de línea de comandos?

Si una aplicación de MacOS se bloquea, CrashReporter mostrará (opcionalmente) una ventana con un conjunto de rastros de pila legibles para los humanos y el botón "Enviar a Apple".

¿Existe una forma sencilla de obtener los mismos resultados para un .app ¿un programa que se bloquea cuando se inicia desde la línea de comandos? Es decir, la situación de la que quiero más información es

$ some-program
Segmentation fault: 11
$ 

Sólo he encontrado instrucciones sobre cómo habilitar los volcados de núcleo, pero no cómo obtener algo legible de ellos. Sé que el Monitor de Actividad puede "muestrear" los programas en ejecución, pero estoy buscando el evento de caída, no el perfil.

He pensado en crear un maniquí .app que realmente ejecuta el comando que está fallando, pero eso será un poco de trabajo y probablemente se encuentre con algunos problemas de Gatekeeper, aunque en realidad no he tratado de hacer eso desde hace algunas versiones principales. Actualmente estoy en Catalina 10.15.7.

1voto

Oskar Puntos 1242

Mirando hacia atrás, las caídas anteriores se registran en el sistema de registro, y también se guardan archivos de volcado individuales durante aproximadamente un mes en /Librería/Logs/Informes de Diagnóstico

De cara al futuro, provocarlas es un poco más difícil y arriesgado. Podrías intentar emitir una señal SIGABRT o SIGQUIT si conoces el proceso:

Algo más genérico sería el diagnóstico general del sistema capturará mucho más. La principal diferencia en estas dos opciones es que un crash tiene un punto final, el diagnóstico del sistema coge una instantánea arbitraria, por lo que no es necesariamente tan final como un crash. No recomiendo forzar el bloqueo de una aplicación y ciertamente no recomiendo forzar un kernel panic pero podrías probar ambos. Por qué no empezar con un volcado de diagnóstico general:

sudo sysdiagnose

Puedes pasar un ID de proceso o un nombre de proceso a sysdiagnose o también activarlo desde la aplicación Activity Monitor.

Si necesitas detener el programa o el proceso, prueba con Instrumentos desde Xcode.

0 votos

En retrospectiva no lo dejé lo suficientemente claro: no estoy intentando obtener información de un corriendo programa, sino uno que se estrelló por lo que "cómo se bloquea", el monitor de actividad y los instrumentos no son relevantes. He editado mi pregunta para aclarar el tema. - Sin embargo, veo que sysdiagnose de hecho produjo .crash para los comandos que quería solucionar. ¿Sabe usted si hay una manera de obtener estos archivos que es más rápido que ejecutar el bastante lento sysdiagnose y desarchivar su salida?

0 votos

@KevinReid Maravillosas ediciones y aclaraciones. Todos los choques se depositan en /Library/Logs/DiagnosticReports y el. purgado aproximadamente después de un mes.

0 votos

¡Ah, eso es perfecto! Si pudieras editar tu respuesta para centrarte en eso, te lo agradecería.

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