Onde procurar o arquivo principal gerado pelo travamento de um aplicativo linux?


18

Estou tentando descobrir o motivo da falha de um dos meus aplicativos Linux. Mas não sei para onde está indo o núcleo.

cat /proc/sys/kernel/core_pattern
core.%e.%p

Qualquer ideia?

Respostas:


22

O dump principal é gravado no diretório atual do processo no momento do travamento.

É claro que os dumps principais precisam ser ativados; por padrão, esses geralmente são desativados. Verifique a saída de ulimit -c, se for 0, nenhum arquivo principal será gravado. Execute ulimit -c unlimitedpara ativar os dumps principais; essa é uma configuração por processo herdada pelos processos iniciados por esse processo.

Se um dump principal tiver sido gerado, mas você não souber onde, poderá iniciar o processo novamente (se ocorrer sem travar imediatamente) e verificar seu diretório de trabalho, indicando ls -l /proc/$pid/cwdonde $pidestá o ID do processo. Esse link apontará para o diretório de trabalho atual desse processo. As chances são de que o dump principal estará lá. Caso contrário, você precisará executar findem todo o sistema ...


3
Eu verifiquei o ulimit -c é ilimitado, mas ainda não há nada no diretório atual do processo.
DCPs

1
É possível que a aplicação detectou um erro fatal em si e abortado, ou seja, não é um "real" crash, como uma violação de segmentação ou similar, que iria gerar um despejo de núcleo. Como você não fornece informações sobre o aplicativo, não é possível saber.
wurtel

1
É definitivamente um acidente porque eu conscientemente fazendo um ponteiro nulo.
dcds 20/01

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.