Estou no CentOS 6, tentando ativar dumps principais para um aplicativo que estou desenvolvendo. Eu coloquei:
ulimit -H -c unlimited >/dev/null
ulimit -S -c unlimited >/dev/null
no meu perfil do bash, mas um dump principal ainda não foi gerado (em um novo terminal).
Também alterei meu /etc/security/limits.conf para que os limites flexíveis sejam zero para todos os usuários.
Como faço para definir o local dos arquivos principais a serem impressos? Eu queria especificar o local e acrescentar a hora em que o despejo foi gerado, como parte do nome do arquivo?
Respostas:
Para definir a localização dos dumps principais no CentOS 6, você pode editar
/etc/sysctl.conf
. Por exemplo, se você deseja despejos principais em/var/crash
:Onde as variáveis são:
Você também tem que adicionar
/etc/sysconfig/init
Agora aplique novas alterações:
Mas há uma ressalva dessa maneira. Se o parâmetro do kernel kernel.core_pattern for sempre redefinido e substituído na reinicialização para a seguinte configuração, mesmo quando um valor for especificado manualmente em
/etc/sysctl.conf
:Em resumo, quando o
abrtd.service
arranquekernel.core_pattern
é substituído automaticamente pelo sistema instaladoabrt-addon-ccpp
. Existem duas maneiras de resolver isso:Definir
DumpLocation
opção no/etc/abrt/abrt.conf
arquivo de configuração. O diretório de destino pode ser especificado configurando DumpLocation =/var/crash
no/etc/abrt/abrt.conf
arquivo de configuração esysctl kernel.core_pattern
o valor exibido é o mesmo, mas, na verdade, o arquivo principal será criado no diretório em/var/crash
.Além disso, se você tiver o SELinux ativado, precisará executar:
E finalmente reinicie
abrtd.service
:Interrompa o serviço abrtd.
kernel.core_pattern
não será substituído. - (Eu nunca testei).fonte
Para gerar o dump principal no Busybox, podemos adicionar os parâmetros abaixo no script de inicialização que executa nosso executável. Portanto, sempre que inicializamos o software e exportamos variáveis de ambiente, podemos copiar as linhas abaixo para o script e despejar o núcleo, caso ocorram falhas.
Para definir o local dos dumps principais no Busybox, você pode definir o caminho do arquivo principal usando o sistema de arquivos proc. Por exemplo, se você deseja despejos principais em
/tmp/crash/corefiles
:Onde as variáveis são:
Além disso, você deve definir o tamanho do arquivo principal. O comando abaixo define o tamanho do arquivo principal como ilimitado
Agora, para verificar o tamanho do arquivo principal definido para cada thread em um processo, podemos verificar usando
A saída do comando acima:
Como podemos ver na saída acima, o tamanho máximo do arquivo principal é definido como ilimitado.
Para mais informações, visite este link. Técnicas de depuração de aplicativos Linux / arquivos principais
fonte