Risposte:
Dipende dall'applicazione. Applicazioni diverse hanno sistemi di registrazione diversi; non esiste un registro centrale che contenga tutto l'output di tutti i programmi in esecuzione sul sistema.
Detto questo, molti programmi inseriscono i loro file di registro nella directory /var/log
. Il file /var/log/syslog
(o forse /var/log/messages
), in particolare, contiene l'output del "logger di sistema", che è un servizio reso disponibile dal sistema che i programmi possono usare (se lo desiderano) per la registrazione. Ma non tutti i programmi lo usano. Principalmente, in quel file troverai i messaggi dei servizi di sistema di basso livello, non le applicazioni grafiche che probabilmente usi normalmente.
Potresti voler leggere di più sulle posizioni dei file di registro standard .
i file di crash vanno in /var/log/crashes/
uso con apport per segnalare bug. Puoi estrarre un core dump con apport-unpack
, inserire quel dump principale tramite gdb e scoprire cosa sta causando il crash del programma.
Tutto questo presuppone che tu sia un programmatore. Se non lo sei ... beh, non puoi comunque risolvere il crash!
bt full
"oh guarda un backtrace ... con simboli mancanti ... suppongo che devo installare i simboli di debug e provare a riprodurre il crash ..." Una volta ho capito come impostare un punto di interruzione ... questo è il più avanzato che ho ottenuto con esso però.
Alcune applicazioni hanno flag che possono essere usati per attivare il debug, come -d, -D, --debug, ecc. Controlla la pagina man dell'applicazione ( man [my-app]
) o esegui l'app con il flag -h per vedere se ha un tale opzione.
Molte app della GUI scrivono in $ HOME / .xsession-errori quindi è un buon posto per controllare l'output.
maco ha ragione sul fatto che apport è probabilmente il modo più sicuro per ottenere buone informazioni di debug. A volte, tuttavia, non cattura lo schianto.
Se tutto il resto fallisce, puoi anche forzare le informazioni fuori di esso eseguendo l'app in gdb. Sarebbe qualcosa del tipo:
$ gdb my-app
(gdb) run
... fai tutto il necessario per farlo precipitare ...
(gdb) bt full
e vai da lì.
Se segui il percorso gdb, dovrai anche installare i simboli, come menzionato in precedenza. Vedi https://wiki.ubuntu.com/DebuggingProgramCrash per consigli sulla gestione.
Se si avvia l'applicazione da un file di avvio .desktop, aggiungere l'opzione Terminal=true
al file .desktop. Questo aprirà un terminale quando esegui il programma, l'output sul terminale sarà simile a quello che vedresti se avessi eseguito il programma tramite la riga di comando in primo luogo. In questo modo, quando la GUI si arresta in modo anomalo o si blocca, puoi vedere quale output di testo ha portato ad esso.