Às vezes acontece que alguns aplicativos travam sem dar erro de saída ( conky no meu caso, provavelmente é uma das minhas configurações incorretas).
Existe um registro de erro em algum lugar que eu possa verificar para entender por que ele falhou?
Depende do aplicativo. Diferentes aplicativos têm diferentes sistemas de registro; não há um registro central que contenha toda a saída de todos os programas executados no seu sistema.
Dito isto, uma série de programas que colocar seus arquivos de log no diretório /var/log
. O arquivo /var/log/syslog
(ou talvez /var/log/messages
), em particular, contém a saída do "log do sistema", que é um serviço disponibilizado pelo sistema que os programas podem usar (se quiserem) para fazer logon. Mas nem todos os programas o usam. Principalmente, você encontrará mensagens de serviços de sistema de baixo nível nesse arquivo, não os aplicativos gráficos que você provavelmente usa normalmente.
Você pode querer ler mais sobre os locais dos arquivos de log padrão .
arquivos de falha entram em /var/log/crashes/
uso com o apport para relatar bugs. Você pode extrair um dump principal comapport-unpack
, colocar esse dump no gdb e descobrir o que está causando o travamento do programa.
Tudo isso assumindo que você é um programador. Se você não está ... bem, você não pode consertar a falha de qualquer maneira!
bt full
"oh, olhe para trás ... com símbolos ausentes ... acho que preciso instalar símbolos de depuração e tentar reproduzir a falha ..." Uma vez, descobri como definir um ponto de interrupção ... esse é o mais avançado que eu consegui.Para o conky, também pode haver entradas em
$HOME/.xsession-errors
.fonte
Alguns aplicativos possuem sinalizadores que podem ser usados para ativar a depuração, como -d, -D, --debug, etc. Verifique a página de manual do aplicativo (
man [my-app]
) ou execute o aplicativo com o sinalizador -h para ver se ele possui esse tipo de opção.Muitos aplicativos de GUI gravam em $ HOME / .xsession-errors, portanto esse é um bom lugar para verificar a saída.
a maco está certa de que apport é provavelmente a maneira mais segura de obter boas informações de depuração. Às vezes, ele não captura a falha, no entanto.
Se tudo mais falhar, você também pode forçar a informação executando o aplicativo em gdb. Seria algo como:
... faça o que for necessário para travar ...
e vá de lá.
Se você seguir a rota gdb, também desejará instalar símbolos, como mencionado anteriormente. Veja https://wiki.ubuntu.com/DebuggingProgramCrash para obter conselhos sobre como segurar a mão.
fonte
você pode ir para
/var/log/messages or crashes
então você pode executar ogrep
comando neles e procurar o aplicativo que você procura pelos arquivos às vezes pode ficar bem grande. Ele retornará informações relevantes para sua aplicação. :)fonte
Se você estiver iniciando seu aplicativo a partir de um arquivo do iniciador .desktop, adicione a opção
Terminal=true
ao seu arquivo .desktop. Isso abrirá um terminal quando você executar o programa; a saída no terminal será semelhante ao que você veria se tivesse executado o programa pela linha de comando em primeiro lugar. Dessa forma, quando a GUI trava ou trava, você pode ver qual saída de texto estava levando até ela.fonte