Se um aplicativo travar no Windows, podemos verificar o Visualizador de Eventos nas ferramentas de Administração para ver o que travou. Às vezes, tem informações úteis, outras não, mas é um começo.
No linux, se um aplicativo (algum) falha, como se começa a rastrear o que aconteceu?
Existe, por exemplo, algum registro central ou algo semelhante?
12
/var/log/syslog
. O Linux fornece uma maneira de um daemon ser notificado sobre falhas no processo. O apport do Ubuntu e o abrt da Red Hat usam isso para fornecer recursos centralizados de registro e geração de relatórios. Geralmente, um dump principal é salvo para que você possa chamar um depurador no programa com falha.Respostas:
O local normal para os logs do sistema é
/var/log/
. O que é colocado em cada log depende da configuração do syslog, mas geralmente tudo, exceto os logins, é acessado/var/log/syslog
.Isso não garante que aplicativos individuais tenham deixado alguma pista no caso de um problema. Mas eles, ou o shell, provavelmente cuspirão algo nos fluxos de erro padrão de saída / padrão, e se você executar um aplicativo problemático em primeiro plano a partir de um terminal, poderá ver essas coisas.
fonte
/var/log
? Qual arquivo de log? Existe alguma convenção?ls -lart
, o último arquivo na listagem foi o mais recente alterado./var/log/syslog
, mas distros diferentes fazem as coisas de maneira diferente. Se você souber qual syslog está usando, poderá examinar sua configuração para determinar isso.No Ubuntu, os segfaults são escritos em
/var/log/kern.log
. Eu testei, criando um programa que segfaults:Depois de segfaulted, havia esta linha em
/var/log/kern.log
:fonte
No Ubuntu, se você estiver iniciando seu aplicativo a partir de um arquivo do iniciador .desktop, adicione a opção
Terminal=true
ao seu arquivo .desktop.fonte