Quer saber por que você está recebendo um despejo de memória? Congelamento de aplicativo toda vez que você faz X? Saindo sem nenhuma mensagem? O que está acontecendo?!?
Com um pouco de paciência, muitas vezes você pode ver por si mesmo com Strace: http://linux.die.net/man/1/strace
Strace (System Trace) permite que você inicie um aplicativo ou até mesmo conecte-o a um aplicativo em execução existente e descubra quais chamadas de sistema estão acontecendo entre o modo de usuário e kernel.
Para começar a espionar essas conversas de chamada do sistema, use:
strace someapplication
Para ouvir algum processo em execução no momento, use:
strace -pSOME_PROCESS_PID
Para ouvir apenas chamadas de sistema específicas em um processo em execução, use uma expressão válida (consulte a página de manual):
strace -pSOME_PROCESS_PID -e trace=network
O exemplo acima produziria apenas dados de chamadas de sistema relacionadas à rede.
Com as expressões de saída corretas para filtragem, strace pode ser inestimável quando algum aplicativo Linux malcomportado simplesmente se recusa a dizer o que está errado. Qualquer coisa, desde bibliotecas compartilhadas ausentes a arquivos de configuração mal formatados ou o fato de que algum endereço IP misterioso não responde às conexões, pode ser descoberto quando um aplicativo “se recusa a falar sobre isso”.
Isso também pode ser um salva-vidas em todos os tipos de servidores de teste, UAT e de produção. Da próxima vez que um aplicativo Linux apresentar problemas sem lhe dizer o motivo, não tente adivinhar: strace!