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

9

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

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

Alguma ideia?

    
por dcds 20.01.2015 / 07:47

2 respostas

12

O dump principal é escrito no diretório atual do processo no momento da falha.

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

Se um dump principal deveria ter sido gerado, mas você não sabe onde, então você poderia iniciar o processo novamente (se ele não ocorresse imediatamente), então verifique seu diretório de trabalho fazendo ls -l /proc/$pid/cwd onde $pid é o ID do processo do processo. Esse link apontará para o diretório de trabalho atual desse processo. As chances são de que o despejo principal estará lá. Caso contrário, você precisa executar find em todo o sistema ...

    
por 20.01.2015 / 08:53
7

Sistemas usando systemd geralmente são configurados para despejar núcleos para

/var/lib/systemd/coredump/

Você pode usar o comando coredumpctl para listar os dumps principais. Veja também no-more-coredumps-after-migrating-to-systemd

    
por 06.03.2017 / 10:35