Capítulo 10. Depuração de uma Aplicação de Crashed
Às vezes, não é possível depurar uma aplicação diretamente. Nessas situações, é possível coletar informações sobre o pedido no momento de seu término e analisá-lo posteriormente.
10.1. Lixeiras: o que são e como utilizá-las
Um despejo de núcleo é uma cópia de uma parte da memória da aplicação no momento em que a aplicação parou de funcionar, armazenada no formato ELF. Ele contém todas as variáveis internas e a pilha da aplicação, o que permite a inspeção do estado final da aplicação. Quando ampliado com o respectivo arquivo executável e informações de depuração, é possível analisar um arquivo de despejo central com um depurador de forma semelhante à análise de um programa em execução.
O kernel do sistema operacional Linux pode gravar os despejos do núcleo automaticamente, se esta funcionalidade estiver habilitada. Alternativamente, você pode enviar um sinal para qualquer aplicação em execução para gerar um despejo de núcleo, independentemente de seu estado real.
Alguns limites podem afetar a capacidade de gerar uma lixeira de núcleo. Para ver os limites atuais:
$ ulimit -a