Respuestas:
Depende de la aplicación. Las diferentes aplicaciones tienen diferentes sistemas de registro; No hay un registro central que contenga todos los resultados de todos los programas que se ejecutan en su sistema.
Dicho esto, muchos programas ponen sus archivos de registro en el directorio /var/log
. El archivo /var/log/syslog
(o tal vez /var/log/messages
), en particular, contiene la salida del "registrador del sistema", que es un servicio puesto a disposición por el sistema que los programas pueden usar (si así lo desean) para el registro. Pero no todos los programas lo usan. En su mayoría, encontrará mensajes de servicios de sistema de bajo nivel en ese archivo, no las aplicaciones gráficas que probablemente usa normalmente.
Es posible que desee leer más sobre las ubicaciones de los archivos de registro estándar .
los archivos /var/log/crashes/
bloqueados se utilizan para apport para informar errores. Puede extraer un volcado de núcleo con apport-unpack
, poner ese volcado de núcleo a través de gdb y descubrir qué está causando el bloqueo del programa.
Todo esto supone que eres un programador. Si no estás ... bueno, ¡no puedes arreglar el bloqueo de todos modos!
bt full
"oh, mira hacia atrás ... con símbolos faltantes ... supongo que necesito instalar símbolos de depuración e intentar reproducir el bloqueo ..." Una vez descubrí cómo configurar un punto de interrupción ... eso es lo más avanzado que he conseguido con eso.
Algunas aplicaciones tienen indicadores que se pueden usar para activar la depuración, como -d, -D, --debug, etc. Verifique la página de manual de la aplicación ( man [my-app]
) o ejecute la aplicación con el indicador -h para ver si tiene opción.
Muchas aplicaciones GUI escriben en $ HOME / .xsession-errors, por lo que es un buen lugar para verificar la salida.
Maco tiene razón en que apport es probablemente la forma más segura de obtener buena información de depuración. Sin embargo, a veces no captura el choque.
Si todo lo demás falla, también puede forzar la información al ejecutar la aplicación en gdb. Sería algo así como:
$ gdb my-app
(gdb) run
... haz lo que sea necesario para que se bloquee ...
(gdb) bt full
e ir desde allí.
Si va por la ruta gdb, también querrá instalar símbolos, como se mencionó anteriormente. Consulte https://wiki.ubuntu.com/DebuggingProgramCrash para obtener consejos sobre la retención.
Si está iniciando su aplicación desde un archivo de inicio .desktop, agregue la opción Terminal=true
a su archivo .desktop. Esto abrirá una terminal cuando ejecutes el programa, la salida en la terminal será similar a lo que verías si hubieras ejecutado el programa a través de la línea de comando en primer lugar. De esta manera, cuando la GUI se bloquea o se cuelga, puede ver qué salida de texto le estaba llevando.